|
|
|
| Чего-то не выходит сделать такуб весчь:(
Результат запроса MySQL возвращает ассоциативный массив с данными. В данном случае мне нужны только значения.
Нужно в зависимости от количества значений массива вывести таблицу, да так чтобы все строки были заполнены, чтобы не было пустых ячеек..
Можно конечно через if, и перебрать все возможные варианты, но это варварство, и рука не поднимается. Помогите хоть с алгоритмом...
Заранее спасибо. | |
|
|
|
|
|
|
|
для: kukuikar
(02.03.2007 в 01:35)
| | Не очень понял, но если как дусаю, то так:
//запрос вернул результаты
$rez=mysql_query("SELECT * FROM ....");
print "<table width=100%>";
while($row=mysql_fetch_object($rez))
{
print "<tr>\r\n";
foreach($row as $key=>$val){
print "<td>" . $val . "</td>";
}
print "</tr>\r\n";
}
mysql_free_result($rez);
print "</table>";
|
| |
|
|
|
|
|
|
|
для: XPraptor
(02.03.2007 в 03:55)
| | Эта штука запишет таблицу с количесвтом ячеек равным количеству строк, т.е. в 1 строке одна ячейка. А мне надо чтобы в зависимости от общего количества элементов в массиве-результате функция выводила таблицу... там 3х4 или 4х2... | |
|
|
|
|
|
|
|
для: kukuikar
(02.03.2007 в 12:31)
| | а что именно надо выводить в ячейках.
сам вывод таблицы можно организовать так
$a=mysql_query("SELECT * FROM....");
$num=mysqk_num_rows($a);
echo "<table>";
for ($i=1; i<=$num; $i++){
echo "<tr><td>"......
и в таком духе выводить | |
|
|
|
|
|
|
|
для: kukuikar
(02.03.2007 в 01:35)
| | Не очень понятно, что значит, чтобы не было пустых ячеек - приведите пример. | |
|
|
|
|
|
|
|
для: cheops
(02.03.2007 в 12:46)
| |
$cell_count = 4;//количество ячеек в одном ряду...
$result = mysql_query("SELECT * FROM ....");
echo "<table width=100%>";
echo "<tr>";
for{$i = 0; $i < mysql_mum_rows($result);$i++)
{
$n = $i + 1;
$row = mysql_fetch_array($result);
echo "<td>".$row["some_fiield_name"]."</td>";
if (ceil($cell_count%$n) == 0)
echo "</tr><tr>";
}
echo "</table>";
|
Так вот, если mysql_mum_rows($result) веонул 7 строк, а $cell_count = 3, то последняя строка таблицы будет содержать 1 ячейку и будет она слева.... Это во первых некрасиво, во вторых валидаторы матерятся. Немогу сделать так чтобы первая строка таблицы была из 1 ячейки, т.е. при выводе таблицы скрипт учитывал бы общее количечтво ячеек... | |
|
|
|
|
|
|
|
для: kukuikar
(02.03.2007 в 16:20)
| | А вы вычисляйте количество строк в таблице и формируйте таблицу примерно так
<?php
// Количество строк таблицы
$total = (int)(mysql_num_rows($tbl)/$row_count);
if(mysql_num_rows($tbl)%$row_count) $total++;
// Выводим HTML-таблицу
echo "<table border=1 cellpadding=4>";
for($i = 0; $i < $total; $i++)
{
// Выводим ряд
echo "<tr>";
for($j = 0; $j < $row_count; $j++)
{
// Выводим ячейку
echo "<td>".@mysql_result($tbl, $j + $i*$total)." </td>";
}
echo "</tr>";
}
echo "</table>";
?>
|
PS Если столбцов много, то скрипт следует переисать без использования mysql_result(). $tbl - здесь дескриптор результирующей таблицы, которую возвращает mysql_query(). | |
|
|
|