PHP: не получить результат от MySQL и неопределенной переменной

Я работаю над проектом, в котором я получаю некоторую информацию из базы данных и хочу отобразить ее внутри формы. Мой запрос SQL выглядит хорошо, поскольку я проверил его в журнале SQL, но я не получаю никакого результата от mysql. Я хочу получить значение из базы данных и установить его в форме. Что я делаю не так с SQL? Как я могу отобразить значения, которые я прочитал из базы данных, и отобразить их внутри формы? Спасибо.

Код :

<?php
      $client_id = $_GET['clientId'];
      $name  = "rahul";
      $contact;
$link = mysqli_connect("localhost", "root", "akshay2787", "tim");
$sql = "select name,contact,tel1,tel2,email1,email2,investment_time,interest,transport,deposit,tax1,tax2,tax3,
 address1,address2,address3,notes from client_setup where client_id='".$client_id."'";
 if ($result = mysqli_query($link, $sql)){
    if (mysqli_num_rows($result) > 0){       
    while($row = mysqli_fetch_array($result)){
      $name = $row['name'];
      echo "<script type=\"text/javascript\">alert('Thank you form is submitted. $name');</script>";
      $contact = $row['Contact'];      
        $tel1 = $row['Telephone1'];      
    }
}

   ?>
///And below I display the values.

<form action = "" method = "get" align = "center" >
 <table  align = "center" class = "table-block">
<tr class = "highlight">
        <td width = "100"><label for = "netmask">Name</label></td>
        <td width = "600"><input class = "highlight" type = "text" name = "Name" id = "name"><?php print $name;?></input></td>
     </tr>
</table>

Журналы MYSQL:

2019-02-13T16:27:56.450712Z         4 Query     select name,contact,tel1,tel2,email1,email2,investment_time,interest,transport,deposit,tax1,tax2,tax3,
 address1,address2,address3,notes from client_setup where client_id='6'

таблица client_setup:

+-----------------+------------------+------+-----+---------+----------------+
| Field           | Type             | Null | Key | Default | Extra          |
+-----------------+------------------+------+-----+---------+----------------+
| client_setip_id | int(30) unsigned | NO   | PRI | NULL    | auto_increment |
| client_id       | int(30) unsigned | NO   |     | NULL    |                |
| name            | varchar(50)      | YES  |     | NULL    |                |
| username        | varchar(50)      | YES  |     | NULL    |                |
| password        | varchar(50)      | YES  |     | NULL    |                |
| contact         | varchar(50)      | YES  |     | NULL    |                |
| tel1            | varchar(50)      | YES  |     | NULL    |                |
| tel2            | varchar(50)      | YES  |     | NULL    |                |
| email1          | varchar(50)      | YES  |     | NULL    |                |
| email2          | varchar(50)      | YES  |     | NULL    |                |
| investment_time | double           | YES  |     | NULL    |                |
| interest        | double           | YES  |     | NULL    |                |
| transport       | double           | YES  |     | NULL    |                |
| deposit         | double           | YES  |     | NULL    |                |
| tax1            | double           | YES  |     | NULL    |                |
| tax2            | double           | YES  |     | NULL    |                |
| tax3            | double           | YES  |     | NULL    |                |
| address1        | varchar(500)     | YES  |     | NULL    |                |
| address2        | varchar(500)     | YES  |     | NULL    |                |
| address3        | varchar(500)     | YES  |     | NULL    |                |
| notes           | varchar(500)     | YES  |     | NULL    |                |
+-----------------+------------------+------+-----+---------+----------------+
21 rows in set (0.01 sec)
The behaviour of mysqli_num_rows() depends on whether buffered or unbuffered result sets are being used. For unbuffered result sets, mysqli_num_rows() will not return the correct number of rows until all the rows in the result have been retrieved.. Попробуйте использовать fetch_all, чтобы получить все строки, а затем подсчитать их, или используйте буферизованные результаты.
aynber 13.02.2019 17:37

Вы действительно не даете себе места для проверки ошибок в ваших запросах, используйте mysqli_error(), чтобы отобразить, если у вас есть ошибка в вашем запросе!!

Kebab Programmer 13.02.2019 17:43

Ну, во-первых, вы получаете данные обратно с вашим запросом? Если вы это сделаете, то я думаю, что ваша проблема заключается в отображении кода в поле ввода.

Kebab Programmer 13.02.2019 17:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
76
2

Ответы 2

Я думаю, что здесь ваши данные не отображаются

 <td width = "600"><input class = "highlight" type = "text" name = "Name" id = "name"><?php print $name;?></input></td>

Предположим, что ваш запрос правильный, он может не отображаться в поле ввода.

Отобразите это вместо этого

 <td width = "600"><input class = "highlight" type = "text" name = "Name" id = "name" value = "<?php echo $name;?>"></td>

или

 <td width = "600"><input class = "highlight" type = "text" name = "Name" id = "name" value = "<?=$name?>"></td>

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

if ($result = mysqli_query($link, $sql)){
  //Block of code in OP question
}
else{
    echo "Error: ". mysqli_error().". The Query was <br /><pre>$sql</pre>";
}

Извините, глупая ошибка с моей стороны. Во время тестирования я изменил clientid в базе данных. После установки правильного clientid я получил данные. Спасибо. Я голосую за закрытие вопроса. Всем спасибо.

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