如果选择的选项值为空,请选择列中的所有值

时间:2014-04-14 09:42:14

标签: php mysql

当我选择颜色选项值为空时,我试图从列中获取所有值。 我创建了表单,下拉菜单看起来像

颜色

<option value="">
<option value="61">8019 - Smeđa
<option value="28">8017 - Smedja svijetla
<option value="27">8004 - Cigla crvena
<option value="26">8003 - Boja bakra

尺寸

<?php
while($row = mysqli_fetch_array($dimensions))
{
echo '<option value= "'.$row['ArtOpis'].'">'.$row['ArtOpis'].'</option>'; 
}

?>
</select>

如果我选择尺寸并将颜色值留空,则应打印所选菜单中的所有颜色。对于前者如果想要画出4,4x20毫米的尺寸,如果我不选择颜色,请留空,我想用所有颜色打印这个螺丝。     vijci_search2.php

$col=$_POST['color']

$dimen=$_POST['dimensions'];
$sql_color = (!empty($col)) ? "jos_ib_boje.BojaId=" . $col . " AND " : '';


Query
$result = mysqli_query($con, "SELECT jos_ib_artikli.ArtSifra, jos_ib_artikli.ArtNaziv, jos_ib_artikli.ArtOpis,jos_ib_artikli.ArtKategorija, jos_ib_artikli.ArtBoja, jos_ib_jedmj.JmNaziv, jos_ib_pakovanja.PakOznaka, 
jos_ib_artikli.ArtStanjeSa, jos_ib_artikli.ArtStanjeBL, jos_ib_boje.BojaId, jos_ib_boje.BojaNaziv

FROM jos_ib_artikli

INNER JOIN jos_ib_jedmj ON jos_ib_artikli.ArtMjera = jos_ib_jedmj.JmId

INNER JOIN jos_ib_pakovanja ON jos_ib_artikli.ArtPakovanje = jos_ib_pakovanja.PakId

INNER JOIN jos_ib_boje ON jos_ib_artikli.ArtBoja = jos_ib_boje.BojaId

WHERE jos_ib_artikli.ArtOpis LIKE '$dimen' AND jos_ib_artikli.ArtBoja='$sql_color' AND jos_ib_artikli.ArtStanjeSa>0");

2 个答案:

答案 0 :(得分:0)

试试这个

<?php
$col=$_POST['color']

$dimen=$_POST['dimensions'];

$query .= "SELECT jos_ib_artikli.ArtSifra, jos_ib_artikli.ArtNaziv, jos_ib_artikli.ArtOpis,jos_ib_artikli.ArtKategorija, jos_ib_artikli.ArtBoja, jos_ib_jedmj.JmNaziv, jos_ib_pakovanja.PakOznaka, 
jos_ib_artikli.ArtStanjeSa, jos_ib_artikli.ArtStanjeBL, jos_ib_boje.BojaId, jos_ib_boje.BojaNaziv

FROM jos_ib_artikli

INNER JOIN jos_ib_jedmj ON jos_ib_artikli.ArtMjera = jos_ib_jedmj.JmId

INNER JOIN jos_ib_pakovanja ON jos_ib_artikli.ArtPakovanje = jos_ib_pakovanja.PakId

INNER JOIN jos_ib_boje ON jos_ib_artikli.ArtBoja = jos_ib_boje.BojaId

WHERE jos_ib_artikli.ArtOpis LIKE '$dimen'";

if($col != '' && !empty($col)) { $query .= " AND jos_ib_boje.BojaId=" . $col ."";}

$query .= " AND jos_ib_artikli.ArtBoja='$sql_color' AND jos_ib_artikli.ArtStanjeSa>0";

$result = mysqli_query($con, $query);

这个变量($ sql_color)没有定义,所以首先定义它,然后运行查询?

答案 1 :(得分:-1)

我已经解决了这个问题。 错误就在这里。 //坏 $ sql_color =(!empty($ col))? &#34; jos_ib_boje.BojaId =&#34; 。 $ col。 &#34; AND&#34; :&#39;&#39;;

//好 $ sql_color =(!empty($ col))? &#34; AND jos_ib_artikli.ArtBoja =&#34; 。 $ color。 &#34; &#34; :&#39;&#39;;

$ sql =&#34; SELECT jos_ib_artikli.ArtSifra,jos_ib_artikli.ArtNaziv,jos_ib_artikli.ArtOpis,jos_ib_artikli.ArtKategorija,jos_ib_artikli.ArtBoja,jos_ib_jedmj.JmNaziv,jos_ib_pakovanja.PakOznaka,     jos_ib_artikli.ArtStanjeSa,jos_ib_artikli.ArtStanjeBL,jos_ib_boje.BojaId,jos_ib_boje.BojaNaziv

FROM jos_ib_artikli

INNER JOIN jos_ib_jedmj ON jos_ib_artikli.ArtMjera = jos_ib_jedmj.JmId

INNER JOIN jos_ib_pakovanja ON jos_ib_artikli.ArtPakovanje = jos_ib_pakovanja.PakId

INNER JOIN jos_ib_boje ON jos_ib_artikli.ArtBoja = jos_ib_boje.BojaId

WHERE jos_ib_artikli.ArtOpis LIKE '$dimenzija'  ". $sql_bojalica . "  AND ArtStanjeSA>0 " ;