Выборка из базы и красивое оформление.

Perlik

Guest
Выборка из базы и красивое оформление.

Здраствуйте.
Меня интеересует такая вот задача.

Я выбираю из базы инфу:
PHP:
$query = "select * from some_table ORDER by id asc";
$result=mysql_query($query);
while($row=mysql_fetch_array($result)) {
echo $row['some_row'];
};
А как мне ее красиво разметить типа:
PHP:
<table>
  <tr>
    <td>
      Какой-то текст базы из одной записи
    </td>
    <td>
      Какой-то текст базы из следующей записи
    </td>
  </tr>
  <tr>
    <td>
      Какой-то текст базы из N записи
    </td>
    <td>
      Какой-то текст базы из N+1 записи
    </td>
  </tr>
</table>
Уже второй день думаю, но никак не могу понять, как это зделать?
 

WeirD

Новичок
хм... А красиво набрать echo "<td>" . $row['some_row'] . "</td>"; и посмотреть в браузере результат в голову не приходит???
 

Perlik

Guest
Так нет же, мне надо что бы каждая вторая принмала вид
echo $row['some_row']."</tr><tr>";
 

_RVK_

Новичок
Perlik
Ты должен знать что в PHP возможно делпть так:
PHP:
<?php
while($row=mysql_fetch_array($result)) { 
?>
<b>Тут можно HTML.</b>
<?php print $row['some_row']; ?>
<i>Тут опять HTML</i>
<?php
}
?>
 

_RVK_

Новичок
Perlik
Тебе нужно выводить в 2 колонки? Поищи по форуму. Тема обсуждалась сотни раз.
 

Resurs

Новичок
PHP:
<?
$query = "select * from some_table ORDER by id asc";   $result=mysql_query($query);  
?>
<table>
<? 
for($i=0; $i<mysql_num_rows/2; $i++)
{
   echo"<tr>";
   for ($j=0;$j<2; $j++)
   {
      $row=mysql_fetch_array($result);
     echo "<td>".$row['some_row']."</td>";
   }
    echo"</tr>";
}
?>
</table>
 

Perlik

Guest
Вы опять меня не поняли...
если я пропишу
PHP:
<table><tr>
<?
echo "<td>" . $row['some_row'] . "</td>";
?>
</tr></table>
То сообщения будут выстраиваться в один ряд таблицы.

А мне надо, чтобы сообщения выстраивались по 2 штуки в ряд, и вниз...

-~{}~ 13.10.04 16:04:

пока всё написал, мне уже ответили...
Спасибо
 

_RVK_

Новичок
Resurs
Кто тебя просил? Ты думаешь что твой код верх совершенства?
 

Фанат

oncle terrible
Команда форума
добавил бы уж ceil для получения числа строк и проверку на пустой результат
 

_RVK_

Новичок
Такой код короче, быстрее и гораздо читабельнее.
PHP:
<table> 
<tr>
<? 
$i=0;
while ($row=mysql_fetch_array($result))
{ 
     if ($i==2)   { 
         echo '</tr><tr>'; 
         $i=0;
     }

     $i++;
     echo '<td>'.$row['some_row'].'</td>'; 
} 
?> 
</tr>
</table>
 

Фанат

oncle terrible
Команда форума
ну, начет короче я бы не сказал
и он тоже не обрабатывает пустую ячейку
а так же еще и производит невалидный хтмл
 

Perlik

Guest
Спасибо за советы...
Работают оба кода...

И, как я понял, в цикле while всегда используется переменная $i, этого я не знал...
 

Фанат

oncle terrible
Команда форума
нет, ты неправильно понял.
и это самое ужасное.

тебе дают готовый код, ты его радостно себе вставляешь, но при этом имеешь просто чудовищное представление о том, как оно работает
 

_RVK_

Новичок
И, как я понял, в цикле while всегда используется переменная $i, этого я не знал
Не всегда. Попробуй разобраться в коде. Для чего переменная, для чего условие. Пойми, такие простые алгоритмы стыдно копировать. Будешь потом за каждой мелочью на форум бегать.
 

Perlik

Guest
Да, точно... я уже разобрался... %)
И как это я сам не догадался..
тут же $i++ стоит...
позор мне!
 

_RVK_

Новичок
а так же еще и производит невалидный хтмл
Ну и что? Браузеры это прекрасно понимают, все. Но доработать несложно.
Зато здесь меньше на 1 цикл, на 1 переменную, на одно echo и на 1 вызов функции (которая, кстати, вызывается несколько раз, зачем-то). Но нет придела совершенству...
 
Сверху