Хотелосьбы чтобы выдавал в определённое (сами задаём) кол-во столбиков, деля категории (их около 300)
равномерно между ними.
$sql = "select * from categories order by category";
$result = mysql_query($sql ,$db);
if ($myrow = mysql_fetch_array($result)) {
do {
$cat = $myrow["categoryid"];
$sql2 = "select count(wallpaperid) from wallpaper where categoryid = $cat and status = 'L'";
$result2 = mysql_query($sql2 ,$db);
$row = mysql_fetch_row($result2);
$wallpapercount = $row[0];
printf("%s (%s)", $myrow["categoryid"], $myrow["category"], $wallpapercount);
} while ($myrow = mysql_fetch_array($result));
}
/?>
Промогите пожалуйста.
Спустя 4 часа, 25 минут, 9 секунд (29.07.2006 - 05:50) Timok написал(а):
1)не <php, а <b><?php</b> и не /?>, а <b>?></b><br>2) ? зачем дважды проверять <!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->$myrow = mysql_fetch_array($result)<!--QuoteEnd--></div><!--QuoteEEnd--><br>сначала в if, потом в while?<br>3)printf некорректный ($wallpapercount там оказывается лишним). Да ни к чему здесь printf. Юзай print или echo<br>
по сабжу не понял, что мешает?
print $myrow['categoryid'].'('.$myrow['category'].')'.$wallpapercount
по сабжу не понял, что мешает?
<table> <tr> <td>Cat1 Cat2 Cat3</td> <td>Cat4 Cat5 Cat6</td> <td>Cat7 Cat8 Cat9</td> </tr> </table>
Спустя 7 часов, 37 минут, 12 секунд (29.07.2006 - 13:27) realcrash написал(а):
Нужно чтобы скрипт автоматически раскладывал категории по определённому количеству столбцов.
Спустя 2 часа, 29 минут, 37 секунд (29.07.2006 - 15:57) LiZ@RD написал(а):
<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->2) ? зачем дважды проверять<br><br> $myrow = mysql_fetch_array($result)<!--QuoteEnd--></div><!--QuoteEEnd--><br>1й раз для инициализации цикла, т.к. он с пост условием (а вот зачем с пост - х3 :) ), потом в цикле для того, что бы получить следущую строку запроса... если я вру - поправьте :)<br><br>Если я правильно понял, вот решение:<br>
Может что не правильно, я не проверял %) Если что - пиши ;-)
<?php $sql = 'SELECT * FROM `categories` ORDER BY `category`;'; $result = mysql_query($sql ,$db); $print_rows = 5; // число столбцов, как ты его собираешься получать - я не знаю $num_rows = mysql_num_rows($result); // количество строк в результате $num_str = ceil(($num_rows / $print_rows)); // количество строк в столбце (округляем в большую сторону) $echo = '<pre><table><tr>'; for($i = 0; $i < $print_rows; $i++) { $echo .= '<td>'; for($j = 0; $j < $num_str; $j++) { if(!($myrow = mysql_fetch_array($result)) { $echo .= ' '; break; } $sql2 = 'SELECT COUNT(`wallpaperid`) FROM `wallpaper` WHERE `categoryid` = ' . $cat . ' AND `status` = 'L ''; $result2 = mysql_query($sql2 ,$db); $row = mysql_fetch_row($result2); $wallpapercount = $row[0]; // не знаю что ты хотел с этим сделать ;-) $echo .= $myrow['categoryid'] . '(' . $myrow['category'] . ') '; } $echo .= '</td>'; }; $echo .= '</tr></table></pre>'; echo $echo; ?>
Может что не правильно, я не проверял %) Если что - пиши ;-)
Спустя 26 минут, 54 секунды (29.07.2006 - 16:24) realcrash написал(а):
<!--QuoteBegin-LiZ@RD+--><div class='quotetop'>QUOTE(LiZ@RD)</div><div class='quotemain'><!--QuoteEBegin--><!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->2) ? зачем дважды проверять<br><br> $myrow = mysql_fetch_array($result)<!--QuoteEnd--></div><!--QuoteEEnd--><br>1й раз для инициализации цикла, т.к. он с пост условием (а вот зачем с пост - х3 :) ), потом в цикле для того, что бы получить следущую строку запроса... если я вру - поправьте :)<br><br>Если я правильно понял, вот решение:<br>
Может что не правильно, я не проверял %) Если что - пиши ;-)
<?php $sql = 'SELECT * FROM `categories` ORDER BY `category`;'; $result = mysql_query($sql ,$db); $print_rows = 5; // число столбцов, как ты его собираешься получать - я не знаю $num_rows = mysql_num_rows($result); // количество строк в результате $num_str = ceil(($num_rows / $print_rows)); // количество строк в столбце (округляем в большую сторону) $echo = '<table>'; for($i = 0; $i < $print_rows; $i++) { $echo .= '<tr>'; for($j = 0; $j < $num_str; $j++) { if(!($myrow = mysql_fetch_array($result)) { $echo .= '<td> </td>'; break; } $sql2 = 'SELECT COUNT(`wallpaperid`) FROM `wallpaper` WHERE `categoryid` = ' . $cat . ' AND `status` = 'L ''; $result2 = mysql_query($sql2 ,$db); $row = mysql_fetch_row($result2); $wallpapercount = $row[0]; // не знаю что ты хотел с этим сделать ;-) $echo .= '<td>' . $myrow['categoryid'] . '(' . $myrow['category'] . ')</td>'; } $echo .= '</tr>'; }; $echo .= '</table>'; echo $echo; ?>
Может что не правильно, я не проверял %) Если что - пиши ;-)
Parse error: parse error, unexpected '{' in x:home est1.ruwww header.php on line 22