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
Форумы портала PHP.SU :: Версия для печати :: Помогите доделать)
Форумы портала PHP.SU » » Вопросы новичков » Помогите доделать)

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

1. jobsdata - 06 Августа, 2012 - 13:19:17 - перейти к сообщению
Добрый день. Есть такой код
PHP:
скопировать код в буфер обмена
  1. $query2 = mysql_query("SELECT * FROM card WHERE cat=".$cat_id );
  2. if(mysql_num_rows($query2)>0){
  3.         $result2 = mysql_fetch_array($query2);
  4.  
  5.         do{
  6.                 printf ('<div class="span4">
  7.                                     <img src="/%s" height="102"/>
  8.                                         <h1><a href="/%s/%s">%s</a></h1>
  9.                                        
  10.                                         </div>', $result2['url_img'], $cat_slug, $result2['id'], $result2['name']);
  11. }
  12. while($result2 = mysql_fetch_array($query2));
  13.  
  14. }


В моей БД есть 18 строк, этот код их все вытаскивает , а мне нужно чтоб вытащил 3 строки, остановился, потом снова вытащил 3 строки. LIMIT не помогает (( Помогите нищему программисту)
2. Alho - 06 Августа, 2012 - 13:34:17 - перейти к сообщению
Не совсем понятно, что вам в дейтсвительности нужно.

Если все картинки на одной странице - пусть и вытаскивает все, а сами выводите по три в цикле.

Есди на разных. то LIMIT отлично должен работать.

CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT * FROM card WHERE cat=".$cat_id." LIMIT 3"

CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT * FROM card WHERE cat=".$cat_id." LIMIT 3, 3"
(для второго раза)
3. jobsdata - 06 Августа, 2012 - 14:36:25 - перейти к сообщению
Alho пишет:
Не совсем понятно, что вам в дейтсвительности нужно.

Если все картинки на одной странице - пусть и вытаскивает все, а сами выводите по три в цикле.

Есди на разных. то LIMIT отлично должен работать.

CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT * FROM card WHERE cat=".$cat_id." LIMIT 3"

CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT * FROM card WHERE cat=".$cat_id." LIMIT 3, 3"
(для второго раза)


Вытаскиваю карточки на страницу. А можешь показать как правильно оформить код на примере с циклом? Я просто не очень еще понимаю всю правильную логику оформления кода.
4. maragon - 06 Августа, 2012 - 14:40:35 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM card WHERE cat=".$cat_id." LIMIT 3");
  2. $count = mysql_num_rows($result);
  3. if($count > 0){
  4. while($row = mysql_fetch_array($result)){
  5. echo $row['id']; //Выведет id, если есть..
  6. echo "<br>";
  7. }
  8. } else { echo "<b>Пусто</b>";}

.. не прочитал ваш вопрос.
Постраничная навигая - слышали?
Выведет 3 блока, ниже навигация:
1,2,3 страница.
5. Netgl - 06 Августа, 2012 - 14:47:38 - перейти к сообщению
Используй foreach и счетчик

например

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $i=0; //счетчик
  4. foreach ($arr as $val){ //перебор массива
  5.         $i++; // + 1
  6.        
  7.         if ($i == 1) {
  8.                 echo '<div>'; // открываем тег
  9.         }
  10.        
  11.         if ($i <= 3){
  12.                 // тут всё что между тегами <div>
  13.         }
  14.        
  15.         if ($i == 3) {
  16.                 $i = 0; // обнуляем
  17.                 echo '</div>'; // закрываем тег
  18.         }
  19. }
  20. ?>
  21.  
6. jobsdata - 07 Августа, 2012 - 12:40:09 - перейти к сообщению
спасибо. по тестим.
(Добавление)
maragon пишет:
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM card WHERE cat=".$cat_id." LIMIT 3");
  2. $count = mysql_num_rows($result);
  3. if($count > 0){
  4. while($row = mysql_fetch_array($result)){
  5. echo $row['id']; //Выведет id, если есть..
  6. echo "<br>";
  7. }
  8. } else { echo "<b>Пусто</b>";}

.. не прочитал ваш вопрос.
Постраничная навигая - слышали?
Выведет 3 блока, ниже навигация:
1,2,3 страница.


мне не нужна постраничная навигация (( мне надо чтоб вывод по 3 карточки в определный див вывод был, потом снова 3 карточки в див, а если я вытаскиваю все в этот див, начинает корявое отображение. не надо меня направлять изучать css ))) просто код в который я это пытаюсь вывести очень кудрявый и нет времени тратить на стилизацию)
7. Yurka - 07 Августа, 2012 - 12:56:05 - перейти к сообщению
может так ?

PHP:
скопировать код в буфер обмена
  1.  
  2. $images = array(); //массив картинок;
  3. $count = 18;//count($images);
  4.        
  5. echo "<div>";
  6. for ($i = 0; $i<$count; $i++) {
  7.   if ($i%3==0)
  8.     if ($i==0) echo "<div>";
  9.     else echo "</div><div>";
  10.   echo "<img src='".$images[$i]."'/>";
  11. }
  12. if ($count%3!=0) "</div>";
  13.  

 

Powered by ExBB FM 1.0 RC1