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 :: Запрос к МySQL возвращает не коректные данные!

 PHP.SU

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


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

> Описание: Возвращает последнюю запись много раз
qtk
Отправлено: 26 Марта, 2013 - 06:41:23
Post Id


Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Май 2012  


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




Добрый день! С толкнулся с такой проблемой. При запросе данных из 'Мускул' , код типа
PHP:
скопировать код в буфер обмена
  1. $query=mysql_query("SELECT * FROM `estate` ORDER BY `id` DESC LIMIT 10");
  2. while($result=mysql_fetch_array($query)) {еchо $result['text'];}

возвращает бесконечное число раз последнюю запись в таблице, пока не пройдет 30секунд и выдает ошибку, 'Что лимит на выполнение 30сек'. Может кто сталкивался или знает из-за чего так.
Сейчас переписываю свой сайт с ПП в ООП. В ооп использую куски старого кода, который раньше работал нормально. Так же переустановил аналог Денвера на более новый, и скопировал старую базу в новую, может это как то повлияло. За ранее спасибо!
 
 Top
Мелкий Супермодератор
Отправлено: 26 Марта, 2013 - 09:03:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Покажите не "типа код", а реальный.
Наверняка сделали глупость в духе while($result=mysql_fetch_array(mysql_query(/**/)))


-----
PostgreSQL DBA
 
 Top
V2oD2o
Отправлено: 26 Марта, 2013 - 12:27:49
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Нояб. 2010  


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




ну так код то правильно работает Улыбка
 
 Top
qtk
Отправлено: 26 Марта, 2013 - 18:42:31
Post Id


Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Май 2012  


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class ConnectMysql {
  3.     protected static $host='localhost';
  4.     protected static $login='db';
  5.     protected static $pass=2580;
  6.     protected static $db='db';
  7.         public function get_connect($host,$login,$pass,$db) {
  8.             $this->host=$host;
  9.                 $this->login=$login;
  10.                 $this->pass=$pass;
  11.                 $this->db=$db;
  12.         }      
  13.     public static function start() {
  14.         mysql_connect(self::$host,self::$login,self::$pass) or die('Не удалось соединиться с MySQL');
  15.                 mysql_query("SET NAMES utf8");
  16.         mysql_select_db(self::$db) or die('Не удалось выбрать базу данных из MySQL');
  17.         }
  18.     public static function end() {
  19.         mysql_close(mysql_connect(self::$host,self::$login,self::$pass));
  20.         }
  21. }
  22. class A {
  23.     public function __construct() {
  24.             ConnectMysql::start();
  25.                 $this-> get_content();
  26.                 ConnectMysql::end();
  27.         }
  28.         public function get_content() {
  29.             while($result_mysql=mysql_fetch_array(mysql_query("SELECT * FROM `es`"))) {
  30.                     echo $result_mysql['name'];                            
  31.         }      
  32.         }
  33. }
  34. $o= new A;
  35. ?>

(Отредактировано автором: 26 Марта, 2013 - 18:43:54)

 
 Top
DelphinPRO
Отправлено: 26 Марта, 2013 - 20:01:05
Post Id



Активный участник


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


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




Мелкий пишет:
Наверняка сделали глупость в духе while($result=mysql_fetch_array(mysql_query(/**/)))

qtk пишет:
while($result_mysql=mysql_fetch_array(mysql_query("SELECT * FROM `es`"))) {

как в воду глядел


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
qtk
Отправлено: 26 Марта, 2013 - 20:44:03
Post Id


Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Май 2012  


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




Дак в чем ошибка?
 
 Top
EuGen Администратор
Отправлено: 26 Марта, 2013 - 20:46:57
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




qtk пишет:
while($result_mysql=mysql_fetch_array(mysql_query("SELECT * FROM `es`")))

- это не то же самое, что
qtk пишет:
$query=mysql_query("SELECT * FROM `estate` ORDER BY `id` DESC LIMIT 10");
while($result=mysql_fetch_array($query)) {еchо $result['text'];}

- это.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
qtk
Отправлено: 26 Марта, 2013 - 20:53:37
Post Id


Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Май 2012  


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




Спасибо, а где об этом можно почитать?
 
 Top
EuGen Администратор
Отправлено: 26 Марта, 2013 - 22:23:13
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Так это же очевидно. Выражение, стоящее в скобках в while - вычисляется каждую итерацию, чтобы проверить, не стало ли оно ложно и не пора ли заканчивать исполнение цикла. Выражение $result_mysql=mysql_fetch_array(mysql_query("SELECT * FROM `es`")) не будет ложным никогда, если в таблице есть ряды, потому что запрос будет выполняться каждый раз по-новому и каждый раз будет возвращена первая строка.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 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