|
|
|
| Добрый день
Столкнулся с проблемой. Два цикла for$i и for$j. j вложен в i.
Проблема в том, что for$j выводит лишь одну строчку, оставляя нужное количество пустых строк, без значений. Строки извлекаются из базы данных. Использую Pear DB.
Заранее, спасибо!
Для наглядности, привожу код:
include_once ( "dblib.php" );
$db = get_db( );
$query = "Select * from category";
$result = $db->query($query);
$num_results = $result->numRows();
for ($i=0; $i < $num_results; $i++)
{
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
echo '<b>'.$row['category'].'</b><br><br>';
$result_bus = $db->query("Select * from buscat where category=?", array ($row['idcategory']));
$row_bus = $result_bus->fetchRow(DB_FETCHMODE_ASSOC);
$result_bus_cat = $db->query("Select * from business where idbusiness=?", array ($row_bus['business']));
$num_results_bus = $result_bus->numRows();
$row_bus_cat = $result_bus_cat->fetchRow(DB_FETCHMODE_ASSOC);
for ($j=0; $j < $num_results_bus; $j++)
{
echo $row_bus_cat['business'].'<br>';
}
echo '<br><br>';
}
|
| |
|
|
|
|
|
|
|
для: Admexture
(03.04.2010 в 15:04)
| | [$j] или [$i][$j] где? ни одного похожего места не нашел. | |
|
|
|
|
|
|
|
для: Рома
(03.04.2010 в 15:28)
| | Эмм, может я не так сказал :)
Структура:
for ($i=0; $i < ... ; $i++)
{
for($j=0; $j<.....; $j++)
{
//выводит только первую строчку из базы, остальные пустые. но количество строчек нужное.
}
}
|
цикл for ($i=0; $i < ... ; $i++) все выводит хорошо, в отличии от for($j=0; $j<.....; $j++)
=) | |
|
|
|
|
|
|
|
для: Admexture
(03.04.2010 в 15:04)
| | А где сама функция?
numRows()
Покажи её народу.
Быстрей всего в ней ошибка. А другого быть не может. | |
|
|
|
|
|
|
|
для: Lao
(03.04.2010 в 15:41)
| | Эмм, она уже в DB идет =) ее не трогал, честно :D | |
|
|
|
|
|
|
|
для: Lao
(03.04.2010 в 15:41)
| | Да и потом, она же нормально работает для цикла $i =( | |
|
|
|
|
|
|
|
для: ADmexture
(03.04.2010 в 15:44)
| | Тогда... смените переменную :) Пробывали? | |
|
|
|
|
|
|
|
для: Lao
(03.04.2010 в 15:47)
| | А какой переменной идет речь? :D | |
|
|
|
|
|
|
|
для: Admexture
(03.04.2010 в 15:04)
| | Судим логически.
$num_results_bus = $result_bus->numRows();
$row_bus_cat = $result_bus_cat->fetchRow(DB_FETCHMODE_ASSOC);
for ($j=0; $j < $num_results_bus; $j++)
{
echo $row_bus_cat['business'].'<br>';
}
|
Если функция numRows() - работает коректно. Тоесть
echo($result_bus->numRows())
|
Посмотрите. А потом... Гланем :D | |
|
|
|
|
|
|
|
для: Lao
(03.04.2010 в 15:52)
| | Выводит число соответствующее кол. строк. Все с ней нормально) я ж писал, строчки после первой пустые)))) | |
|
|
|
|
|
|
|
для: Admexture
(03.04.2010 в 15:04)
| | Смените подход:
while($rows=mysql_fetch_object($result_bus_cat)) {
echo( $rows-> // что вы там хотите? ...
};
|
| |
|
|
|
|
|
|
|
для: Lao
(03.04.2010 в 16:06)
| | Ладно, спасибо, будем пробовать ;)) :D | |
|
|
|
|
|
|
|
для: ADmexture
(03.04.2010 в 16:18)
| | И получится. Упехов!!! :)))) | |
|
|
|