Я работаю над проектом, в котором я получаю некоторую информацию из базы данных и хочу отобразить ее внутри формы. Мой запрос 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)
Вы действительно не даете себе места для проверки ошибок в ваших запросах, используйте mysqli_error(), чтобы отобразить, если у вас есть ошибка в вашем запросе!!
Ну, во-первых, вы получаете данные обратно с вашим запросом? Если вы это сделаете, то я думаю, что ваша проблема заключается в отображении кода в поле ввода.






Я думаю, что здесь ваши данные не отображаются
<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 я получил данные. Спасибо. Я голосую за закрытие вопроса. Всем спасибо.
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, чтобы получить все строки, а затем подсчитать их, или используйте буферизованные результаты.