У меня проблема с функцией mysql_num_rows (). Я проверил запрос (у него есть правильный синтаксис, и я получаю результат в sql), и подключение к базе данных, и все, похоже, работает.
// some code here, connecting to database and working query to db $query = "SELECT ff_client.email FROM ff_order, ff_client WHERE ff_order.id = '$order_number' AND ff_order.client_id = ff_client.id AND ff_client.email = '$email'"; if (!$result = mysqli_query($db, $query)) { echo '<p>Query wasn\'t found.</p>'; exit; } if (!$num = mysql_num_rows($result)) { // < the problem echo 'error'; } if ($num == 0) { echo '<p>Insert proper email address.</p>'; } else { $_SESSION['crazyfotoApp']['token'] = $order_number; $_SESSION['crazyfotoApp']['multiformat'] = 1; header('Location: http://www.my.page.pl/zamow-odbitki.php?u=1'); }
Я получил этот результат:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mnt/sda3/www/www1.my.page.pl/recover.php on line 37 error Insert proper email address.
попробуйте mysqli_num_rows вместо mysql_num_rows
Это потому, что $ result известен только в первом if-statement. Вам нужно разбить его и сделать доступным «глобально».
Кроме того, если результат $ fail завершится неудачно, вы получите эту ошибку, поэтому вам нужно вложить ваши sub-ifs внутрь if(!$row =....
Что такое mysql_error (); сказать? Что делает var_dump (); скажем, когда вы проверяете $ result? var_dump ($ результат);