есть несколько фильтров такого вида
$faktura = isset($_POST["fakturaing"]) ? $_POST["fakturaing"] : '';
if($faktura!= '1' ){if($faktura != ''){ $conditions[] = "`faktura` = '".addslashes($faktura)."'"; } }
echo"Фактура<select name=\"fakturaing\" onchange=\"this.form.submit();\"><br> ";
echo"<option value=\"1\" selected=\"selected\">Не важно</option>";
$query = "SELECT t.id,
t.id_stoune,
t1.name,
t1.foto,
t1.faktura,
t1.brend,
t.tolchina,
t.buy,
t.nachenka,
t.postavka,
t.srok_postavki,
t.buy_god,
t.trud,
t.otxod,
t.user_id,
t2.namecat_id,
t2.id_stoune,
t3.id,
t3.namecat
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`".$dbpf."_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`".$dbpf."_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
GROUP BY `t1`.`faktura`";
$sql = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($sql))
{
if($_POST["fakturaing"] == $row['faktura']){
echo"<option value=\"".$row['faktura']."\" selected=\"selected\"> ".$row['faktura']."</option>";
} else {
echo"<option value=\"".$row['faktura']."\"> ".$row['faktura']."</option>";
} }
echo"</select>
</form>";
echo'id материала <input name="mat" value="'.$_GET['mat'].'" type="hidden"><br>';
//еще фильтры
$conditions = count($conditions) > 0 ? 'AND '.implode(' AND ', $conditions) : '';
хотелось бы что бы при выборе из одного фильтра происходило изменение содержание других.
т.е.
$query = "SELECT t.id,
t.id_stoune,
t1.name,
t1.foto,
t1.faktura,
t1.brend,
t.tolchina,
t.buy,
t.nachenka,
t.postavka,
t.srok_postavki,
t.buy_god,
t.trud,
t.otxod,
t.user_id,
t2.namecat_id,
t2.id_stoune,
t3.id,
t3.namecat
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`".$dbpf."_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`".$dbpf."_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
WHERE t.user_id = '".$_SESSION['user_id']."' ".$conditions."
GROUP BY `t1`.`faktura`";
но так не работает выдает ошибку
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 'Array
GROUP BY `t1`.`otenok`' at line 38
если делаем
print_r($query);
то
SELECT t.id,
t.id_stoune,
t1.name,
t1.foto,
t1.faktura,
t1.brend,
t.tolchina,
t.buy,
t.nachenka,
t.postavka,
t.srok_postavki,
t.buy_god,
t.trud,
t.otxod,
t.user_id,
t1.otenok,
t2.namecat_id,
t2.id_stoune,
t3.id,
t3.namecat
FROM
`2950_user_stoune` `t`
LEFT OUTER JOIN
`2950_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`2950_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`2950_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
WHERE t.user_id = 'EHfA' Array
GROUP BY `t1`.`otenok`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 'Array
GROUP BY `t1`.`otenok`' at line 38
Весь код
echo'1. Выберите материал:<br>';
echo"<form name=\"c4et2\" method=\"POST\">";
// $conditions = array();
echo"Выберете материал<br>";
$otenok = isset($_POST["otenoking"]) ? $_POST["otenoking"] : '';
if($otenok!= '1' ){if($otenok != ''){ $conditions[] = "`otenok` = '".addslashes($otenok)."'"; } }
echo"Оттенок <select name=\"otenoking\" onchange=\"this.form.submit();\"> ";
echo"<option value=\"1\" selected=\"selected\">Не важно</option>";
$query = "SELECT t.id,
t.id_stoune,
t1.name,
t1.foto,
t1.faktura,
t1.brend,
t.tolchina,
t.buy,
t.nachenka,
t.postavka,
t.srok_postavki,
t.buy_god,
t.trud,
t.otxod,
t.user_id,
t1.otenok,
t2.namecat_id,
t2.id_stoune,
t3.id,
t3.namecat
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`".$dbpf."_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`".$dbpf."_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
GROUP BY `t1`.`otenok`";
//print_r($query);
$sql = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($sql))
{
if($_POST["otenoking"] == $row['otenok']){
echo"<option value=\"".$row['otenok']."\" selected=\"selected\"> ".$row['otenok']."</option>";
} else {
echo"<option value=\"".$row['otenok']."\"> ".$row['otenok']."</option>";
}
}
echo"</select>";
//print_r($conditions);
$namecat = isset($_POST["namecating"]) ? $_POST["namecating"] : '';
if($namecat!= '1' ){if($namecat != ''){ $conditions[] = "`namecat` = '".addslashes($namecat)."'"; } }
echo"Группа <select name=\"namecating\" onchange=\"this.form.submit();\"> ";
echo"<option value=\"1\" selected=\"selected\">Не важно</option>";
$query = "SELECT t.id,
t.id_stoune,
t1.name,
t1.foto,
t1.faktura,
t1.brend,
t.tolchina,
t.buy,
t.nachenka,
t.postavka,
t.srok_postavki,
t.buy_god,
t.trud,
t.otxod,
t.user_id,
t2.namecat_id,
t2.id_stoune,
t3.id,
t3.namecat
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`".$dbpf."_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`".$dbpf."_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
GROUP BY `t3`.`namecat`";
$sql = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($sql))
{
if($_POST["namecating"] == $row['namecat']){
echo"<option value=\"".$row['namecat']."\" selected=\"selected\"> ".$row['namecat']."</option>";
} else {
echo"<option value=\"".$row['namecat']."\"> ".$row['namecat']."</option>";
}
}
echo"</select> ";
$brend = isset($_POST["brending"]) ? $_POST["brending"] : '';
if($brend!= '1' ){if($brend != ''){ $conditions[] = "`brend` = '".addslashes($brend)."'"; } }
echo"Бренд <select name=\"brending\" onchange=\"this.form.submit();\"> ";
echo"<option value=\"1\" selected=\"selected\">Не важно</option>";
$query = "SELECT t.id,
t.id_stoune,
t1.name,
t1.foto,
t1.faktura,
t1.brend,
t.tolchina,
t.buy,
t.nachenka,
t.postavka,
t.srok_postavki,
t.buy_god,
t.trud,
t.otxod,
t.user_id,
t2.namecat_id,
t2.id_stoune,
t3.id,
t3.namecat
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`".$dbpf."_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`".$dbpf."_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
GROUP BY `t1`.`brend`";
$sql = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($sql))
{
if($_POST["brending"] == $row['brend']){
echo"<option value=\"".$row['brend']."\" selected=\"selected\"> ".$row['brend']."</option>";
} else {
echo"<option value=\"".$row['brend']."\"> ".$row['brend']."</option>";
}
}
echo"</select> ";
$tolchina = isset($_POST["tolchinaing"]) ? $_POST["tolchinaing"] : '';
if($tolchina!= '1' ){if($tolchina != ''){ $conditions[] = "`tolchina` = '".addslashes($tolchina)."'"; } }
echo"Толщина<select name=\"tolchinaing\" onchange=\"this.form.submit();\"><br> ";
echo"<option value=\"1\" selected=\"selected\">Не важно</option>";
$query = "SELECT t.id,
t.id_stoune,
t1.name,
t1.foto,
t1.faktura,
t1.brend,
t.tolchina,
t.buy,
t.nachenka,
t.postavka,
t.srok_postavki,
t.buy_god,
t.trud,
t.otxod,
t.user_id,
t2.namecat_id,
t2.id_stoune,
t3.id,
t3.namecat
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`".$dbpf."_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`".$dbpf."_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
GROUP BY `t`.`tolchina`";
$sql = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($sql))
{
if($_POST["tolchinaing"] == $row['tolchina']){
echo"<option value=\"".$row['tolchina']."\" selected=\"selected\"> ".$row['tolchina']."</option>";
} else {
echo"<option value=\"".$row['tolchina']."\"> ".$row['tolchina']."</option>";
} }
echo"</select>";
$faktura = isset($_POST["fakturaing"]) ? $_POST["fakturaing"] : '';
if($faktura!= '1' ){if($faktura != ''){ $conditions[] = "`faktura` = '".addslashes($faktura)."'"; } }
echo"Фактура<select name=\"fakturaing\" onchange=\"this.form.submit();\"><br> ";
echo"<option value=\"1\" selected=\"selected\">Не важно</option>";
$query = "SELECT t.id,
t.id_stoune,
t1.name,
t1.foto,
t1.faktura,
t1.brend,
t.tolchina,
t.buy,
t.nachenka,
t.postavka,
t.srok_postavki,
t.buy_god,
t.trud,
t.otxod,
t.user_id,
t2.namecat_id,
t2.id_stoune,
t3.id,
t3.namecat
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`".$dbpf."_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`".$dbpf."_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
GROUP BY `t1`.`faktura`";
$sql = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($sql))
{
if($_POST["fakturaing"] == $row['faktura']){
echo"<option value=\"".$row['faktura']."\" selected=\"selected\"> ".$row['faktura']."</option>";
} else {
echo"<option value=\"".$row['faktura']."\"> ".$row['faktura']."</option>";
} }
echo"</select>
</form>";
echo'id материала <input name="mat" value="'.$_GET['mat'].'" type="hidden"><br>';
$conditions = count($conditions) > 0 ? 'AND '.implode(' AND ', $conditions) : '';
// print_r ( $_POST);
$pager=25;
/* print_r("SELECT COUNT(*)
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` ) WHERE t.user_id = '".$_SESSION['user_id']."' ".$conditions.""); */
$res = mysql_query("SELECT COUNT(*)
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`".$dbpf."_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`".$dbpf."_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
WHERE t.user_id = '".$_SESSION['user_id']."' ".$conditions."");
$row = mysql_fetch_row($res);
$total = $row[0] ;
if($total != 0){
$total_pages = ceil($total/$pager);
$page = (isset($_GET['page']) && $_GET['page'] > 1) ? intval($_GET['page']) : 1;
$page = $page > $total_pages ? $total_pages : $page;
$page = $page > 0 ? $page - 1 : 0;
$query = "SELECT t.id,
t.id_stoune,
t1.name,
t1.foto,
t1.faktura,
t1.brend,
t.tolchina,
t.buy,
t.nachenka,
t.postavka,
t.srok_postavki,
t.buy_god,
t.trud,
t.otxod,
t.user_id,
t1.otenok,
t2.namecat_id,
t2.id_stoune,
t3.id,
t3.namecat
FROM
`".$dbpf."_user_stoune` `t`
LEFT OUTER JOIN
`".$dbpf."_stoune` `t1`
ON
(`t`.`id_stoune`=`t1`.`id` )
LEFT OUTER JOIN
`".$dbpf."_tip_stoune` `t2`
ON
(`t1`.`id`=`t2`.`id_stoune` )
LEFT OUTER JOIN
`".$dbpf."_namecat` `t3`
ON
(`t2`.`namecat_id`=`t3`.`id` )
WHERE t.user_id = '".$_SESSION['user_id']."' ".$conditions."";
$sql = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($sql))
{
echo'<div class="formvar" align="center" valign="middle">';
if($_GET['mat'] == $row['id']){
echo'<img width="100px" height="100px" src="../img_stoune/'.$row['foto'].'"><br /><input type="radio" name="cromki" value="'.$row['id'].'" onclick="this.form.submit();" checked="checked"> '.$row['name'].' ';
}else{
echo'<img width="100px" height="100px" src="../img_stoune/'.$row['foto'].'"><br /><input type="radio" name="cromki" value="'.$row['id'].'" onclick="this.form.submit();"> '.$row['name'].' ';
}
echo'
</div>';
}
echo '<div id="paging"> Страницы: ';
for ($i=0; $i<$total_pages; $i++)
{
if($i == $page){
echo ($i + 1);
} else {
echo "<a href='/?mode=new&page=".($i+1)."'> ".($i+1)." </a>";
}
echo ' ';
}
echo '</div>';
}
echo"</div></div>";
Побывал прописать
$conditions = array(); в начале и $conditions = count($conditions) > 0 ? 'AND '.implode(' AND ', $conditions) : '';
не помогло.
Спустя 14 дней, 18 часов, 44 минуты, 23 секунды (30.07.2012 - 14:37) DarkGuy написал(а):
if($_POST['otenoking'] != '1' AND isset($_POST['otenoking']) ){ $otenokcond= "AND `otenok` ='".$_POST['otenoking']."'"; }else{$otenokcond = ""; }
if($_POST['namecating'] != '1' AND isset($_POST['namecating']) ){ $namecatcond= "AND `namecat` ='".$_POST['namecating']."'"; }else{$namecatcond = ""; }
if($_POST['brending'] != '1' AND isset($_POST['brending']) ){ $brendcond= "AND `brend` ='".$_POST['brending']."'"; }else{$brendcond = ""; }
if($_POST['tolchinaing'] != '1' AND isset($_POST['tolchinaing']) ){ $tolchinacond= "AND `tolchina` ='".$_POST['tolchinaing']."'"; }else{$tolchinacond = ""; }
if($_POST['fakturaing'] != '1' AND isset($_POST['fakturaing']) ){ $fakturacond= "AND `faktura` ='".$_POST['fakturaing']."'"; }else{$$fakturacond = ""; }
WHERE t.user_id = '".$_SESSION['user_id']."'".$namecatcond."".$brendcond."".$tolchinacond."".$faktu racond."
WHERE t.user_id = '".$_SESSION['user_id']."'".$otenokcond."".$brendcond."".$tolchinacond."".$faktur acond."
WHERE t.user_id = '".$_SESSION['user_id']."'".$otenokcond."".$namecatcond."".$tolchinacond."".$fakt uracond."
WHERE t.user_id = '".$_SESSION['user_id']."'".$otenokcond."".$namecatcond."".$brendcond."".$faktura cond."
WHERE t.user_id = '".$_SESSION['user_id']."'".$otenokcond."".$namecatcond."".$brendcond."".$tolchin acond."