Возможный дубликат:
mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean задан в select
if (isset($_GET['uid']) && !empty($_GET['uid'])) { $id = $_GET['uid']; $sql = "SELECT * FROM `apps` WHERE `id` = ". mysql_real_escape_string($id) ." LIMIT 1"; if ($result = mysql_query($sql)) { if (mysql_num_rows($result) == 1) { while($row = mysql_fetch_assoc($result)){ $username = $row["MCName"]; echo' //Here is a ton of rows and some html. '; } $sql = "SELECT * FROM `apps` WHERE `MCName` = ". $username; $result = mysql_query($sql); $rows = mysql_num_rows($result); }else { die('Record not found.'); } } }
Ive пробовал все, он продолжает терпеть неудачу. Я не владею SQL и PHP. Я хочу подсчитать, сколько строк есть с «MCName». Я не уверен, могу ли я сделать это в первом SQL-запросе. Кроме того, ошибка появляется в строке 44, иначе это строка, которая выполняет mysql_num_rows. БД подключается ранее к скрипту.
Извините, если это действительно глупый вопрос, поверьте мне. Я искал час или около того для исправления ^^
Второй запрос имеет синтаксическую ошибку SQL:
$sql = "SELECT * FROM `apps` WHERE `MCName` = ". $username;
Переменная $username
должна быть заключена в кавычки. Попробуйте выполнить следующее:
$sql = "SELECT * FROM `apps` WHERE `MCName` = '". $username . "'";
Это от php: http://php.net/manual/en/function.mysql-query.php
Use of this extension is discouraged. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:
См. http://www.php.net/manual/en/mysqli.query.php для подробных примеров.
Правильный способ сделать это ??
$mysqli = new mysqli("localhost", "user", "password", "db"); $sql = "SELECT * FROM `apps` WHERE `MCName` = '%s' "; if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } $result = $mysqli->query(sprintf($sql, $mysqli->real_escape_string($username))); $rows = $result->num_rows;
$sql = "SELECT COUNT(*) cn FROM `apps` WHERE `MCName` = '". $username."'"; $result = mysql_query($sql);
Тогда получите от этого результат.
И да, я бы рекомендовал использовать PDO вместо команд mysql_ *