Что не так с mysql_num_rows? Возвращает ошибки
Я использовал эту серию, и я до этого видео и mysql_num_rows
злил меня с самого начала. http://www.youtube.com/watch?v=HP75yyjHgTg Я легко потратил 5 часов, просто пытаясь исправить все это mysql_num_rows
ошибки. В данный момент я делаю страницу профиля и получаю сообщение об ошибке. Ошибка:
Предупреждение: mysql_num_rows() ожидает, что параметр 1 будет ресурсом, значение NULL указано в /home/ztechrel/public_html/TESTING/blarg/REMAKE/profile.php в строке 8 (строка первая - часть mysql_num_rows)
Код в profile.php это:
<?php include("inc/incfiles/header.php"); ?>
<?php
if(isset($_GET['u'])) {
$username = mysql_real_escape_string($_GET['u']);
if(ctype_alnum($username)) //check user exists
$check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'");
if(mysql_num_rows($check)===1)
{
$get = mysql_fetch_assoc($check);
$username = $get['username'];
$firstname = $get['first_name'];
}
else
{
echo "<h2>User Does Not Exist</h2>";
exit();
}
}
?>
Есть ли способ, как я могу это исправить? Или кто-нибудь знает другой способ, которым я могу написать это? Я не удивлюсь, что он использует mysql_num_rows
опять же, есть что-то, что я могу использовать вместо этого, что легко реализовать? Если вам нужна другая информация, просто спросите.
4 ответа
Убедитесь, что вы фиксируете ошибки из PHP.
Возможно, предыдущий оператор mysql_query не выполнен и, следовательно, результат не установлен.
Попробуйте ниже, если mysql_query выполняется правильно или обратите внимание
$check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'") or die(mysql_error()."<br>".$sql);
Используйте это для проверки ошибки в вашем запросе
$username = mysql_real_escape_string($_GET['u']);
if(ctype_alnum($username)) {
//check user exists
$check = mysql_query("SELECT username,first_name FROM users
WHERE username='$username'") or die(mysql_error());
if(mysql_num_rows($check)===1){
$get = mysql_fetch_assoc($check);
$username = $get['username'];
$firstname = $get['first_name'];
}
else
{
echo "<h2>User Does Not Exist</h2>";
exit();
}
}
Убедитесь, что переменная $username
не пусто., ctype_alnum
возвращает ложь. Так $query
пустой.
<?php include("inc/incfiles/header.php"); ?>
<?php
if(isset($_GET['u'])) {
$username = mysql_real_escape_string($_GET['u']);
if ($username != "" && if(ctype_alnum($username))) {
$check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'");
if(mysql_num_rows($check)===1)
{
$get = mysql_fetch_assoc($check);
$username = $get['username'];
$firstname = $get['first_name'];
}
else
{
echo "<h2>User Does Not Exist</h2>";
exit();
}
}
}
?>
Это означает, что ваш запрос ничего не возвращает. Поставьте echo для вашего запроса и отобразите его в браузере. Затем скопируйте запрос и запустите его в phpmyadmin или браузере запросов mysql или в другом редакторе mysql. Попробуй найти $username
имеет правильное значение или неверное имя поля в запросе.