2017-02-23 21 views
1

я получил следующее сообщение об ошибке в моем PHP файл:mysqli_fetch_array() ожидает параметр 1, чтобы быть mysqli_result предупреждение

Notice: Undefined индекс: ● в C: \ XAMPP \ HTDOCS \ medphil \ getpatient.php на линии 22

Предупреждение: mysqli_fetch_array() ожидает параметр 1, чтобы быть mysqli_result, булево приведены в C: \ XAMPP \ HTDOCS \ medphil \ getpatient.php на линии 46

это мой код, пожалуйста, помогите мне решить это

<!DOCTYPE html> 
<html> 
<head> 
<style> 
table { 
    width: 100%; 
    border-collapse: collapse; 
} 

table, td, th { 
    border: 1px solid black; 
    padding: 5px; 
} 

th {text-align: left;} 
</style> 
</head> 
<body> 

<?php 

$q = intval($_GET['q']); 



$con = mysqli_connect('localhost','root','','medphil'); 
if (!$con) { 
    die('Could not connect: ' . mysqli_error($con)); 
} 

mysqli_select_db($con, "medphil"); 
$sql="SELECT * FROM patients WHERE id = '".$q."'"; 
$result = mysqli_query($con,$sql); 

echo "<table> 
<tr> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>username</th> 
<th>password</th> 
<th>dateofbirth</th> 
<th>email</th> 
<th>Patientaddress</th> 
<th>LastLDNId</th> 
</tr>"; 
while($row = mysqli_fetch_array($result,true)) { 
    echo "<tr>"; 
    echo "<td>" . $row['FirstName'] . "</td>"; 
    echo "<td>" . $row['LastName'] . "</td>"; 
    echo "<td>" . $row['username'] . "</td>"; 
    echo "<td>" . $row['password'] . "</td>"; 
    echo "<td>" . $row['dateofbirth'] . "</td>"; 
    echo "<td>" . $row['email'] . "</td>"; 
    echo "<td>" . $row['Patientaddress'] . "</td>"; 
    echo "<td>" . $row['LastLDNId'] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 
mysqli_close($con); 
?> 
</body> 
</html> 
+0

Как ваш URL выглядит? Существует ли параметр 'q'? – C2486

+0

'Примечание: Неопределенный индекс: q' должен рассказать вам все, что вам нужно знать. Почему 'q' не установлен? – chris85

ответ

-1

@afra Рахим
Вы получаете эту ошибку, потому что mysqli_fetch_array() требуется MySQLi результат переменной и переменной результата запроса является empty или boolean false.

Вы получаете результат переменной empty или boolean false поэтому вам нужно передать id значение поля в запросе, тогда как вы передаете $q переменную = $_GET['q'], которая снята с охраны до тех пор, пока Dont пройти YOURFILE.php?q=YOUR VALUE, если передать это значение в URL или установить его используя программный код, ваш код работает нормально.

0

@afra Рахим это потому, что ваш $ _GET [ 'д'] не установлено так просто сделать состояние с кодом PHP, как показано ниже:

<?php 
    $q = isset($_GET['q']) ? intval($_GET['q']) : ""; 

    if(!empty($q) && is_int($q)){ 
     $con = mysqli_connect('localhost','root','','medphil'); 
     if (!$con) { 
      die('Could not connect: ' . mysqli_error($con)); 
     } 

     mysqli_select_db($con, "medphil"); 
     $sql="SELECT * FROM patients WHERE id = '".$q."'"; 
     $result = mysqli_query($con,$sql); 

     echo "<table> 
     <tr> 
     <th>Firstname</th> 
     <th>Lastname</th> 
     <th>username</th> 
     <th>password</th> 
     <th>dateofbirth</th> 
     <th>email</th> 
     <th>Patientaddress</th> 
     <th>LastLDNId</th> 
     </tr>"; 
     while($row = mysqli_fetch_array($result,true)) { 
      echo "<tr>"; 
      echo "<td>" . $row['FirstName'] . "</td>"; 
      echo "<td>" . $row['LastName'] . "</td>"; 
      echo "<td>" . $row['username'] . "</td>"; 
      echo "<td>" . $row['password'] . "</td>"; 
      echo "<td>" . $row['dateofbirth'] . "</td>"; 
      echo "<td>" . $row['email'] . "</td>"; 
      echo "<td>" . $row['Patientaddress'] . "</td>"; 
      echo "<td>" . $row['LastLDNId'] . "</td>"; 
      echo "</tr>"; 
     } 
     echo "</table>"; 
     mysqli_close($con); 
    } 
    else{ 
     echo "q can not be empty"; 
    } 
?> 
Смежные вопросы