Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вывести таблицу в html по столбцам
 
 автор: untoshka   (10.07.2010 в 08:34)   письмо автору
 
 

раньше обычно выводил полосатую таблицу по строкам примерно таким скриптом
<table align='center' cellpadding='0' cellspacing='0' border='0' cols='3' width='250'><CAPTION align='center' > Список $gen</CAPTION>";
$i=0; //Количество строк таблицы
echo "<tr><td ALIGN=CENTER class='".z3."'>"."id"."</td>
<td ALIGN=CENTER class='z3'>"."Исполнитель"."</td>

<td ALIGN=CENTER class='".z3."'>"."Альбом"."</td>
<td ALIGN=CENTER class='".z3."'>"."Количество треков"."</td>
<td ALIGN=CENTER class='".z3."'>"."Жанр"."</td>
<td ALIGN=CENTER class='".z3."'>"."Год"."</td>
<td ALIGN=CENTER class='".z3."'>"."Лейбл"."</td>
<td ALIGN=CENTER class='".z3."'>"."Цена"."</td>";
while ($row=mysql_fetch_array($query))
{$i++;
echo "<tr><td ALIGN=CENTER class='".($i%2==0?"z2":"z1")."'>".$row[id]."</td>
<td ALIGN=CENTER class='".($i%2==0?"z2":"z1")."'>".$row[exec]."</td>
<td ALIGN=CENTER class='".($i%2==0?"z2":"z1")."'>".$row[album]."</td>
<td ALIGN=CENTER class='".($i%2==0?"z2":"z1")."'>".$row[tracks]."</td>
<td ALIGN=CENTER class='".($i%2==0?"z2":"z1")."'>".$row[genre]."</td>
<td ALIGN=CENTER class='".($i%2==0?"z2":"z1")."'>".$row[year]."</td>
<td ALIGN=CENTER class='".($i%2==0?"z2":"z1")."'>".$row[label]."</td>
<td ALIGN=CENTER class='".($i%2==0?"z2":"z1")."'>".$row[cost]."</td>";


}
попробывал заменть все tr на td и наоборот ) в итоге шапка таблицы вывелась нормально,а все значения пошли ниже,т.е. нет перехода в следующий столбец. нид хелп ! )

  Ответить  
 
 автор: sim5   (10.07.2010 в 09:07)   письмо автору
 
   для: untoshka   (10.07.2010 в 08:34)
 

mysql_fetch_assoc вмето mysql_fetch_array.
Вы хотите что сделать "полосатыми": колонки?

  Ответить  
 
 автор: untoshka   (10.07.2010 в 09:38)   письмо автору
 
   для: sim5   (10.07.2010 в 09:07)
 

да,желательно. т.е. все оставить как есть ,только изменить на assoc ?

  Ответить  
 
 автор: sim5   (10.07.2010 в 10:01)   письмо автору
 
   для: untoshka   (10.07.2010 в 09:38)
 

Что значит "желательно"?
Если вы работаете с ассоциативным массивом, то незачем возвращать в наборе и ассоциативный массив и числовой, что делает mysql_fetch_array.
Нет, от того, что вы измените array на assoc столбики "зеброй" у вас не получатся, если вам именно это нужно.
Если это нужно, то вам нужно раскладывать в цикле как строки ресурса (это строки таблицы вашей будут), так и поля полученные (это колонки таблицы будут), проверяя итерацию второго цикла на четность.
Для наглядности, например:
<?
//нам надо упорядочить поля для будущего обращения к ним
//поэтому прописываем их порядок в запросе
$q mysql_query("SELECT field1, field2, field3, field4, field5 FROM table");
//число полей в запросе
$n mysql_num_fields($q);
//выводим таблицу
echo '<table>';
while (
$row mysql_fetch_row($q)) { //цикл вывода строк таблицы
 
echo '<tr>';
 for(
$i=0$i<$n$i++) { //цикл вывода столбцов таблицы
   
$cl $i '#ffffff' '#b0c4de'//получаем цвет столбца
   
echo '<td bgcolor="'.$cl.'">'.$row[$i].'</td>'//вывод значения поля в столбец
 
}
 echo 
'</tr>';
}
echo 
'</table>';

  Ответить  
 
 автор: untoshka   (10.07.2010 в 10:35)   письмо автору
 
   для: sim5   (10.07.2010 в 10:01)
 

задача не в том,чтобы были полосатые столбцы,а чтобы инфа выводилась по столбцам,т.е.
Имя Иван Петр
Фамилия Иванов Петров
Отчество Иванович Петрович

проблема в том,что после вывода шапики не знаю как снова перейти на 1ю строчку 2го столбца ипродолжить вывод инфы

  Ответить  
 
 автор: sim5   (10.07.2010 в 10:44)   письмо автору
 
   для: untoshka   (10.07.2010 в 10:35)
 

Чтобы "инфа по столбцам", то просто помещайте каждое поле в ячейку <td></td> в одном цикле while. При этом шапка таблицы выводится вне цикла. Какие тут проблемы тогда, и при чем тут деление по модую?

  Ответить  
 
 автор: untoshka   (10.07.2010 в 11:11)   письмо автору
 
   для: sim5   (10.07.2010 в 10:44)
 

пробовал,не переходит в следующий столбец,после шапки все идет вниз.

  Ответить  
 
 автор: sim5   (10.07.2010 в 11:25)   письмо автору
 
   для: untoshka   (10.07.2010 в 11:11)
 

Во-первых, если вами представленный код именно так и есть на странице, то это ужас.
Во-вторых количество строк в таблице зачем? Число строк полученных ресурсом из таблицы в базе, это есть число строк для будующей таблицы.
В третьих, зачем в ячейках ($i%2==0?"z2":"z1")?
В четвертых, строки выводящие элементы TD таблицы написаны с ошибками. У вас, что подсветки кода нет?
И пятое - стиль строк таблицы нужно прописывать не столбцам, а элементу TR, если вы пытаетесь сделать "зебру" по горизонтали.
cols='3' в теге TABLE, это что такое?
<?
echo "<table class=classname><CAPTION> Список $gen</CAPTION>
      <tr class='z3'>
       <td>id</td>
       <td>Исполнитель</td>
       <td>Альбом</td>
       <td>Количество треков</td>
       <td>Жанр</td>
       <td>Год</td>
       <td>Лейбл</td>
       <td>Цена</td>
      </tr>"
//вот здесь не закрыта строка таблицы 
$i=0//счетчик итераций цикла
while ($row=mysql_fetch_assoc($query)) {
 echo 
"<tr class='".($i "z2" "z1").">
        <td>"
.$row['id']."</td>
        <td>"
.$row['exec']."</td>
        <td>"
.$row['album']."</td>
        <td>"
.$row['tracks']."</td>
        <td>"
.$row['genre']."</td>
        <td>"
.$row['year']."</td>
        <td>"
.$row['label']."</td>
        <td>"
.$row['cost']."</td>
       </tr>"
//и здесь у вас не закрыта строка таблицы
 
$i++;
}

ALIGN=CENTER и прочее для ячеек таблицы вынести в CSS для таблицы указанного класса. В общем не пишите все именно в таблицу, это сократит размер вашей страницы.
Почитайте в мануале, почему, например, $row['id'], а не $row[id].

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования