|
|
|
| Мой скрипт ищет данные из БД по $keyword, но когда поиск осуществляется по первичному ключу выдается следующее предупреждение и в результате поиска выдается,что данных таких нет, хотя они есть:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\TOPSECRET\xampp\htdocs\mybase41\find.php on line 22
Вот кусочек кода:
$result = mysql_query("SELECT * FROM info_st WHERE $category = '$keyword' ");
$er=mysql_num_rows($result); // строка 22
if ( $er != 0 )
|
В чем может быть проблема? Помогите, пожалуйста. | |
|
|
|
|
|
|
|
для: Super[MAN]
(25.08.2008 в 11:16)
| | Проблема в том, что Вы заблокировали стандартный вывод диагностики php, и не проверяете успешность выполнения запроса. Запрос сервером отвергнут из-за синтаксической (вероятнее всего) ошибки. Соответственно функции mysql_num_rows просто не с чем работать. | |
|
|
|
|
|
|
|
для: Trianon
(25.08.2008 в 11:24)
| | Непонятно,что за стандартный вывод диагностики php?
Вот полный код:
<?php
include("main.php");
include("inc/header.php");
if( (isset($_POST['submit_find'])) && ($_POST['submit_find'] <> "") )
{
$db = @mysql_connect($db_location,$db_user,$db_passwd);
mysql_select_db($db_name, $db);
if (!$db)
{
echo( "<P>В настоящий момент сервер базы данных не доступен,
поэтому корректное отображение страницы невозможно.</P>");
exit();
}
else
{
$keyword=$_POST['keyword'];
$category=$_POST['category'];
$result = mysql_query("SELECT * FROM info_st WHERE $category = '$keyword' ");
$er=mysql_num_rows($result);
if ( $er != 0 )
{
while (list($id_st,$s_name,$f_name,$o_name) = mysql_fetch_row($result))
{
echo "<h3>Информация:</h3>";
echo "<b>Номер Студенческого:</b> <input text>$id_st <br>";
echo "<b>Фамилия:</b> $s_name <br>";
echo "<b>Имя:</b> $f_name <br>";
echo "<b>Отчество:</b> $o_name <br>";
echo "<h3>Информация о Проживании:</h3>";
$result1 = mysql_query("SELECT * FROM rasp_room WHERE id_st = '$id_st'");
while ( list($id_st,$num_r,$date_in,$date_out) = mysql_fetch_row($result1) )
{?>
<table border = 1>
<tr>
<td>Номер</td>
<td>Номер Комнаты</td>
<td>Дата Заселения</td>
<td>Дата Выселения</td>
</tr>
<tr>
<td><?echo "$id_st";?></td>
<td><?echo "$num_r";?></td>
<td><?echo "$date_in";?></td>
<td><?echo "$date_out";?></td>
</tr>
</table><?}
}
}
else
{
echo "Совпадений нет";
include("find_form.php");
}
}
}
else
{
include("find_form.php");
}
include("inc/footer.php");
?>
|
| |
|
|
|
|
|
|
|
для: Super[MAN]
(25.08.2008 в 11:26)
| | >Непонятно,что за стандартный вывод диагностики php?
тот, который достигается в результате error_reporting(E_ALL);
$sql = "SELECT * FROM info_st WHERE $category = '$keyword' ";
$result = mysql_query($sql);
if(!$result) exit("Error in $sql: ".mysql_error());
$er=mysql_num_rows($result);
|
| |
|
|
|
|
|
|
|
для: Trianon
(25.08.2008 в 11:34)
| | Спасибо за стандартный вывод диагностики,благодаря ему увидели где ошибка. Так еще бы долго думали над проблемой,а ошибка была в написании,в обработчике формы id_st, а в форме было st_id. | |
|
|
|