пока ($ row = mysql_fetch_array ($ query)) не работает - PullRequest
1 голос
/ 23 июля 2011

То, что я пытаюсь сделать, это проверить идентификатор пользователя путем проверки в cookie (называемом «идентификация»).

это мой код:

if(!$noCookie) {

$sql = "SELECT * FROM `". TABLE_PREFIX ."_logged` WHERE `logged_cookie` = '". $usersCookie ."' LIMIT 1";
$query = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query) <= 0) {
    echo 'yes cookie';

    $row = mysql_fetch_array($query) or die(mysql_error());
    print_r($row);

    while ($row=mysql_fetch_array($query)) {
        echo $usersId = $row["logged_user_id"];
    }
} else {
    echo 'no cookie';
}
}

Что происходит, еслиcookie пользователя такой же, как в таблице, он вернет идентификатор пользователя.

, так что это то, что я пытаюсь сделать, если IF говорит «да cookie», но пока он ничего не делает!и это не дает мне ошибку.

Ответы [ 3 ]

1 голос
/ 23 июля 2011

Вы запускали mysql_fetch_array только тогда, когда mysql_num_rows($query) оценивается как 0 или меньше;то есть нет строк .

Возможно, вы имели в виду:

if (mysql_num_rows($query) > 0) { // <-----
    echo 'yes cookie';

    $row = mysql_fetch_array($query) or die(mysql_error());
    // ...
}
else {
    echo 'no cookie';
}

Также обратите внимание, что вы запускаете mysql_fetch_array в двух разных местах, чтообычно не правильно.Ваш цикл while не будет включать первую строку результата, потому что вы уже сделали mysql_fetch_array один раз до цикла.

1 голос
/ 23 июля 2011
if(!$noCookie) {

$sql = "SELECT * FROM `". TABLE_PREFIX ."_logged` WHERE `logged_cookie` = '". $usersCookie ."' LIMIT 1";
$query = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query) > 0) {
    echo 'yes cookie';

    $row = mysql_fetch_array($query) or die(mysql_error());   
    foreach ($row as $r)
       echo $r["logged_user_id"];
} else {
    echo 'no cookie';
}
}
1 голос
/ 23 июля 2011

Так как строк нет, ничего не нужно выбирать.

if (mysql_num_rows($query) <= 0) {

Должно ли это быть > 0?

...