За последние 24 часа нас посетили 18873 программиста и 1615 роботов. Сейчас ищут 664 программиста ...

Вивод полей БД в цикле DO-WHILE

Тема в разделе "PHP для новичков", создана пользователем panchoha, 31 мар 2011.

  1. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    Есть вот такой код:


    PHP:
    1. $result1 = mysql_query("SELECT * FROM fotogallery ORDER BY id LIMIT $start, $num",$db);
    2. $myrow1 = mysql_fetch_array ($result1);
    3. ?>        
    4.        
    5.      
    6. <?php      
    7. do{ printf("<table width='631' height='753' border='0' align='center' bordercolor='#FFFFFF'>
    8.             <tr>
    9.             <td width='217'><div align='left'>
    10.               <p><a href=photo_max.php?id=%s target='_blank'><img src='%s' width='170' height='226'></a></p>
    11.               <p class='photo_info'>номер: %s</p>
    12.               <p class='photo_info'>ціна: %s грн.</p>
    13.               <p class='photo_info'>примітка: %s</p>
    14.               </div></td>
    15.                
    16.             <td width='200'><div align='center'>
    17.               <p><a href=photo_max.php?id=%s target='_blank'><img src='%s' width='170' height='226'></a></p>
    18.               <p align='left' class='photo_info'>номер: %s</p>
    19.               <p align='left' class='photo_info'>ціна: %s грн.</p>
    20.               <p align='left' class='photo_info'>примітка: %s</p>
    21.               </div></td>
    22.             <td width='200'><div align='right'>
    23.               <p><a href=photo_max.php?id=%s target='_blank'><img src='%s' width='170' height='226'></a></p>
    24.               <p align='left' class='photo_info'>номер: %s</p>
    25.               <p align='left' class='photo_info'>ціна: %s грн.</p>
    26.               <p align='left' class='photo_info'>примітка: %s</p>
    27.               </div></td></tr>
    28.                
    29.          
    30.             <tr>
    31.             <td width='217'><div align='left'>
    32.              <p><a href=photo_max.php?id=%s target='_blank'><img src='%s' width='170' height='226'></a></p>
    33.               <p class='photo_info'>номер: %s</p>
    34.               <p class='photo_info'>ціна: %s грн.</p>
    35.               <p class='photo_info'>примітка: %s</p>
    36.               </div></td>
    37.             <td width='200'><div align='center'>
    38.               <p><a href=photo_max.php?id=%s target='_blank'><img src='%s' width='170' height='226'></a></p>
    39.               <p align='left' class='photo_info'>номер: %s</p>
    40.               <p align='left' class='photo_info'>ціна: %s грн.</p>
    41.               <p align='left' class='photo_info'>примітка: %s</p>
    42.               </div></td>
    43.             <td width='200'><div align='right'>
    44.               <p><a href=photo_max.php?id=%s target='_blank'><img src='%s' width='170' height='226'></a></p>
    45.               <p align='left' class='photo_info'>номер: %s</p>
    46.               <p align='left' class='photo_info'>ціна: %s грн.</p>
    47.               <p align='left' class='photo_info'>примітка: %s</p>
    48.               </div></td>
    49.           </tr>
    50.            
    51.            
    52.             <tr>
    53.             <td width='217'><div align='left'>
    54.              <p><a href=photo_max.php?id=%s target='_blank'><img src='%s' width='170' height='226'></a></p>
    55.               <p class='photo_info'>номер: %s</p>
    56.               <p class='photo_info'>ціна: %s грн.</p>
    57.               <p class='photo_info'>примітка: %s</p>
    58.               </div></td>
    59.             <td width='200'><div align='center'>
    60.               <p><a href=photo_max.php?id=%s target='_blank'><img src='%s' width='170' height='226'></a></p>
    61.               <p align='left' class='photo_info'>номер: %s</p>
    62.               <p align='left' class='photo_info'>ціна: %s грн.</p>
    63.               <p align='left' class='photo_info'>примітка: %s</p>
    64.               </div></td>
    65.             <td width='200'><div align='right'>
    66.               <p><a href=photo_max.php?id=%s target='_blank'><img src='%s' width='170' height='226'></a></p>
    67.               <p align='left' class='photo_info'>номер: %s</p>
    68.               <p align='left' class='photo_info'>ціна: %s грн.</p>
    69.               <p align='left' class='photo_info'>примітка: %s</p>
    70.               </div></td>
    71.           </tr>
    72.         </table>",
    73.  
    74.  
    75. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    76. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    77. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    78. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    79. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    80. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    81. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    82. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    83. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"]    );
    84.  
    85.  
    86. }        
    87. while ($myrow1 = mysql_fetch_array ($result1));

    Проблема в конце! Мне надо, что б поля из БД вставялись по очереди! Тоисть первий Ид,Фото мини, намбер, прайс и ноте брались из первой строки таблици, а уже второй из второй строки, третий из третей строки и т.д. А шас все берут только первую строку!
     
  2. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    Сорь за мой русский!
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    panchoha
    обязательно по 3 товара в строку выводить?
     
  4. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    Да, но если есть вариант сделать вивод 9 записей на странице то буду рад помощи)
     
  5. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    У меня шас виводит 9 раз первую строку, 9 раз вторую, 9 раз третью и т.д.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    panchoha
    если прочитаешь эту тему http://www.php.ru/forum/viewtopic.php?t=31914 и перепишешь свой кусочек кода как я там советую, то наверное даже вопросов не возникнет. =)

    смех весь в том, что ты сам просишь пхп вывести тебе каждую строку по девять раз =)

    так что у тебя сейчас все работает ПРАВИЛЬНО. Хотя и не так как ты задумывал! :D
     
  7. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    igordata Спасибо шас почитаю, чтото попробуем)
     
  8. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0

    Да ето я понимаю, но может както можно без смени кода сделать что б первая строка - виводила 1 строку БД, а вторая - вторую и т.д Помогите пожалуйста! Именно тут чтото б сделать:
    PHP:
    1.  
    2. .......
    3. ,$myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    4. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    5. $myrow1["id"],$myrow1["photo_mini"],$myrow1["number"], $myrow1["price"],$myrow1["note"],
    6.  
    Может их както через цикл пускать что б они отдавали разни значие переменним више.[/php]
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    panchoha
    да. через цикл. смотри в той теме, там ОДНА строка в цикле.

    ты хочешь чтобы они у тебя расположились квадратиком 3х3 - вставляешь счетчик (типа $i++) в цикле делаешь проверку что $i = 3, тогда пишешь echo "</tr>\n<tr>" и начинается новая строка куда вставляешь <td> с картинками. сообразишь.

    ты главное переделай на нормальный цикл, без Do, с проверкой наличия результата, а то ведь картинок может и не быть - будет ошибка и некрасиво сайт перекосит.
     
  10. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    Ну с тегами все понятно! На счет картинок они будут всегда! Шас будем старатся, если что не получится, я еще спрошу! Спасибо большое!
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    только проверка требует двойного равно:
    if ($i == 3)

    а то будет проблема
     
  12. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    ну с етим я тож знаком)))))
    только шас пробема буде сделать етот цикл))))
    + у меня в каждом <td> виравнивание идет left,centеr,right
     
  13. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    по очереде
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    panchoha
    ну цикл сделать проблемой не будет. вобще лучше по-экспериментировать. там все поймешь. Я бы рекомендовал сначала попробовать как получится кое-как, а потом вот так:
    1. создать массив 3х3
    2. забить каждый член массива нужной инфой.
    3. если инфы меньше чем 9 порций - пофик, останутся пустые
    4. <tr> в цикле пройти по форич по строкам в массиве
    -- 5. <td> в цикле пройти по столбикам
    -- 6. проверять есть ли инфа в этом члене массива, строить свои картинки, либо показать пустую ячейку.
    -- 7. </td> =)
    </tr>
     
  15. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    А ви б могли переделать мой више написайн код, просто я в PHP не очень так силен, я начал тим заниматся недавно, а так я знаю больше Delphi Java
     
  16. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    panchoha
    как-то так. я не проверял.

    PHP:
    1. <?php      
    2. $query = "SELECT * FROM fotogallery ORDER BY id LIMIT $start, $num";
    3. if ($result1 = mysql_query($query,$db)) {
    4.  echo "<table width='631' height='753' border='0' align='center' bordercolor='#FFFFFF'>\n  <tr>";
    5. $columns = 3;
    6. $column = 0;
    7. while ($row = mysql_fetch_array ($result1)) {
    8.    ++$column;
    9.    echo "
    10.      <td width='217'>
    11.        <div align='left'>
    12.          <p><a href=photo_max.php?id={$row["id"]} target='_blank'><img src='{$row["photo_mini"]}' width='170' height='226'></a></p>
    13.          <p class='photo_info'>номер: {$row["number"]}</p>
    14.          <p class='photo_info'>ціна: {$row["price"]} грн.</p>
    15.          <p class='photo_info'>примітка: {$row["note"]}</p>
    16.        </div>
    17.      </td>
    18.  ";
    19.   if ($column == $columns) {
    20.     $column = 0;
    21.     echo "</tr>\n  <tr>\n";
    22.   }
    23.  }
    24. echo "  </tr>\n</table>\n";
    25. } else {
    26.   echo "Проблемы с бд. смотри строку вывода ошибки в соседней теме";
    27. }
     
  18. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    шас проверю, большое спасибо!!!
     
  19. panchoha

    panchoha Активный пользователь

    С нами с:
    31 мар 2011
    Сообщения:
    17
    Симпатии:
    0
    igordata
    Все работает, большое вам спасибо!
    Я над етим париося почти неделю, а ви решили за 20минут!!!
    Еще раз большое спасибо!
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ,<]:C) радостно!