Вывод данных из базы

Фанат

oncle terrible
Команда форума
но помощь предлагаю неадекватную.
я правильно понимаю, что решение с массивами тебя не устроило?
в силу того, что до тебя недощёл смысл моих неадекватных объяснений?

Скажи, а такая мысль, как самостоятельно попробовать, тебе не приходила в голову?
вдруг все те ужасные препятствия, которые ты видишь на пути реализации этого черезвычайно сложного решщения - исключительно плоды твоего богатого воображения?
 

Rottencoder

Новичок
Нет, пока просто теория этого решения не дает мне взятся за практическую реализацию. Как это вижу я:

1. Создается цикл для заброса данных из query в двухмерный массив (таблица shop).

2. Так как кол-во записей в таблицах может быть разным, то соответственно создаем отдельный цикл для второй таблицы. (далее если все будет тип-топ можно оптимизировать и обойтись одним циклом)

3. Третий цикл определяет переменные (Каким образом ?!!) и присваивает им значения из массивов, далее идет сброс данных в шаблон.


Пункт 3 как-то никак не хочет выйти из псевдо-кода в php-код.
:(
 

Фанат

oncle terrible
Команда форума
а ты делай постепенно.
сначала просто сделай цикл
потом попробуй в нём обращаться к массивам.
а там, глядишь, и переменные свои из массивов достанешь.

ну давай, по ложечке
за маму: ты знаешь, какой оператор организует циклы?
 

Rottencoder

Новичок
Окей может по ложечке получится.

Циклами рулят: while,for,foreach.

Вроде всё.
 

Фанат

oncle terrible
Команда форума
отлично
тебе подойдёт, я думаю, for
можешь ли ты сделать цикл for с количеством итераций, равныи количеству элементов бОльшего массива?
 

Rottencoder

Новичок
Думаю так:
PHP:
$count_tabl1=mysql_num_rows($result_tabl1);
$count_tabl2=mysql_num_rows($result_tabl2);

if($count_tabl1>$count_tabl2 || $count_tabl1==$count_tabl2)
  $bigger_count=$count_tabl1;
else
 $bigger_count=$count_tabl2;

for($i=0;$i<=$bigger_count;$i++){

}
 

Фанат

oncle terrible
Команда форума
ну, если учесть, что нум ровс нам тут нафиг не нужен, а достаточно count, то всё верно.

значит, в цикле мы имеем меняющуюся переменную $i
можешь ли ты с её помощью образаться к элементам массивов, составленных заранее?

кстати. до сих пор ты всё сам умеешь.
непонятно только - почему не делаешь
 

Rottencoder

Новичок
До сих пор, для меня все более менее просто. А вот далее.

Теперь должен идти последний цикл (массивы подготовлены и шаблон ждет данных).
for($i=0;$i<=$bigger_count;$i++){

//Так как массив двухмерный, значит нужен внутренний for
//Вот тут и начинается загвоздка с разными таблицами (то бишь с разными массивами) у которых может быть разное кол-во полей. Или опять искать наибольшее ?
Но тогда наверное цикл будет работать неправильно.....
}
 

Фанат

oncle terrible
Команда форума
какоё ещё внутренний фор?
не умеешь работать с двумерным массивом - работай с двумя одномерными

ты вообще можешь создать массив по результатам запроса?
оператор добавления в массив знаешь?
в цикл обработки запроса его вставить можешь?
 

Фанат

oncle terrible
Команда форума
не понял.
и как это должно работать?
что такое $query_result?

а про оператор [] ты не слышал?
 

Rottencoder

Новичок
Хе-хе.......Вроде получилось (коряво правда):

PHP:
$shop_table =mysql_query("SELECT * FROM bb1_shop");
$inventory_table =mysql_query("SELECT * FROM bb1_inventory WHERE username='$wbbuserdata[username]'");

eval("\$tpl->output(\"".$tpl->get("game_shop")."\");");

$count_shop_table=mysql_num_rows($shop_table);
$count_inventory_table=mysql_num_rows($inventory_table);

if($count_shop_table>$count_inventory_table || $count_shop_table==$count_inventory_table)
  $bigger_count=$count_shop_table;
else
$bigger_count=$count_inventory_table; 


$i=0;
while($product = $db->fetch_array($shop_table)){
$pro_name_array[$i]=$product['product_name'];
$pro_price_array[$i]=$product['price'];
$i++;
}

$j=0;
while($product2 = $db->fetch_array($inventory_table)){
$pro_name_user_array[$j]=$product2['user_product'];
$pro_price_user_array[$j]=$product2['user_price'];
$j++;
}


for($i=0;$i<=$bigger_count;$i++)
	{	
$pro_name=$pro_name_array[$i]; 
$pro_price=$pro_price_array[$i];
$pro_user_name=$pro_name_user_array[$i];
$pro_user_price=$pro_price_user_array[$i];
eval("\$tpl->output(\"".$tpl->get("game_shop_bit")."\");");
}
 

eval("\$tpl->output(\"".$tpl->get("game_footer")."\");");
}
Фанат, спасибо........... ;)
 
Сверху