Вопрос

Я извлекаю сообщения из mysql с использованием PHP для отображения на определенной странице. Вместо отображения заголовка сообщения в назначенной строке заголовка и сообщения в указанном текстовом поле основного текста ... не отображается содержимое, а заголовок отображается в URL. Чего мне не хватает в моем запросе? Или что происходит?

/*--Here is my query--*/

$query = "SELECT * FROM `Messages` WHERE `id` = '" .$messageid. "'";
            $request = mysql_query($query,$connection) or die(mysql_error());
            $Readmessages = mysql_fetch_array($request);

             $query = "SELECT * FROM `Users` WHERE `id` = '".$Readmessages['sentFrom'] ."'";
             $request2 = mysql_query($query,$connection);
             $sender = mysql_fetch_array($request2);

/*--Here is my code--*/
Это было полезно?

Решение

Мой совет - выполнять все ваши запросы в приложении MySQL, таком как PHPMyAdmin, и убедиться, что вы получите желаемые результаты. Это всегда то, что я делаю, когда сталкиваюсь с проблемой запроса, запускаю запрос в приложении, поэтому я уверен, что сам запрос работает. Если вы используете Mac, я рекомендую Sequel Pro (это бесплатно).

Извините за задержку в помощи.

Другие советы

Прежде всего, вам не нужно использовать. (добавить) в $ messageid - vis:

$query = "SELECT * FROM `Messages` WHERE `id` = '$messageid'";

Во-вторых, проверьте, действительно ли вы вернули строку и (вот этот клинчер) используйте mysql_fetch_assoc () вместо mysql_fetch_array () - иначе вы не получите имена полей.

if ( $Readmessages = mysql_fetch_assoc($request) )
{
   $sentfrom = $Readmessages['sentFrom'];
   if (strlen($sentfrom) > 0)
   {
      $query = "SELECT * FROM `Users` WHERE `id` = '$sentfrom'";
      ...
   }
}

если вы хотите проверить свой запрос, вы можете вывести его в html и посмотреть на источник:

echo "<!-- <sql>$query</sql> -->";

Когда код делает что-то, вы этого не ожидаете - дважды проверьте свои предположения.

1) Убедитесь, что $ messageid заполнен тем, что вам нужно

2) Убедитесь, что возвращаемая строка не равна нулю, т. е. она работает, только данные равны нулю

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top