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 :: Почему не работает цикл?

 PHP.SU

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


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

> Без описания
nkl
Отправлено: 05 Марта, 2012 - 12:28:06
Post Id



Посетитель


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


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




Вот код стоящий в самом верху страницы:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $query = createQuery($status, $age_from, $age_to, $cat_id, $type, $page);
  3. echo $query;
  4. $result = mysql_query($query);
  5. $num_rows = mysql_num_rows($result);
  6. for($i=0; $i<$num_rows; $i++){
  7. $row[$i] = mysql_fetch_assoc($result);
  8. }
  9. echo '<br/>Всего элементов выбрано: '.count($row);
  10.  

А вот цикл, который должен выводить лоты:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <table>
  3.                         <tr>            
  4.                         <?php
  5.                                                 for ($i = 0; $i < count($row); $i++){
  6.                                                         echo '<td>'."\n";
  7.                            echo '<div class="product">'."\n";
  8.                            if ($row[$i]['status'] == 'stok') echo '<div class="stok"></div>'."\n";
  9.                                                         if ($row[$i]['status'] == 'new') echo '<div class="new"></div>'."\n";
  10.                                                         echo '<a class="img" href="lot.php?lot_id='.$row[$i]['id'].'">'."\n";
  11.                                                         echo '<img alt="" src="files/lot_img/thumbs/thumb-'.$row[$i]['id'].'.jpg">'."\n";
  12.                            echo '</a>'."\n";
  13.                            echo '<h3>'.$row[$i]['title'].'</h3>'."\n";
  14.                            echo '<div class="cost">'."\n";
  15.                            echo $row[$i]['price'].'тг.'."\n";
  16.                            echo '<a class="buy" href="lot.php?lot_id='.$row[$i]['id'].'">Подробнее</a>'."\n";
  17.                            echo '</div>'."\n";
  18.                            echo '</div>'."\n";
  19.                            echo '</td>'."\n";
  20.                                                 }
  21.                                                 ?>
  22.                     </tr>
  23.                 </table>
  24.  


А вот, что я получаю в результате на этих местах:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM `lots` WHERE `cat_id` = 9<br/>Всего элементов выбрано: 14
  3. ...
  4. <table>
  5.                         <tr>            
  6.                         <td>
  7. <div class="product">
  8. <a class="img" href="lot.php?lot_id=">
  9. <img alt="" src="files/lot_img/thumbs/thumb-.jpg">
  10. </a>
  11. <h3></h3>
  12. <div class="cost">
  13. тг.
  14. <a class="buy" href="lot.php?lot_id=">Подробнее</a>
  15. </div>
  16. </div>
  17. </td>
  18. <td>
  19. <div class="product">
  20. <a class="img" href="lot.php?lot_id=">
  21. <img alt="" src="files/lot_img/thumbs/thumb-.jpg">
  22. </a>
  23. <h3></h3>
  24. <div class="cost">
  25. тг.
  26. <a class="buy" href="lot.php?lot_id=">Подробнее</a>
  27. </div>
  28. </div>
  29. </td>
  30. <td>
  31. <div class="product">
  32. <a class="img" href="lot.php?lot_id=">
  33. <img alt="" src="files/lot_img/thumbs/thumb-.jpg">
  34. </a>
  35. <h3></h3>
  36. <div class="cost">
  37. тг.
  38. <a class="buy" href="lot.php?lot_id=">Подробнее</a>
  39. </div>
  40. </div>
  41. </td>
  42. <td>
  43. <div class="product">
  44. <a class="img" href="lot.php?lot_id=">
  45. <img alt="" src="files/lot_img/thumbs/thumb-.jpg">
  46. </a>
  47. <h3></h3>
  48. <div class="cost">
  49. тг.
  50. <a class="buy" href="lot.php?lot_id=">Подробнее</a>
  51. </div>
  52. </div>
  53. </td>
  54.                     </tr>
  55.                 </table>
  56.  

(Добавление)
Почему у меня всего 4 итерации происходит и почему вместо к примеру $row[$i]['id'] пустое место? Я ведь правильно к элементу массива обращаюсь.
 
 Top
LIME
Отправлено: 05 Марта, 2012 - 12:32:05
Post Id


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


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


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




я так и не понял что не работает
может просто <tr> забываешь проставить?
 
 Top
nkl
Отправлено: 05 Марта, 2012 - 12:33:42
Post Id



Посетитель


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


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




Всего элементов выбрано: 14
(Добавление)
А итераций происходит всего 4
(Добавление)
а вот print_r массива $row, элементы которго не выводятся
Цитата:
Array ( [0] => Array ( [id] => 43 [cat_id] => 9 [type_id] => 2 [descriptions] => [keywords] => mnmnmnmm [title] => ghgjhjhj [body] =>
[age_from] => 6 [age_to] => 9 [color] => hjhjh [size] => mkjkjlkj [price] => 5656 [visible] => 0 [status] => stok [views] => 0 ) [1] => Array ( [id] => 36 [cat_id] => 9 [type_id] => 2 [descriptions] => [keywords] => [title] => Джинсы с длинным названием [body] =>

Джинсы — брюки из плотной хлопчатобумажной ткани, с проклёпанными стыками швов на карманах. Впервые изготовлены в 1853 году Леви Страуссом в качестве рабочей одежды для фермеров, так называемых реднеков.

Первоначально джинсы шили из конопляной парусины английского или американского производства, значительно подешевевшей ввиду упадка парусного флота. Именно благодаря этому материалу джинсы завоевали славу исключительно прочной одежды. В дальнейшем конопля была вытеснена хлопком, и к началу «джинсовой революции» в мировой моде (1960-е гг.) конопляная ткань уже не применялась в их производстве.
[age_from] => 0 [age_to] => 2 [color] => черные [size] => все детские размеры [price] => 5000 [visible] => 0 [status] => stok [views] => 0 ) [2] => Array ( [id] => 37 [cat_id] => 9 [type_id] => 4 [descriptions] => [keywords] => [title] => Джинсы [body] =>

Слово «джинсы» представляет собой русское образование на базе американизма jeans. Ещё в XVI веке в Европе была известная хлопчатая саржа диагонального переплетения jean, особый вид генуэзской бумазеи. С итальянского «gene» в старофранцузском появилось слово «janne» и уже оттуда перекочевало в английский язык. Название рассмотренного материала образовалось от топонима Генуя (Genua по-латински). Саму ткань вырабатывали во Франции, в городе Ним (de Nimes), Генуя поставляла краситель — индиго.

Слово вошло в русский язык в середине XX в.
[age_from] => 0 [age_to] => 2 [color] => синий [size] => для самых маленьких [price] => 3500 [visible] => 1 [status] => stok [views] => 0 ) [3] => Array ( [id] => 38 [cat_id] => 9 [type_id] => 5 [descriptions] => [keywords] => [title] => Боди с рисунком [body] =>

В царской России большое внимание уделялось разным униформам, которые дети дворян носили не только в гимназию и на прием, но и зачастую и в повседневной жизни. После революции вместе с упрощением быта пришло и упрощение одежды, в том числе и детской. Ребенок стал одеваться просто и удобно, но крайне стандартизовано. Воспитывался коллективизм в духе
[age_from] => 0 [age_to] => 2 [color] => белый, оранжевый [size] => все размеры [price] => 4200 [visible] => 1 [status] => stok [views] => 0 ) [4] => Array ( [id] => 39 [cat_id] => 9 [type_id] => 2 [descriptions] => [keywords] => [title] => Боди с кантом [body] =>

Практически каждый известный производитель модных вещей для взрослых старается выпускать линию одежды для детей. Основное направление на рынке задают D&G junior, Armani junior, Dior Baby, BOSS Kidswear, Bon Bebe, Luvable Friends, Hudson Bebe и многие другие. Более дешевые бренды предлагают OldNavy, GAP, Crazy8 и другие многочисленные производители Америки, Европы, Китая и Турции. Существует много также ориентированных исключительно на детей фирм-изготовителей, например Bamby.
[age_from] => 0 [age_to] => 2 [color] => белый, розовый [size] => для самых маленьких [price] => 2600 [visible] => 0 [status] => stok [views] => 0 ) [5] => Array ( [id] => 40 [cat_id] => 9 [type_id] => 2 [descriptions] => [keywords] => [title] => Боди [body] =>

Историки уже давно проследили происхождение джинсов по их названиям в английском языке: denim и jeans. Первое указывает на французский город Ним, который славился своими прочными тканями, второе — на итальянскую Геную с её текстильными фабриками.

Археологические изыскания пока ничего не дали; в письменных источниках сохранились только отрывочные сведения о том, что в середине XVII века из Генуи в Северную Европу (особенно в Англию) осуществлялись поставки дешёвой ткани этого типа[1]. Изображения предположительно джинсовой одежды (женщина в джинсовой юбке и мальчик в джинсовой куртке, сквозь прорехи которой видна светлая подкладка) обнаружены искусствоведами на картинах неизвестного итальянского мастера середины XVII в., условно названного «Мастером голубых джинсов»
[age_from] => 0 [age_to] => 3 [color] => серый [size] => все размеры [price] => 7000 [visible] => 1 [status] => stok [views] => 0 ) [6] => Array ( [id] => 41 [cat_id] => 9 [type_id] => 5 [descriptions] => [keywords] => [title] => Джинсовый комбенизон [body] =>

Комбинезо́н — предмет верхней одежды, представляющий собою соединение верхней части одежды и брюк.

Комбинезон на молнии и с длинными рукавами

Долгое время считался исключительно рабочей одеждой. Удобный, со множеством карманов, он не стеснял движений, собирал воедино костюм. Даже в своем рабочем варианте комбинезон имеет разные фасоны. Верхняя его часть может быть более или менее открытой. Форма комбинезона зависит от направления моды — он легко воспринимает все новые веяния.
[age_from] => 0 [age_to] => 2 [color] => синий [size] => 22-28 [price] => 4850 [visible] => 1 [status] => new [views] => 0 ) [7] => Array ( [id] => 42 [cat_id] => 9 [type_id] => 0 [descriptions] => Дескрипшинс [keywords] => бла-бла-бла [title] => Комбенизон мягкий бля [body] =>

Советская промышленность освоила комбинезон в 1941-м. Опыт зимних боев советско-финской войны показал необходимость иметь в войсках белый камуфляжный комбинезон.

Бла-бла-бла
[age_from] => 1 [age_to] => 3 [color] => серый, зеленый [size] => для самых маленьких [price] => 8300 [visible] => 0 [status] => default [views] => 0 ) [8] => Array ( [id] => 47 [cat_id] => 9 [type_id] => 2 [descriptions] => [keywords] => [title] => Бетономешалка [body] =>





екнрек ек

пар пар па

hgf hgf hgf fdgfdgfdgfdg fdg вапвап в пав па вп вап ва

gf hgfh gf
[age_from] => 0 [age_to] => 2 [color] => синий [size] => для самых маленьких [price] => 3500 [visible] => 1 [status] => stok [views] => 0 ) [9] => Array ( [id] => 49 [cat_id] => 9 [type_id] => 2 [descriptions] => [keywords] => оророр [title] => нпенпнепн [body] =>

ороргрп
[age_from] => 3 [age_to] => 6 [color] => красный [size] => рпапапап [price] => 3500 [visible] => 0 [status] => stok [views] => 0 ) [10] => Array ( [id] => 50 [cat_id] => 9 [type_id] => 2 [descriptions] => sdlkgjsdlkgj [keywords] => fdklgj fdklj [title] => dkljfksd [body] =>

ыва ывавы

вы

ав

ы

авы



ав

ыва

ыва
[age_from] => 0 [age_to] => 2 [color] => красный [size] => [price] => 3000 [visible] => 1 [status] => stok [views] => 0 ) [11] => Array ( [id] => 51 [cat_id] => 9 [type_id] => 2 [descriptions] => ыва sadf sf [keywords] => d fsad fsd af [title] => уаываыва [body] => [age_from] => 0 [age_to] => 7 [color] => sfsd [size] => sadf sdf [price] => 5000 [visible] => 1 [status] => stok [views] => 0 ) [12] => Array ( [id] => 52 [cat_id] => 9 [type_id] => 2 [descriptions] => fdgsdfgdsf [keywords] => dfsgsdfg [title] => dfsgfdgdfsg [body] =>

adsgdfgdfsg
[age_from] => 7 [age_to] => 12 [color] => sdgfgs [size] => dsfgfdg [price] => 1000 [visible] => 1 [status] => stok [views] => 0 ) [13] => Array ( [id] => 53 [cat_id] => 9 [type_id] => 2 [descriptions] => fdsh fdsh sd hf [keywords] => shfds рвыа р [title] => rhgsdfhf [body] =>

выавыпа
[age_from] => 2 [age_to] => 5 [color] => авп вап [size] => ав пп ва [price] => 12 [visible] => 1 [status] => stok [views] => 0 ) )

(Добавление)
т.е. написав $row[0]['id'] я должен получить 43, а я получаю пустое место...
(Добавление)
или $row[13]['price'] = 12 а мне вместо этого опять пустое место
 
 Top
LIME
Отправлено: 05 Марта, 2012 - 12:42:03
Post Id


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


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


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




как видно у тебя вообще ничего не вставляется
ни одного поля ни одного ряда
чудеса
вставь полученный запрос в какой-нить клиент mysql (phpMyAdmin)
и смотри внимательно что вылезет
соответствие всех имен(поля, таблица)
 
 Top
nkl
Отправлено: 05 Марта, 2012 - 12:43:46
Post Id



Посетитель


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


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




запрос возвращает нормальный результат и присваевает его поочередно каждому элементу массива $row
(Добавление)
В общем-то даже без разницы какой длины будет массив $row, цикл всегда делает 4 итерации, хотя ему нормально сказано, делать до тех пор, пока $i < cont($row).
 
 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