Hogyan szűrjek két érték közötti számokat az adatbázisból? Php, mysql.
Itt a teljes kódom.
Ha nem írok egyik mezőbe semmit akkor "There ara no result matchin your search!".
Ha csak a min_price mezőbe írok akkor is "There ara no result matchin your search!".
Ha beirok egy értéket a max_price mezőbe akkor rendesen lefut a lekérdezés.
Illetve akkor is, ha mindkét mezőt kitöltöm.
Azonban nekem úgy kellene, hogy ha nem írok egyik mezőbe se semmit, akkor minden listázzon.
Nem értem miért ragaszkodik ennyire a max_price mezőhöz.
HTML:
<form action="search.php" method="POST">
<input type="number" name="min_price" placeholder="min ár">
<input type="number" name="max_price" placeholder="max ár">
<button type="submit" name="submit-search" >Search</button>
</form>
Search.php
<?php
if(isset($_POST['submit-search'])){
$min_price = mysqli_real_escape_string($conn, $_POST['min_price']);
$max_price = mysqli_real_escape_string($conn, $_POST['max_price']);
$sql = "SELECT * FROM termek WHERE ar > '$min_price' AND ar < '$max_price'";
}
$result = mysqli_query($conn, $sql);
$queryResult = mysqli_num_rows($result);
if($queryResult > 0){
while($row = mysqli_fetch_assoc($result)){
echo $row['marka'] . " " . $row['tipus'] . " " . $row['ar'] . "<br>" ;
}
} else{
echo "There ara no result matchin your search!";
}
?>
Tudom, hogy nem ez a legjobb oldal erre a kérdése.
Melyik oldalt ajánljátok hasonló jellegű kérdésekhez?
Írasd ki az $sql változót abban az esetben, amikor nincs min és max price. Meg fogod látni, hogy szemantikus hibát eredményez a mysql-ben.
Jelen esetben ilyesmit kapnál:
SELECT * FROM termek WHERE ar > '' AND ar < ''
Ugye mivel nincsenek ilyen változóid. Feltételezem az ar mező a táblában számot tartalmaz, és próbálod összehasonlítani egy nem minden esetben számmal. Ez problémákat okozhat.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!