Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: MySQL меня не понимает

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Отказывается работать
Le0_Nard
Отправлено: 05 Марта, 2015 - 22:58:52
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2015  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




Доброго времени суток, дорогие форумчане! Опять пишу с какой-то фигнёй, но сам уже три дня решить не могу:
PHP:
скопировать код в буфер обмена
  1.  $id = mysql_query('SELECT COUNT(*) FROM content_home');
  2.  $id = mysql_fetch_row($id)[0];
  3.  echo '$id = '.$id.' ('.gettype($id).')<br>';
  4.  settype($id, integer);
  5.  echo '$id = '.$id.' ('.gettype($id).')<br>';
  6.  
  7.  $first = mysql_query('SELECT * FROM content_home WHERE id='.$id) || die(mysql_error());
  8.  echo '$first = '.$first.' ('.gettype($first).')';
  9.  $first = mysql_fetch_assoc($first) || die(mysql_error());


Результат:
Цитата:
$id = 2 (string)
$id = 2 (integer)
$first = 1 (boolean)
( ! ) Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in

Результат не меняется, даже если прямо прописать id в запросе
PHP:
скопировать код в буфер обмена
  1. $first = mysql_query('SELECT * FROM content_home WHERE id=2')


В итоге у меня почему-то $first - не ресурс, а единица... boolean...

При том, если выполнить тот же запрос в MySQL менеджере, то он всё мило выдаёт (id новости, текст новости и ссылку на картинку/видео), а это значит, что запрос верный. К тому же парой строчек выше запрос к майсклу мило работал и выдал правильное число новостей (2).

Вопрос: ШТОДЕЛАТЬ?!

(Отредактировано автором: 05 Марта, 2015 - 23:48:36)

 
 Top
exlant
Отправлено: 05 Марта, 2015 - 23:34:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




так вы с начало и присваиваете $id integer

а потом ее же и выводите
PHP:
скопировать код в буфер обмена
  1. echo '$first = '.$first.' ('.gettype($id).')';


а в ошибке вам говориться, что не integer у вас в переменной а boolean, и это возможно из-за того что вы пишете

а надо
PHP:
скопировать код в буфер обмена
  1.  
  2. $row = mysql_fetch_assoc($first) || die(mysql_error()); // или какая то другая переменная
  3.  

хотя в первый вызов должно было и сработать и вывести, то что надо, а вот в цикле точно выдало бы вам ошибку такая запись

(Отредактировано автором: 05 Марта, 2015 - 23:35:25)

 
 Top
Le0_Nard
Отправлено: 05 Марта, 2015 - 23:45:59
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2015  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




Точно, проглядел... Итак:
PHP:
скопировать код в буфер обмена
  1.  $id = mysql_query('SELECT COUNT(*) FROM content_home');
  2.  $id = mysql_fetch_row($id)[0];
  3.  echo '$id = '.$id.' ('.gettype($id).')<br>';
  4.  settype($id, integer);
  5.  echo '$id = '.$id.' ('.gettype($id).')<br>';
  6.  
  7.  $news = mysql_query('SELECT * FROM content_home WHERE id='.$id) || die(mysql_error());
  8.  echo '$news = '.$news.' ('.gettype($news).')';
  9.  $first = mysql_fetch_assoc($news) || die(mysql_error());

Результат:
Цитата:
$id = 2 (string)
$id = 2 (integer)
$first = 1 (boolean)
( ! ) Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in

(Отредактировано автором: 05 Марта, 2015 - 23:46:38)

 
 Top
exlant
Отправлено: 05 Марта, 2015 - 23:50:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




я бы еще попробовал || на or заменить!
может там что то с приоритетом не так...

(Отредактировано автором: 05 Марта, 2015 - 23:50:53)

 
 Top
Le0_Nard
Отправлено: 06 Марта, 2015 - 00:03:48
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2015  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




Вот теперь работает :З Как говорится, "усё, як мае быць!"
Спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB