вывод в 2 колонки

igortik

Новичок
вывод в 2 колонки

Подскажите, как вывести информацию из базы в 2 колонки, к примеру, пользуясь циклом while.
т.е., есть таблица:

id | name |
1 | Имя 1 |
2 | Имя 2 |
3 | Имя 3 |

Необходимо вывести данные из базы таким образом, чтобы вышло следующее:

<table>
<tr>
<td>Имя 1</td><td>Имя 2</td>
</tr>
<tr>
<td>Имя 3</td><td></td>
</tr>

</table>

Заранее спасибо!
 

Krishna

Продался Java
А как бы ты вывел в одну колонку?
Так же и в две, только за одну итерацию цикла вытаскивать из бд 2 ряда (2 раза по 1му) (таблицы БД) и писать в один ряд таблицы html
 

igortik

Новичок
Krishna

В одну колонку так:

PHP:
<table>
<?
while ($row = mysql_fetch_array($result))
{
$name = $row["name"];
printf("<tr><td>%s</td></tr>", $name);
}
?>
</table>
Как в 2 понять не могу.
Вашу идею понял, можно подсказку для цикла while ?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
igortik
идите, ка в поиск...
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
igortik
как ищем?

-~{}~ 30.10.07 01:48:

"колонки"
искать пробовали?
попробуйте.
Будете удивлены.

-~{}~ 30.10.07 01:48:

тема в 1-й десятке...
ну неужели так сложно?
 

Krishna

Продался Java
Ну, например if и break, хотя есть и более красивые решения.
Не стоит к любой проблеме искать готовые решения.
Иногда полезно подумать самому - быстрее выйдет :)

Например, вы понимаете смысл проверки условия while ($row = mysql_fetch_array($result)) ?

Если да, то что мешает его сменить на условие существования результата для двух последовательно извлеченных рядов, применив логическую операцию AND?
При этом само извлечение не обязательно засовывать
PHP:
while(сюда)
{
а можно сюда...
}
Хотя нужно вынести извлечение первых перед while + решить проблему когда доступен только 1ый результат из пары...
Банальная логика и никаких премудростей PHP. ...

З.Ы. Я это не как проверенное решение озвучиваю, а как вариант, который пришел в голову в 3 ночи ;)
Это отмазка на всякий случай ;)
 

igortik

Новичок
легко Вам...
к большому сожалению, Krishna, пока так ничего и не понял про вывод 2 полей.

Пытаюсь пока что так:

<table>
PHP:
<?
mysql_query("SET NAMES 'cp1251'");
$query = "SELECT name FROM $table ORDER BY id DESC";
mysql_query($query);
$numrows = mysql_num_rows($query);

for ($i=0; $i < $numrows; $i++)
{
echo
'
<tr>
<td>
$row = ["name"];
</td>

<td>
$row = ["name"];
</td>
</tr>
';
}
?>
</table>

Теперь надо решить проблему, как описать $row в данном случае :(

-~{}~ 30.10.07 03:03:

что-то я совсем запутался....
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Krishna
Может ненужно?
тема "колоночного" вывода пережована
стотыщмилионов ((с) Простоквашыно раз)
раз.

igortik
ф поиск!
 

igortik

Новичок
Mr_Max
При всем уважении, воспользовался поиском, видел схожие темы, но решения ДЛЯ СЕБЯ там не нешол!
 

Krishna

Продался Java
Mr_Max
Если я правильно понял, на какую тему ты ссылаешься (про 3 колонки), то там пример не рабочий - не все случаи обработаны.

Я ж не столько пишу решения, сколько пытаюсь человеку помочь самостоятельно решить проблему)

igortik

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

igortik

Новичок
Krishna
всегда так выводил из базы :(

-~{}~ 30.10.07 03:25:

да тему ту про 3 колонки void'а прочел, но ответ так и не нашол
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Krishna
я тим их с десяток нащитал на "верхних" страницах.
Дело Ваше.

igortik
Там ещё темы есть... если "покликать"...
идентичные 1 в 1 на 2, 3 колонки....
 

igortik

Новичок
Mr_Max
Можно прекратить направлять "на_поиск"?

Или форум существует только для тех, кто все знает?

Я не могу самостоятельно решить задачу, надеюсь, найдутся люди, кто подскажет.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
igortik
Нет. Без обид.
Вас ещё долго будут туда "посылать". Ибо ответов там очень много.

Я не могу самостоятельно решить задачу, надеюсь, найдутся люди, кто подскажет.
Позвольте Вас огорчить. В этом форуме готовых ответов "на людечке с голубой каемочкой" не дают. А, судя с Вашых предыдущих ответов самостоятельно решать задачу у Вас нет ни малейшего желания.

Поэтому я вижу 2 варианта:
1. Вы пользуетесь поиском и находите практически готовый ответ
2. Идёте в мануал и читаете про Арифметические операторы

И только после этого задаёте вопросы.
Договорились?
 

igortik

Новичок
Mr_Max
Без обид.

Я не просил готовое решение задачи, я всего лишь хотел, чтобы мне помогли опытные люди и не тыкали в поиск в каждом ответе с упоминанием, что там все есть.

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

Да, Вы мне ничего не должны, как и я Вам, но все же скажу спасибо за то, что хоть иногда помогаете и пишете по существу.

P.S. проблему решил. Разобрал готовый движок, который содержал то что нужно мне.

Всем спасибо :)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
А нужно было всего-навсего "Деление по модулю"
 

igortik

Новичок
Mr_Max
В моем случае - нет :(

У меня пока что в голове туго идет дело с циклами.
Мне сложно построить на данном этапе полную модель всего происходящего.

Вот готове решение в моем случае:

PHP:
<?

mysql_query("SET NAMES 'cp1251'");
$query = mysql_query("SELECT id,name,adress FROM $table WHERE region='$region' ORDER BY id DESC");
//определение структуры таблицы
$table_cols = 2; //задаем кол-во колонок в таблице
$mod = @mysql_num_rows($query)%$table_cols;//определяем остаток от деления кол-ва изображений на кол-во колонок
if($mod!=0)
{ $table_rows = (int)(@mysql_num_rows($query)/$table_cols); } //количество строк в таблице
else
{ $table_rows = (int)(@mysql_num_rows($query)/$table_cols)-1; } //количество строк в таблице
?>
<table width="800" border="1" cellspacing="5" cellpadding="0" align="center">
<?
for($tr=0; $tr<=$table_rows; $tr++)
{
?>
  <tr>
<?
  for($td=0; $td<=$table_cols-1; $td++)
  {
    $row = ($table_cols+$td)*($tr+1)-($td*$tr)-$table_cols;//номер строки из массива $galery_q
    
	$id = @mysql_result($query,$row,"id");
	$name = @mysql_result($query,$row,"name");
    $adress = @mysql_result($query,$row,"adress");

?>
    <td align=center valign="top" wight="<?=(int)(800/$table_cols)?>">
    <? if($id){?>
    <table width="400" border="0">
  <tr>
    <td>Отримувач:</td>
  </tr>
  <tr>
    <td><?= $name ?></td>
  </tr>
  <tr>
    <td>Адреса отримувача: </td>
  </tr>
  <tr>
    <td><?= $adress ?></td>
  </tr>
</table>
    <? }
    else
    {
?>
    <table width="100" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="100%"></td>
      </tr>
     </table>
<?
    }
?>
    </td>
<?
  }
?>
  </tr>
<?
}
?>
 

Krishna

Продался Java
Код отвратительный.
Не стоит брать примеры с такого движка.
 
Сверху