I am trying to get all values from column when color selected option value is empty. I have created form, and dropdown menu looks like
Colors
<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
dimensions
<?php
while($row = mysqli_fetch_array($dimensions))
{
echo '<option value= "'.$row['ArtOpis'].'">'.$row['ArtOpis'].'</option>';
}
?>
</select>
If I achoose dimension and leave color values empty, then all colors from selected menu should be printed. For ex. if a want srew 4,4x20 mm dimension, if I dont choose color, leave it blank, I want to print this screw in all colors. 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");
I have solved the problem. The mistake was here. //bad $sql_color = (!empty($col)) ? "jos_ib_boje.BojaId=" . $col . " AND " : '';
//good $sql_color = (!empty($col)) ? " AND jos_ib_artikli.ArtBoja=" . $color . " " : '';
$sql = "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 " ;
try this
<?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);
what about this variable ($sql_color) its not defined so first defined it and then run query??