2015-09-21 1 views
1

Я хочу напечатать имя и фамилию идентификатора, введенного в текстовое поле. Вот PHP и HTML код:Данные не получены из таблицы MySQL в PHP

<head> 
     <title> 
      Search your name by ID 
     </title> 
    </head> 
<?php 
if(isset($_POST["searchname"])) 
{ 
    $id = $_POST["searchname"]; 
    $connect = new mysqli("localhost","adarsh","Yeah!","adarsh"); 
    $a = mysql_query("Select * from users where id='$id'",$connect); 
    $row = mysql_fetch_assoc($a); 
    echo "$row[0] , $row[1] , $row[2]"; 
} 
else 
{ 
    echo "error"; 
} 
?> 
    <body> 
     <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
      <input type="text" maxlength="6" name="searchname"> 
      <input type="Submit" name="Submit"> 
     </form> 
    </body> 

выход, когда я вхожу ID:

, , 

Есть записи в таблице MySQL, но я не могу за ними. Что не так с моим кодом?

ОБНОВЛЕНИЕ: Я также пробовал mysql_fetch_array, но он не работает.

+2

смешивания MySQL и MySQLi !!! – Saty

+0

Похоже, вы пытаетесь повторить результат между 'head' и' body'? Вы уверены, что это то, что вы хотите сделать? – Anders

ответ

4

Основная проблема заключается в том, что вы являетесь miximg mysqli и mysql. Это абсолютно разные API. Если у вас есть

$id = $_POST["searchname"]; 
$connect = new mysqli("localhost","adarsh","Yeah!","adarsh"); 

Далее следует:

$result = $connect->query("Select * from users where id='$id'"); 

Затем получить результаты:

while ($row = $result->fetch_assoc()) { 
    var_dump($row); 
} 

И, конечно же, вместо того, чтобы непосредственно положить значения в вашем использовании запросов подготовленные заявления ,

Update: об ошибках:

  • Ваша главная ошибка смесительные Apis. Когда вы используете mysql (который устарел, и вы больше не должны его использовать), вы не можете использовать никакие из mysqli функций и наоборот.

  • Далее - при создании объекта mysqli с new вы должны работать в объектно-ориентированном стиле, то есть вызывать методы из вашего объекта mysqli.

+0

Да ... Это сработало ... Не могли бы вы объяснить мне это? –

+0

Объясните, что? –

+0

Какова была моя ошибка ... и как она теперь работает ... –

0

Попробуйте это:

<html> 
 
    <head> 
 
     <title> 
 
      Search your name by ID 
 
     </title> 
 
    </head> 
 
    <body> 
 
     <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
 
      <input type="text" maxlength="6" name="searchname"> 
 
      <input type="Submit" name="Submit"> 
 
     </form> 
 
    </body> 
 
</html>

<?php 
if(isset($_POST["searchname"])){ 

    $id = $_POST["searchname"]; 
    $connect = mysql_connect("localhost","adarsh","Yeah!","adarsh"); 
    $result = mysql_query("Select * from users where id='$id'",$connect); 
    $row = mysql_fetch_assoc($result); 
    print_R($row); 
}else{ 

    echo "there is something wrong"; 
}