Я не получаю никакого возвращаемого значения от этого … почему?

#php #mysql

#php #mysql

Вопрос:

Да, он подключается к базе данных, все остальное работает нормально. Кажется, я не могу извлечь проход из базы данных, который показывает, что он не возвращается echo

  <?php

$username="test";
    include("db.php");

     $con=mysql_connect($server, $db_user, $db_pwd) //connect to the database server
or die ("Could not connect to mysql because ".mysql_error());

    mysql_select_db($db_name)  //select the database
    or die ("Could not select to mysql because ".mysql_error());

$query="select password from ".$table_name." where username='$username'";
            $result=mysql_query($query,$con) or die('error');
        while ($row = mysql_fetch_assoc($result));
        $un_pass_s1=$row['password'];
    echo $un_pass_s1;
?>
 

Комментарии:

1. Пожалуйста, не используйте mysql_* функции в новом коде . Они больше не поддерживаются и официально устарели . Видите красное поле ? Вместо этого изучите подготовленные инструкции и используйте PDO или MySQLi эта статья поможет вам решить, что именно.

2. Вы делаете много других неправильных вещей, от использования устаревших mysql_* функций до (по-видимому) хранения паролей в виде обычного текста в базе данных. Если вы следуете руководству, вам следует отказаться от него и найти тот, который использует PDO.

3. @Kermit спасибо тебе 🙂 Я использую старый код, но переписываю его заново.

Ответ №1:

while ($row = mysql_fetch_assoc($result)); циклы до $row тех пор, пока значение false . Тело цикла представляет собой один пустой оператор, ; . Вам нужно поместить свой код, который обращается $row к циклу, а не после него.

Комментарии:

1. Я понятия не имею, что такое тело цикла? Вы даете мне пример правильного синтаксиса?

2. Вы не собираетесь привести мне пример?

3. Я не собираюсь этого делать, нет. Мой ответ очень ясен. Если вы хотите изучить синтаксис циклов while, посмотрите документацию или любой учебник по PHP.

Ответ №2:

 $sql=mysql_query("select password from ".$table_name." where username='$username'");

while($row=mysql_fetch_array($sql))
{
$un_pass_s1=$row['password'];
}
echo "value=".$un_pass_s1;