@Kejin

Почему mysql выдает такую ошибку?

Вставил код, теперь mysql запрос выдает ошибку, что в 135 строке что то не так.
Ошибка Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in R:\home\ProectMagazine\www\view_content.php on line 135
Вот собственно код из этого файла
while ($row1 = mysql_fetch_array($result1));


 $result = mysql_query("SELECT * FROM uploads_images WHERE products_id='$id'",$link);

If (mysql_num_rows($result) > 0) <- 135 строка

{
$row = mysql_fetch_array($result);
echo '<div id="block-img-slide">
      <ul>';
do
{
    
$img_path = './uploads_images/'.$row["image"];
$max_width = 70; 
$max_height = 70; 
 list($width, $height) = getimagesize($img_path); 
$ratioh = $max_height/$height; 
$ratiow = $max_width/$width; 
$ratio = min($ratioh, $ratiow); 

$width = intval($ratio*$width); 
$height = intval($ratio*$height);    
    
    
echo '
<li>
<a class="image-modal" href="#image'.$row["id"].'"><img src="'.$img_path.'" width="'.$width.'" height="'.$height.'" /></a>
</li>
<a style="display:none;" class="image-modal" rel="group" id="image'.$row["id"].'" ><img  src="./uploads_images/'.$row["image"].'" /></a>
';
}
  • Вопрос задан
  • 256 просмотров
Решения вопроса 1
@Arik
если так сделать?
//...
$result = mysql_query("SELECT * FROM uploads_images WHERE products_id='$id'",$link);
if($result === false) {
    die(mysql_error($link));
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Fragster
@Fragster
помогло? отметь решением!
php.net/mysql-query
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

В данном случае очень подозрительно ='$id'
во первых - это может быть путь к sql injection, во вторых - подозрительные кавычки. попробуйте вывести фактический запрос и выполнить его в phpmyadmin.

Ну и mysql - deprecated, используйте PDO/mysqli. И не используйте запросы в цикле.
Ответ написан
@nozzy
Symfony, Laravel, SQL
У тебя что-то не так с запросом,
попробуй:
$result = mysql_query("SELECT * FROM uploads_images WHERE products_id='$id'",$link) or die(mysql_error());
Ответ написан
Комментировать
1. Никогда больше не используйте mysql_...()
Эта либа запрещена к использованию и не работает в PHP7.

2. Не используйте запросы в цикле, делайте 1 запрос с условием "WHERE IN ()", потом уже перебирайте все полученные записи в цикле.

3. Используйте echo mysql_error(), чтобы определить, в чём ошибка.

4. Скорее всего (судя по коду) у вас на момент вызова
$result = mysql_query("SELECT * FROM uploads_images WHERE products_id='$id'",$link);
не установлено значение '$id
Ответ написан
@choupa
Архитектор (обычный, который строит)
Я конечно php-самоучка одиночка в личных целях, не знаю, как делают профессионалы. В таких ситуациях я для отладки в явном виде вывожу сформированную строку запроса на экран, копи-пастом отправляю её в phpmyadmin, и смотрю, что получится. Обычно после этого всё становится ясно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы