[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Синтаксис mysql_num_rows($result)
Andreydial
Здравствуйте, поскажите пожелуста, на строку
PHP
if (mysql_num_rows($result) > 0)

получаю такую ошибку
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\test_site\www\rate_boss.php on line 69

OFF С каждым дальнейшим кодом в книге все больше ошибок, но что здесь за очепятка я понять не могу. Да, кстати код работает, ошибка как бы вверху страницы появляется и дальше код продолжает выполнятся.



Спустя 1 минута, 28 секунд (30.03.2009 - 16:03) Andreydial написал(а):
Кусок кода прилагаю
PHP
//открыть соединение с базой данных
        mysql_connect('localhost', 'root') or die ("Could not connect to database");
        mysql_select_db('mysite2') or die ("Could not select database");
                        
            
//выполнить проверку для определения того, не применялись ли эти значения 
            //имени и адреса электронной почты ранее
        $as_name = addslashes($_POST['name']);
        $tr_name = trim($as_name);
        $as_email = addslashes($_POST['email']);
        $tr_email = trim($as_email);
        $query = "SELECT sub_id FROM rates WHERE Name = '$tr_name' AND Email = '$tr_email'";
        $result = mysql_query($query);
        if (mysql_num_rows($result) > 0)
            {
            error_log(mysql_error());
            $message = 'Кто-то с таким именем или мылом уже зарегистрирован. Если вы думаете это ошибка, свяжитесь с нами.';
            }
        else
            
{
                //Вставить в базу данных имя и мыло
            $query = "INSERT INTO raters (ID, Name, Email) VALUES (NULL, '$tr_name', '$tr_email')";
            $result = mysql_query($query);
            if (mysql_affected_rows() == 1)
                {
                $message = '<p>Док, док, успех!</p>';
                $message .= $rate_form;
                }
            else
                
{
                error_log(mysql_error());
                $message = '<p>Ошибка в вашей записи.</p>';
                $message .= $reg_form;

Не работает только вывод ошибки при повторяющемся мыле, имени. Но я думаю, это изза ошибки.

Спустя 19 минут, 33 секунды (30.03.2009 - 16:23) anonymouse написал(а):
Цитата (Andreydial @ 30.03.2009 - 13:02)
Здравствуйте, поскажите пожелуста, на строку
PHP
if (mysql_num_rows($result) > 0)

получаю такую ошибку
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\test_site\www\rate_boss.php on line 69

OFF С каждым дальнейшим кодом в книге все больше ошибок, но что здесь за очепятка я понять не могу. Да, кстати код работает, ошибка как бы вверху страницы появляется и дальше код продолжает выполнятся.

$temp=mysql_num_rows($result);

и потом сделай сравнение
должно работать.

Спустя 7 минут, 56 секунд (30.03.2009 - 16:31) Andreydial написал(а):
Не работает, та же ошибка.
Спасибо большое, нашел. biggrin.gif

Спустя 6 минут, 34 секунды (30.03.2009 - 16:37) anonymouse написал(а):
Цитата (Andreydial @ 30.03.2009 - 13:31)
Не работает, та же ошибка.
Спасибо большое, нашел. biggrin.gif

PHP
<?
$db=mysql_connect("localhost","root","vertrigo");
$select=mysql_select_db("apx");
$html=mysql_query("set names 'cp1251';");

$q1=mysql_query("SELECT * FROM `categories`;");
$r1=mysql_num_rows($q1);
if ($r1 > 0)
{
echo "$r1";
}
if ( $r1 == 30 )
{
echo "$r1";
}





Странно у меня все сработало blink.gif blink.gif blink.gif

Спустя 5 минут, 15 секунд (30.03.2009 - 16:42) Andreydial написал(а):
Стыдно признаться, но ошибка была в названии таблицы. ph34r.gif

Спустя 1 минута, 32 секунды (30.03.2009 - 16:44) Kuliev написал(а):
Andreydial
В вашем запросе если скажем логин такой есть а майла такого нет то мускул возвращает 0 следовательно у вас в таблице может быть куча одинаковых юзеров с разными email или на оборот ))


Спустя 19 минут, 26 секунд (30.03.2009 - 17:03) Andreydial написал(а):
Это я в курсе, это кусок учебного кода. Никоим образом с реальностью не граничащий. smile.gif

Спустя 17 часов, 27 минут, 7 секунд (31.03.2009 - 10:31) Andreydial написал(а):
Код новый проблема старая, все проверил а ошибка
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\test_site\www\comment_edit.php on line 32
так и осталась. Ничего не пойму, уже запутался полностью.
Исходный код прилагаю
PHP
<?php
mysql_connect
('localhost', 'root') or die ("Could not connect to database");
mysql_select_db('mysite2') or die ("Could not select database");
//mysql_query("CREATE TABLE comments (ID int not null auto_increment primary key, comment_header varchar(50), comment                             varchar(50))") or die(mysql_error());
if ($_POST['submit'] == 'Submit')
    {
    //отформатировать данные
    $comment_id = $_POST['comment_id'];
    $comment_header = $_POST['comment_header'];
    $as_comment_header = addslashes($comment_header);
    $comment = $_POST['comment'];
    $as_comment = addslashes($comment);
    //обновить значения
    $query = "UPDATE comments SET comment_header = '$as_comment_header', comment = '$as_comment', WHERE ID = $comment_id";
    $result = mysql_query($query);
    if (mysql_affected_rows() == 1)
        {
        $success_msg = '<p>Ваш коментарий обновлен</p>';
        }
    else
        
{
        error_log(mysql_error());
        $success_msg = '<p>Ваш коментарий не обновлен</p>';
        }
    }
else
    {
    //получить заголовок комментария и сам комментарий
    $comment_id = $_GET['comment_id'];
    $query = "SELECT comment_header, comment FROM comments WHERE ID = $comment_id";
    $result = mysql_query($query);
    $comment_arr = mysql_fetch_array($result);
    $comment_header = stripslashes($comment_arr[0]);
    $comment = stripslashes($comment_arr[1]);
    $success_msg = '<p>начало комментирования</p>';
    }
//переменная для использования вложенных документов
//
$thispage = $_SERVER['PHP_SELF'];

$form_page = <<< EOFORMPAGE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>

<style type="text/css">
<!--
body, p   {color: black; font-family: verdana; font-size: 10 pt}
h1   {color: black; font-family: arial; font-size: 12 pt}
-->
</style>
</head>

<body>
<table border="1" cellpadding="10" width="100%">
<tr>
<td bgcolor="#00FFCC" align="center" valign="top" width="17%">
</td>
<td bgcolor="#CCFF66" align="left" valign="top" width="83%">
<h1>редактор комментариев</h1>
$success_msg
<form method="post" action="$thispage">
<input type="text" size="40" name="comment_header" value="$comment_header"><br><br>
<textarea name="comment" rows=10 cols=50>$comment</textarea><br><br>
<input type="hidden" name="comment_id" value="$comment_id">
<input type="submit" name="submit" value="Submit">
</form>
</td>
</tr>
</table>
</body>
</html>
EO

Таблица создана, разделы тоже, но ни вносить запись не редактировать не хочет, пишет ваш комментарий не обновлен. Я так понял саму таблицу не видит программа, но ведь сама создала и имена с точностью до буквы правильные. 32 строка это
PHP
$comment_arr = mysql_fetch_array($result);

Спустя 7 минут, 13 секунд (31.03.2009 - 10:38) Нимфа написал(а):
вы не обработали возможные ошибки обработки SQL-запроса, такая ошибка возникла и функциия mysql_query() вернула false вместо дескриптора результирующей таблицы. Далее скрипт передаёт false функции mysql_fetch_array(), на что она естественно огрызается. Следует обработать возможные ошибки для всех функций mysql_query().
PHP
<?php 
$sql 
"select * from users where username='".$_POST["name"]."'"
$result mysql_query($sql); 
if(!
$result

  echo 
"Возникла ошибка - ".mysql_error()."<br>"
  echo 
$sql
  exit(); 

// Далее остальной код 

Спустя 6 минут, 35 секунд (31.03.2009 - 10:44) Kuliev написал(а):
Andreydial
PHP
<?
$query "SELECT comment_header, comment FROM comments WHERE ID = $comment_id";

// замени на

$query "SELECT comment_header, comment FROM comments WHERE ID = '$comment_id' ";


Спустя 1 минута, 47 секунд (31.03.2009 - 10:46) Andreydial написал(а):
Спасибо, ошибка пропала, но комментарий всеравно не обновляется
PHP
//обновить значения
    
$query "UPDATE comments SET comment_header = '$as_comment_header', comment = '$as_comment', WHERE ID = '$comment_id'";
    
$result mysql_query($query);
    if (
mysql_affected_rows() == 1)
        {
        
$success_msg '<p>Ваш коментарий обновлен</p>';
        }
    else
        {
        
error_log(mysql_error());
        
$success_msg '<p>Ваш коментарий не обновлен</p>';
        }

хоть $comment_id, хоть '$comment_id' вставляю в запрос, в этом месте безтолку. Всегда пишет комментарий не обновлен.

Спустя 9 минут, 33 секунды (31.03.2009 - 10:56) Нимфа написал(а):
Цитата (Kuliev @ 31.03.2009 - 07:44)
Andreydial
PHP
<?
$query = "SELECT comment_header, comment FROM comments WHERE ID = $comment_id";

// замени на

$query = "SELECT comment_header, comment FROM comments WHERE ID = '$comment_id' ";

замени еще на $query = "SELECT comment_header, comment FROM comments WHERE ID = '".$comment_id."' ";

Спустя 1 минута, 12 секунд (31.03.2009 - 10:57) Kuliev написал(а):
Цитата (Andreydial @ 31.03.2009 - 07:46)
Спасибо, ошибка пропала, но комментарий всеравно не обновляется
PHP
//обновить значения
    $query = "UPDATE comments SET comment_header = '$as_comment_header', comment = '$as_comment', WHERE ID = '$comment_id'";
    $result = mysql_query($query);
    if (mysql_affected_rows() == 1)
        {
        $success_msg = '<p>Ваш коментарий обновлен</p>';
        }
    else
        
{
        error_log(mysql_error());
        $success_msg = '<p>Ваш коментарий не обновлен</p>';
        }

хоть $comment_id, хоть '$comment_id' вставляю в запрос, в этом месте безтолку. Всегда пишет комментарий не обновлен.

PHP
<?
if (
mysql_affected_rows() == 1)
        {
        
$success_msg '<p>Ваш коментарий обновлен</p>';
        }
    else
        {
        
error_log(mysql_error());
        
$success_msg '<p>Ваш коментарий не обновлен</p>';
        }
// замени на 

if(mysql_fetch_row($result) > 0)
 {
        
$success_msg '<p>Ваш коментарий обновлен</p>';
        }
    else
        {
        
error_log(mysql_error());
        
$success_msg '<p>Ваш коментарий не обновлен</p>';
        }



Спустя 4 минуты, 19 секунд (31.03.2009 - 11:01) Andreydial написал(а):
Заменил, получаю ошибку
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in Z:\home\test_site\www\comment_edit.php on line 16

16 линия это
if (mysql_fetch_row($result) > 0)
Самое главное что в таблице данные не появляются, так что проверка я думаю работает.

Спустя 5 минут, 58 секунд (31.03.2009 - 11:07) Нимфа написал(а):
выведи сам запрос
PHP
echo $query;
какая строчка выводится??

Спустя 11 минут, 56 секунд (31.03.2009 - 11:19) Andreydial написал(а):
выводится такая строка
UPDATE comments SET comment_header = 'hghhjgh', comment = 'mbvhbvh', WHERE ID = ''
Я вот не пойму как они применяют переменную $comment_id, в книге ничего не написано, но по-моему что-то здесь не так, да в строке ID ='', к чему бы это. Даже если принудительно зделать $comment_id = 1
выскакивает строка
UPDATE comments SET comment_header = 'jffgfgffg', comment = 'bhbhbhbhbh', WHERE ID = '1'
но пишет что комментарий всеравно не обновлен, и в базу ничего не пишет.

Спустя 24 минуты, 9 секунд (31.03.2009 - 11:43) twin написал(а):
Вот сколько толкуют про вывод ошибок из мускула, ни кто не хочет слушать. Есть же классный помошник - musql_error(). В запросе синтаксическая ошибка, и эта функция показала бы где. Применяется так:
PHP
$result mysql_query($query)or die(musql_error());


Свернутый текст
$query = "UPDATE comments SET comment_header = '$as_comment_header', comment = '$as_comment', WHERE ID = '$comment_id'";

Спустя 32 минуты, 8 секунд (31.03.2009 - 12:15) Andreydial написал(а):
Цитата (twin @ 31.03.2009 - 08:43)
Вот сколько толкуют про вывод ошибок из мускула, ни кто не хочет слушать. Есть же классный помошник - musql_error(). В запросе синтаксическая ошибка, и эта функция показала бы где. Применяется так:
PHP
$result = mysql_query($query)or die(musql_error());


Свернутый текст
$query = "UPDATE comments SET comment_header = '$as_comment_header', comment = '$as_comment', WHERE ID = '$comment_id'";

Спасибо, ошибку исправил, но в базу все равно не пишет. Error уже не ругается.

Спустя 7 минут, 54 секунды (31.03.2009 - 12:23) Kuliev написал(а):
Andreydial
Так посмотри что у тебя в базе, какой id на строке которую обновляешь???

Спустя 2 минуты, 54 секунды (31.03.2009 - 12:26) Andreydial написал(а):
А в базе-то ничего нет blink.gif

Спустя 4 минуты, 8 секунд (31.03.2009 - 12:30) Нимфа написал(а):
ну так! обновлять можно уже существующий, а если создать надо - то используй INSERT INTO имя_табл Set столбец1=значение

Спустя 32 минуты, 58 секунд (31.03.2009 - 13:03) Andreydial написал(а):
получается, если по правильному, то необходимо проверять, если первая запись, то insert, если такая запись существует, то update.

Спустя 5 минут, 23 секунды (31.03.2009 - 13:09) Нимфа написал(а):
Смотря какая задача у тебя стоит.

Спустя 59 минут, 5 секунд (31.03.2009 - 14:08) sergeiss написал(а):
Цитата (Andreydial @ 31.03.2009 - 13:03)
получается, если по правильному, то необходимо проверять, если первая запись, то insert, если такая запись существует, то update.

В MySQL это делается с помощью специальных параметров в инсерте:

SQL
insert into .... on duplicate key update .....


Для деталей см. хэлп по MySQL.

Спустя 15 минут, 18 секунд (31.03.2009 - 14:23) Andreydial написал(а):
спасибо буду разбираться ohmy.gif

Спустя 4 месяца, 15 дней, 23 часа, 54 минуты, 48 секунд (17.08.2009 - 14:18) ludovik написал(а):
Приветик всем, ПОМОГИТЕ пожалуста!!!!!
установила скрипт - а он выдает ошибку
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource ,
видимо чтото в этом файле менять надо?
$result=mysql_query("select * from eventgroups where finished=0");
$num=mysql_num_rows($result);
помогите разобртся что там мнять.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.