Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: mysql_num_rows(): supplied argument is not a valid MySQL
 
 автор: Super[MAN]   (25.08.2008 в 11:16)   письмо автору
 
 

Мой скрипт ищет данные из БД по $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 )


В чем может быть проблема? Помогите, пожалуйста.

  Ответить  
 
 автор: Trianon   (25.08.2008 в 11:24)   письмо автору
 
   для: Super[MAN]   (25.08.2008 в 11:16)
 

Проблема в том, что Вы заблокировали стандартный вывод диагностики php, и не проверяете успешность выполнения запроса. Запрос сервером отвергнут из-за синтаксической (вероятнее всего) ошибки. Соответственно функции mysql_num_rows просто не с чем работать.

  Ответить  
 
 автор: Super[MAN]   (25.08.2008 в 11:26)   письмо автору
 
   для: 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 != )
            {
                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");
?>

  Ответить  
 
 автор: Trianon   (25.08.2008 в 11:34)   письмо автору
 
   для: 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);

  Ответить  
 
 автор: Super[MAN]   (25.08.2008 в 11:51)   письмо автору
 
   для: Trianon   (25.08.2008 в 11:34)
 

Спасибо за стандартный вывод диагностики,благодаря ему увидели где ошибка. Так еще бы долго думали над проблемой,а ошибка была в написании,в обработчике формы id_st, а в форме было st_id.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования