а я писала где проблема!!! что переменную не видет и цикл не работает!!! (Добавление)
diodida пишет:
Вам уже писали
Я не глупая! и эту ошибку вижу и не понимаю почему цикл не работает!
else {if ( $p == 0){$sqlquery=$param." ORDER BY ".$two;};
if ( $p != 0) {$sqlquery=" , ".$two;};
$p++; };
когда по двум параметрам сортируем
string(725) "select * from avtomobil as av INNER JOIN outlay ON av.ID_rasxod=outlay.ID_rasxod INNER JOIN power ON av.ID_moschnost=power.ID_moschno st INNER JOIN volume_motor ON av.ID_obem=volume_motor.ID_obem INNER JOIN transference ON av.ID_peredach=transference.ID_p eredach INNER JOIN baggage ON av.ID_bag=baggage.ID_bag INNER JOIN year_output ON av.ID_god=year_output.ID_god INNER JOIN road ON av.ID_road=road.ID_road INNER JOIN wheel_base ON av.ID_base=wheel_base.ID_base INNER JOIN width ON av.ID_width=width.ID_width INNER JOIN hight ON av.ID_hight=hight.ID_hight INNER JOIN length ON av.ID_length=length.ID_length INNER JOIN body ON av.ID_kyzov=body.ID_kyzov ORDER BY outlay.ras_za_gor ASC ORDER BY road.road DESC"
по одному
string(725) "select * from avtomobil as av INNER JOIN outlay ON av.ID_rasxod=outlay.ID_rasxod INNER JOIN power ON av.ID_moschnost=power.ID_moschno st INNER JOIN volume_motor ON av.ID_obem=volume_motor.ID_obem INNER JOIN transference ON av.ID_peredach=transference.ID_p eredach INNER JOIN baggage ON av.ID_bag=baggage.ID_bag INNER JOIN year_output ON av.ID_god=year_output.ID_god INNER JOIN road ON av.ID_road=road.ID_road INNER JOIN wheel_base ON av.ID_base=wheel_base.ID_base INNER JOIN width ON av.ID_width=width.ID_width INNER JOIN hight ON av.ID_hight=hight.ID_hight INNER JOIN length ON av.ID_length=length.ID_length INNER JOIN body ON av.ID_kyzov=body.ID_kyzov ORDER BY outlay.ras_za_gor ASC
и по одному работает нормально
напишите запрос который выводит в браузер var_dump
string(668) "select * from avtomobil as av INNER JOIN outlay ON av.ID_rasxod=outlay.ID_rasxod INNER JOIN power ON av.ID_moschnost=power.ID_moschno st INNER JOIN volume_motor ON av.ID_obem=volume_motor.ID_obem INNER JOIN transference ON av.ID_peredach=transference.ID_p eredach INNER JOIN baggage ON av.ID_bag=baggage.ID_bag INNER JOIN year_output ON av.ID_god=year_output.ID_god INNER JOIN road ON av.ID_road=road.ID_road INNER JOIN wheel_base ON av.ID_base=wheel_base.ID_base INNER JOIN width ON av.ID_width=width.ID_width INNER JOIN hight ON av.ID_hight=hight.ID_hight INNER JOIN length ON av.ID_length=length.ID_length INNER JOIN body ON av.ID_kyzov=body.ID_kyzov "
затем нажимаем
echo "<button name='two' value=' year_output.god_vipuska ASC'/>Самостоятельное ТО</button>";
добавляется order by и происходит сортировка если потом нажмем
echo "<button name='two' value=' outlay.ras_gor ASC'/>Авто для города</button>";
выдает к полученному orber dy и ругается на это
у нас приходит из списка параметры выбранные пользователем и ссылки выводятся с параметрами по которым модем сортировать, можно так выбрать , а можно сортировать выборку, и там проверка если сортируем то ORDER by добавляем и параметр, $p на 1 увеличивается но второе условие при повторной сортировке не работает... (Добавление)
OrmaJever пишет:
выведите перед mysql_query сам запрос
var_dump показывает сам запрос
после сортировки тоже самое! просто не видет условие
круто, order by должен писаться только один раз!)))
я это знаю... проблема в том что оно не выполняет условие но почему понять не могу, где параметр $p ставить!!! (Добавление)
diodida пишет:
условие но почему понять не могу, где параметр $p ставить!!!
ВОТ САМ КОД
if (is_null($param)) {
$sqlquery='select * from avtomobil as av
INNER JOIN outlay ON av.ID_rasxod=outlay.ID_rasxod
INNER JOIN power ON av.ID_moschnost=power.ID_moschno st
INNER JOIN volume_motor ON av.ID_obem=volume_motor.ID_obem
INNER JOIN transference ON av.ID_peredach=transference.ID_p eredach
INNER JOIN baggage ON av.ID_bag=baggage.ID_bag
INNER JOIN year_output ON av.ID_god=year_output.ID_god
INNER JOIN road ON av.ID_road=road.ID_road
INNER JOIN wheel_base ON av.ID_base=wheel_base.ID_base
INNER JOIN width ON av.ID_width=width.ID_width
INNER JOIN hight ON av.ID_hight=hight.ID_hight
INNER JOIN length ON av.ID_length=length.ID_length
INNER JOIN body ON av.ID_kyzov=body.ID_kyzov ';
include ("elements_not_null.php"); }
else { if ($p == 0) {$sqlquery=$param." ORDER BY ".$two;};
if ($p != 0) {$sqlquery=" , ".$two;};
$p++;
//echo $p;
};
$query = mysql_query($sqlquery, $mydate);
echo "<table WIDTH=100% border=0>";
//echo $sqlquery;
// наличие значений в выборке
$array = mysql_fetch_assoc($query);
echo mysql_error();
if($array) { $fields=21;
// сортировка по параметрам
echo "<tr><div align ='left'><b> СОРТИРОВКА ПО ПАРАМЕТРАМ: </b></div></tr>";
echo "<form name='number' form action = 'ssilka.php' target='left' >";
echo "<input type='hidden' name='param' value='$sqlquery','$p=0' />";
//год с and и без параметров и с ними
echo "<button name='two' value=' year_output.god_vipuska ASC'/>Самостоятельное ТО</button>";
//авто
echo "<button name='two' value=' volume_motor.obem_dvig DESC,power.moschnost_dvig DESC,width.width DESC,hight.hight DESC,length.length DESC, wheel_base.base DESC'/>Представительское авто</button>";
Вы можите просто показать ошибку которую вернула mysql_error() ?
1
select * from avtomobil as av INNER JOIN outlay ON av.ID_rasxod=outlay.ID_rasxod INNER JOIN power ON av.ID_moschnost=power.ID_moschno st INNER JOIN volume_motor ON av.ID_obem=volume_motor.ID_obem INNER JOIN transference ON av.ID_peredach=transference.ID_p eredach INNER JOIN baggage ON av.ID_bag=baggage.ID_bag INNER JOIN year_output ON av.ID_god=year_output.ID_god INNER JOIN road ON av.ID_road=road.ID_road INNER JOIN wheel_base ON av.ID_base=wheel_base.ID_base INNER JOIN width ON av.ID_width=width.ID_width INNER JOIN hight ON av.ID_hight=hight.ID_hight INNER JOIN length ON av.ID_length=length.ID_length INNER JOIN body ON av.ID_kyzov=body.ID_kyzov ORDER BY year_output.god_vipuska ASC ORDER BY outlay.ras_gor ASC
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in E:\Server\Apache2\htdocs\ssilka.php on line 30
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY outlay.ras_gor ASC' at line 13
написала я echo mysql_error() после и выдало ту ошибку которую я и так вижу... я не понимаю почему параметр не считает! Даже если так написать, выдает
else { if ($p == 0) {$sqlquery=$param." ORDER BY ".$two;};
if ($p != 0) {$sqlquery=" , ".$two;};
$p++; echo $p;};// показывает равный 1
а потом при втором нажатии он опять его 0 делает, я не понимаю куда вписывать его надо, не вижу и все(((
не работает в смысле всегда ORDER by или второе условие, и не понятно как считает $p вот в чем проблема.
оно вот что пишет
select * from avtomobil as av INNER JOIN outlay ON av.ID_rasxod=outlay.ID_rasxod INNER JOIN power ON av.ID_moschnost=power.ID_moschno st INNER JOIN volume_motor ON av.ID_obem=volume_motor.ID_obem INNER JOIN transference ON av.ID_peredach=transference.ID_p eredach INNER JOIN baggage ON av.ID_bag=baggage.ID_bag INNER JOIN year_output ON av.ID_god=year_output.ID_god INNER JOIN road ON av.ID_road=road.ID_road INNER JOIN wheel_base ON av.ID_base=wheel_base.ID_base INNER JOIN width ON av.ID_width=width.ID_width INNER JOIN hight ON av.ID_hight=hight.ID_hight INNER JOIN length ON av.ID_length=length.ID_length INNER JOIN body ON av.ID_kyzov=body.ID_kyzov ORDER BY outlay.ras_za_gor ASC ORDER BY outlay.ras_za_gor ASC
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in E:\Server\Apache2\htdocs\ssilka.php on line 31 (Добавление)
diodida пишет:
это не аргумент
или вторй вариант
, year_output.god_vipuska ASC
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in E:\Server\Apache2\htdocs\ssilka.php on line 31
есть выборка параметров и условия сортировки. сортировка должна быть по нескольким параметрам...вначале 1 потом второй, все через ORDER BY. пытаюсь написать цикл а он отказывается работать, не могу понять в чем ошибка
if (is_null($param)) {
$sqlquery='select * from avtomobil as av
INNER JOIN outlay ON av.ID_rasxod=outlay.ID_rasxod
INNER JOIN power ON av.ID_moschnost=power.ID_moschno st
INNER JOIN volume_motor ON av.ID_obem=volume_motor.ID_obem
INNER JOIN transference ON av.ID_peredach=transference.ID_p eredach
INNER JOIN baggage ON av.ID_bag=baggage.ID_bag
INNER JOIN year_output ON av.ID_god=year_output.ID_god
INNER JOIN road ON av.ID_road=road.ID_road
INNER JOIN wheel_base ON av.ID_base=wheel_base.ID_base
INNER JOIN width ON av.ID_width=width.ID_width
INNER JOIN hight ON av.ID_hight=hight.ID_hight
INNER JOIN length ON av.ID_length=length.ID_length
INNER JOIN body ON av.ID_kyzov=body.ID_kyzov ';
include ("elements_not_null.php"); } // если пришло из списка
else { if ($p == 0) {$sqlquery=$param." ORDER BY ".$two;} // если проводим сортировку, эта строка работает, а вот следующие 2 никак, все равно ORDER by добавляет
$p++
if ($p != 0) {$sqlquery=" , ".$two;}; };
$query = mysql_query($sqlquery, $mydate);
echo "<table WIDTH=100% border=0>";
echo $sqlquery;
// наличие значений в выборке
$array = mysql_fetch_assoc($query);
if($array) { $fields=21;
// сортировка по параметрам
echo "<tr><div align ='left'><b> СОРТИРОВКА ПО ПАРАМЕТРАМ: </b></div></tr>";
echo "<form name='number' form action = 'ssilka.php' target='left' >";
echo "<input type='hidden' name='param' value='$sqlquery','$p=0' />";
как создать текстовую строку с параметрами котрые были в post созданы и отправить их далее...
echo $string = строке с параметрами;
echo "<input type='text' name='mine1' value='$string' />";
по одному параметру укапаешься передавать...а потом опять запрос формировать и выборку делать
пасиба за потраченное время сама наша как параметры вытягивать!
у меня просто список параметров выводит...пользователь должен выбрать машину по критериям определенным, потом запрос к БД и отбор авто по этим критериям, а уже после этого сортировка выбранного списка (авто удовлетворяющих критериям) по определенным параметрам, например по году (при нажатии на соответствующую кнопочку) или по расходу...
А с тегами в смысле это все в таблицу запихнуть? (Добавление)
diodida пишет:
Вы опишите конкретно задачу, попробуем написать за Вас
как создать текстовую строку с параметрами котрые были в post созданы и отправить их далее...
echo $string = строке с параметрами;
echo "<input type='text' name='mine1' value='$string' />";
по одному параметру укапаешься передавать...а потом опять запрос формировать и выборку делать
select * from avtomobil as av INNER JOIN outlay ON av.ID_rasxod=outlay.ID_rasxod INNER JOIN power ON av.ID_moschnost=power.ID_moschno st INNER JOIN volume_motor ON av.ID_obem=volume_motor.ID_obem INNER JOIN transference ON av.ID_peredach=transference.ID_p eredach INNER JOIN baggage ON av.ID_bag=baggage.ID_bag where ID_marka=1 and ID_model=101 sel=1sel1=101( сейчас параметры вроде показывает, я правильно поняла?)
после того как вытяну, надо передать в другую форму выборку и там уже отсортировать...