За последние 24 часа нас посетили 22454 программиста и 1592 робота. Сейчас ищут 1638 программистов ...

В два столбика

Тема в разделе "PHP для новичков", создана пользователем Поросёнок, 23 окт 2008.

  1. Поросёнок

    Поросёнок Активный пользователь

    С нами с:
    7 авг 2008
    Сообщения:
    24
    Симпатии:
    0
    Не могу сделать в два столбика вывод, крутил там чего то через for и окончательно запутался :?

    Единственное что у меня получилось сделать так это:
    1 1
    2 2
    3 3
    4 4

    А надо:
    1 2
    3 4

    Сейчас это выглядет:
    PHP:
    1. <?
    2. while ($row = mysql_fetch_assoc($sql))
    3.                     {
    4.                     echo "
    5.                         <tr>
    6.                             <td>".$row['name']."</td>
    7.                         </tr>
    8.                         ";
    9.                     }
    10. ?>
    По-моему я так и не понял какую переменную назначать для цикла в for для подсчёта строк и столбцов... Может кто подскажет?
     
  2. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    ужос, нах.
    Определяешь количество записей, делишь на 2.
    фор (и=0; и<(кол-во/2); и=и+2)
    {
    эчо ($data[$i]." ".[$data[$i+1];
    }

    это мысль.
    А ваабще миллион способов можно придумать...
     
  3. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    иногда люди просто не умеют пользоваться поиском. Бывает…

    И ещё один вариант.
    PHP:
    1. <?php
    2. $res = mysql_query('…');
    3. $str = '<table border="1"><tr>';
    4. $i=0;
    5. while($row = mysql_fetch_row($res)){
    6.     $str .= '<td>'.$row[0].'</td>';
    7.     if(($i++)%2)
    8.         $str .= '</tr><tr>';
    9.  
    10. }
    11. echo $str.='</tr></table>';
    оба способа несколько «бажные». Найдёшь что не так?
     
  4. Mete0

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

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    Ну что-нибудь вроде того, если я правильно понял тебя:

    PHP:
    1. <?php
    2. $i = 1;
    3. $html = '<table>';
    4. while ($row = mysql_fetch_assoc($q)) {
    5.  if ($i % 2 == 0)
    6.    $html .= '<td>'. $row['name'] .'</td></tr>';
    7.  else
    8.    $html .= '<tr><td>' . $row['name'] . '</td>';
    9.  $i++;
    10. }
    11. $html .= '</table>';
    12. echo $html;
    13. ?>
     
  5. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    ShamahN
    а если там сто тыщ мильёнов записей в выборке? ;)
     
  6. Mete0

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

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    Вот чуть-чуть покороче вариант. :)
    PHP:
    1. <?php
    2. $i = 0;
    3. $html = '<table>';
    4. while ($row = mysql_fetch_assoc($q))
    5.   if (($i++) % 2 == 0)
    6.     $html .= '<td>'. $row['name'] .'</td></tr>';
    7.   else
    8.     $html .= '<tr><td>' . $row['name'] . '</td>';
    9. echo $html . '</table>';
    10. ?>
     
  7. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Mete0
    твой тоже «бажный» :) Что будет с последним рядом, если кол-во значений нечётное?
    PHP:
    1. <?php
    2. $i = 0;
    3. $html = '<table>';
    4. while ($row = mysql_fetch_row($res)) {
    5.     $tmp_html = '<td>'.$row[0].'</td>';
    6.     $html .= (++$i%2)?'<tr>'.$tmp_html:$tmp_html.'</tr>';
    7. }
    8. echo $html .= ((++$i%2)?null:'<td>&nbsp;</td></tr>').'</table>';
    9. ?>
     
  8. Mete0

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

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    Точно... Что-то под уже совсем сонный :). Тогда вот так вот:
    PHP:
    1. <?php
    2. $i = 0;
    3. $html = '<table>';
    4. while ($row = mysql_fetch_assoc($q))
    5.  $html .= (++$i % 2 == 0) ? '<td>'. $row['name'] .'</td></tr>' : '<tr><td>' . $row['name'] . '</td>';
    6. $html .= ($i % 2) ? '<td></td></tr>' : null;
    7. echo $html . '</table>';
    8. ?>
     
  9. Поросёнок

    Поросёнок Активный пользователь

    С нами с:
    7 авг 2008
    Сообщения:
    24
    Симпатии:
    0
    Искал конкретно по запросу "В две колонки" и ни одного намёка на две колонки на нашёл.. может просто не заметил.

    Всем спасибо, вроде дошло теперь :)
     
  10. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
  11. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    не знаю. А что будет?

    Я всего лишь идею подкинул. Пусть дальше подумает ;)