Результаты не отображаются для mysql select all

#php #mysql #sql

#php #mysql #sql

Вопрос:

Привет, ребята, я пытаюсь показать всем пользователям, что pokemon были в таблице belongsto = there username вот мой код, у меня есть подключение поверх этого

      // Get all the data from the "example" table
$result = "SELECT * FROM user_pokemon WHERE
    belongsto='".$_SESSION['username']."'
AND (slot='0')'"; 
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
    // Print out the contents of each row into a table

    echo $row['pokemon'];

    echo $row['id'];

} 
  

я напечатал красным имя пользователя, и там имя пользователя находится в сеансе имени пользователя.
я думаю, что мне может не хватать ‘ или чего-то, что я добавляю или mysql в конце запроса, но затем страницы исчезают без ошибок

Ответ №1:

Вы не выполняете запрос и в нем есть ошибка. И вы не экранируете строки, входящие в запрос. Правильная версия кода будет

 // escape a string going to query.
$username = mysql_real_escape_string($_SESSION['username']);
// create a query
$sql = "SELECT * FROM user_pokemon WHERE belongsto='$username' AND slot=0"; 
// run a query and output possible error for debugging purposes.
$res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);
// keep getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
// Print out the contents of each row into a table
  echo $row['pokemon'];
  echo $row['id'];
} 
  

Ответ №2:

Мне кажется, что окончательный запрос будет:

 SELECT * FROM user_pokemon WHERE belongsto='NAME' AND (slot='0')'
  

где NAME — это имя, которое вы передаете. Если это так, в конце есть дополнительная одинарная кавычка. Я полагаю, вы получаете ошибку SQL?