Нужно разбить sql данные в три столбца

seosniks
На сайте с 13.08.2007
Offline
389
2422

Добрый день.

Помогите пожалуйста разбить выдодимые значения в 3 столбца

есть код

$inq = $db->query("SELECT *    FROM   cat   WHERE   id    ORDER BY id DeSC");

if($db->numrows($inq)>0){
while($row = $db->fetchrow($inq)){
$catid .= $row["catcpu"];
}}
$catid ; // Эта переменная имеет все значения из поля id

как мне сделать чтобы все значения разбивались как здесь svadiana.ru

в 3-4 колонки.

тоесть типа как ниже, пример ниже не рабочий.

 echo ' <table width="100%" border="0" cellpadding="0" cellspacing="0"  align="center">';


$j=0;
if(count($row["catid"]))
foreach($data as $key => $value)
{
if(($j%3)==0) echo "<tr>";

echo "<td>";

echo "</td>";

$j++; if(($j%3)==0) echo "</tr>";
}

if($j%3)
{
for($n=3;$n>($j%3);$n--)
echo"<td width=33%>".$cpu."</td>";
echo"</tr>";
}

echo "</table>";
T
На сайте с 20.03.2007
Offline
67
Toy
#1

<?php

echo '<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center"><tr><td>';
$j=0;
if(count($row["catid"])){
foreach($data as $key => $value){
if(is_integer($j/3)){echo '</td><td>';}
echo $cpu."<br>";
$j++;
}
}
echo "</td></tr></table>";
?>

Суть передал, писал в редакторе форума, поэтому за работоспособность не ручаюсь.

[Удален]
#2

Toy, какой некрасивый метод :)

можно красивее сделать в десятки раз. как? :) читайте мануалы :)

seosniks
На сайте с 13.08.2007
Offline
389
#3
Toy:
<?php

echo '<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center"><tr><td>';
$j=0;
if(count($row["catid"])){
foreach($data as $key => $value){
if(is_integer($j/3)){echo '</td><td>';}
echo $cpu."<br>";
$j++;
}
}
echo "</td></tr></table>";
?>


Суть передал, писал в редакторе форума, поэтому за работоспособность не ручаюсь.

Toy Спасибо но что то не выходит.

Я так пробовал уже и как только не пробовал.

в общем ["catcpu"] имеет значения в базе например. красный ,синий,черный,белый,зеленый

$catid .= $row["catcpu"];

}}

echo $catid; // эта переменная отдает красный ,синий,черный,белый,зеленый

так вот теперь надо взять переменную $catid

и разбить на массив затем разделить по 3.

или же как то по другому, в общем у меня пока мозги не варят как это сделать.

Я конечно могу тупо все сделать, но это CMS и не хотелось бы так делать.

p.s. count($row["catid"] ничего не возвращает. если он за пределами }}

если в нутри скобок то он отдлает 1 1111111 единицу.

seosniks добавил 17.01.2010 в 19:03

Вобщем сдела так.

 for ($i = 1; $i <= 12; $i++) {

$row = mysql_fetch_array($result);
echo "<td>".$row["catname"]."</td>";
if ($i%3==0) echo "</tr><tr>";
};
echo "</tr></table>";

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий