|
|
|
| раньше обычно выводил полосатую таблицу по строкам примерно таким скриптом
<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 и наоборот ) в итоге шапка таблицы вывелась нормально,а все значения пошли ниже,т.е. нет перехода в следующий столбец. нид хелп ! ) | |
|
|
|
|
|
|
|
для: untoshka
(10.07.2010 в 08:34)
| | mysql_fetch_assoc вмето mysql_fetch_array.
Вы хотите что сделать "полосатыми": колонки? | |
|
|
|
|
|
|
|
для: sim5
(10.07.2010 в 09:07)
| | да,желательно. т.е. все оставить как есть ,только изменить на assoc ? | |
|
|
|
|
|
|
|
для: 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 & 1 ? '#ffffff' : '#b0c4de'; //получаем цвет столбца
echo '<td bgcolor="'.$cl.'">'.$row[$i].'</td>'; //вывод значения поля в столбец
}
echo '</tr>';
}
echo '</table>';
|
| |
|
|
|
|
|
|
|
для: sim5
(10.07.2010 в 10:01)
| | задача не в том,чтобы были полосатые столбцы,а чтобы инфа выводилась по столбцам,т.е.
Имя Иван Петр
Фамилия Иванов Петров
Отчество Иванович Петрович
проблема в том,что после вывода шапики не знаю как снова перейти на 1ю строчку 2го столбца ипродолжить вывод инфы | |
|
|
|
|
|
|
|
для: untoshka
(10.07.2010 в 10:35)
| | Чтобы "инфа по столбцам", то просто помещайте каждое поле в ячейку <td></td> в одном цикле while. При этом шапка таблицы выводится вне цикла. Какие тут проблемы тогда, и при чем тут деление по модую? | |
|
|
|
|
|
|
|
для: sim5
(10.07.2010 в 10:44)
| | пробовал,не переходит в следующий столбец,после шапки все идет вниз. | |
|
|
|
|
|
|
|
для: 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 & 1 ? "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]. | |
|
|
|