Вывести с 1 по 1

premiums

Guest
Вывести с 1 по 1

У меня в базе есть поля id, cat_id

мне надо вывести к примеру от id = 1 and cat_id = 1 до следующего cat_id =1 а id = 323 к примеру (ID может быть любой)


PHP:
if (isset($_GET['cat_id']) )
	{

	$result = mysql_query( "SELECT  * FROM of_products  WHERE  cat_id = '0'  ORDER BY id " , $dbi );


  	
   //тут форейч
   
   
   
 print "{$row['firma']}";
  
break;
}
Надо сделать форейч???? Но как...
 

premiums

Guest
Panchous

Все равно не могу понять как в моем примере сделать....
Я плохо понимаю foreach

Он должен шарить по масиву но как его остановить на следующей цифре 1 - break`om ?

Можете показать пример
 

premiums

Guest
все равно не фига ни понятно.

<?php
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
if ($val == 'stop') {
break; /* You could also write 'break 1;' here. */
}
echo "$val<br />\n";
}

/* Using the optional argument. */

$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5<br />\n";
break 1;
case 10:
echo "At 10; quitting<br />\n";
break 2;
default:
break;
}
}
?>


Что тут???? обычный switch

Он выведет что то типа one two three four
At 5 At 10; quitting
 

premiums

Guest
но тогда мне надо выводить 0,0,0,0,0,0,0,0 отсановить потом что дальше идет 1

Все равно не доходит а рабочий день кончается
 

premiums

Guest
$array какое значение должно быть, точнее откуда взять??
$array = array();


Как ни делаю он мне выводит одно значение а не все где ноль.
Короче я опять что то не дапонял



if (isset($_GET['cat_id']) )
{

$result = mysql_query( "SELECT * FROM of_products_bit WHERE cat_id = '0' " , $dbi );


while ( $row = mysql_fetch_array ( $result ) )

{

$array = array($cat_id);

foreach($array as $key=>$value){


echo $key."**".$value;

if($value == 1){

print $row['tovar']."<br>";

}

}



break;
}


}
 

tf

крылья рулят
я тут немного подумал. мож кон не туда
>>"SELECT * FROM of_products WHERE cat_id = '0' ORDER BY id "
>>мне надо вывести к примеру от id = 1 and cat_id = 1
а запрос действительно хоть один выдает row у которого cat_id = 1
premiums спокойствие только спокойствие все приходящее
может
$cat_id=(int)$_GET['cat_id'];
"SELECT * FROM of_products_bit WHERE cat_id = '$cat_id' "
 

realman

Новичок
а зачем вообще такая конструкция:

PHP:
$array = array($cat_id);
foreach($array as $key=>$value){
echo $key."**".$value;
if($value == 1){
print $row['tovar']."<br>";
}
, если в $array получается один элемент?
 

chisto_tolyan

Враг народа
автор вообще по-моему не понимает, что он делает...
мне надо вывести к примеру от id = 1 and cat_id = 1 до следующего cat_id =1 а id = 323 к примеру (ID может быть любой)
что значит от cat_id=1 до следующего cat_id=1?
 

premiums

Guest
chisto_tolyan

Я все понимаю

Есть поле id , cat_id, ........... tova,........
cat_id содержит значение один на id = 1 id = 385 и т.д. до 10000
То есть на где id = 385 , cat_id равняется одному и мне надо вевести
все что есть от id = 1 а cat_id = 1 до того момента где cat_id = опять 1
 

tf

крылья рулят
premiums
>>$cat_id содержит какоето_4 значение на каких-то id и id. где count(id)=10000
>> То есть на где id = какойто , $cat_id равняется какоето_4 и мне надо вевести
>>все что есть от какогото id а cat_id = какоето_4 до того момента где cat_id = опять какоето_4
тебе надо:?
сделать флаг $tyt
как он всетил cat_id=1 ;$tyt=true -> выводим значени
при след итрации $cat_id любой кроме 1 -> выводим значени
опять встетили $cat_id=1 ->$tyt=false -> не выводим значение
? так
 

premiums

Guest
Да)) Надо чтоб когда встречается еще раз cat_id = 1 скрипт останавливал вывод.

Весь ковардак из за того что мне дали 18 прайсов по 10000 строк и разных значений. Я перевел все в БД и мне для вывода нужен такой гемор.
 

tf

крылья рулят
premiums дальше сам надеюсь все сделаеш)
и убери WHERE cat_id = '0' ORDER BY id иначе он тебе никогда не выдаст ни одной записи с cat_id=1
 

premiums

Guest
ок спасибо буду пробовать

-~{}~ 24.11.05 11:38:

cat_id=1 ;$tyt=true ->

Только я не понял как и где использовать
 
Сверху