24. august 2020 - 18:27
Der er
2 kommentarer og 1 løsning
multi Checkbox in sql query
Hej Jeg har følgende ph code, og den virker som den skal. if(isset($_POST['checkbox1'])){ $done = "AND status like 'Færdig' "; }else{ $done = ""; } if(isset($_POST['checkbox2'])){ $igang = "AND status like '%Igang%'"; }else{ $igang = ""; } echo $done; echo $igang; jeg vil gerne have den ind en sql query, jeg ved bare ikke rigtigt hvordan man skal gøre det jeg har prøvet med følgende code: $sql = "SELECT * FROM test where lastname like 'Larsen' $done $igang"; Query kommer til a se sådan her ud SELECT * FROM test where lastname like 'Larsen' AND status like 'Færdig' AND status like 'Igang' men det virker ikke, da der er ikke nogen som har både Færdig og igang i status feltet Nogen ide til hvordan med gør dette
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
24. august 2020 - 19:31
#1
Du mangler lidt at fortælle hvad det er du vil have. Du designer jo netop dine to ekstra wheres så de udelukker hinanden. Hvad er det du ønsker skal ske? - Rent bortset fra det, er det en virkelig dårlig idé at opbevare status i et tekstfelt, især et der kan indeholde flere ting, så du er nødt til at tjekke med "like". Det er ekstremt langsomt.
24. august 2020 - 19:50
#2
Du mener sikkert: SELECT * FROM test where lastname like 'Larsen' AND (status like 'Færdig' OR status like 'Igang') Derudover er jeg helt enig med slader omkring brugen af de tekst strenge og LIKE. Og det ser heller ikke ud som at du bruger prepared statement.
24. august 2020 - 20:28
#3
Har fundet en løsning <form action="search.php" method="POST"> <input type="checkbox" name="checkbox[]" id="checkbox1" value="Færdig" <?php if(in_array("Færdig", $checked)) echo "checked"; ?> style="position:absolute;left:184px;top:16px;width:96px;height:16px;z-index:36;"> <label for="checkbox1" style="position:absolute;left:250px;top:18px;width:96px;height:25px;z-index:36;">Færdig</label> <input type="checkbox" name="checkbox[]"id="checkbox2" value="Igang" <?php if(in_array("Igang", $checked)) echo "checked"; ?> style="position:absolute;left:184px;top:36px;width:96px;height:16px;z-index:36;"> <label for="checkbox2" style="position:absolute;left:250px;top:38px;width:96px;height:25px;z-index:36;">Igang</label> <input type="checkbox" name="checkbox[]" value="" <?php if(in_array("", $checked)) echo "checked"; ?> style="position:absolute;left:184px;top:56px;width:96px;height:16px;z-index:36;"> <label for="checkbox3" style="position:absolute;left:250px;top:58px;width:96px;height:25px;z-index:36;">Ikke startet</label> <input type="submit" id="Button1" name="btSubmit" value="Search" style="position:absolute;left:184px;top:180px;width:96px;height:25px;z-index:36;"> </form> if(isset($_POST["btSubmit"]) and !empty($_POST['checkbox'])){ $all_ck_box = "'".implode("','",$_POST['checkbox'])."'"; $sql = "SELECT * FROM test where status IN (".$all_ck_box.")"; $result = mysqli_query($db, $sql); $queryResult = mysqli_num_rows($result); if ($queryResult > 0){ while ($row = mysqli_fetch_assoc($result)) { $name = $row['name']; $lastname = $row['lastname']; $status = $row['status']; ?> <tr> <td align="center"><?php echo $name ?></td> <td align="center"><?php echo $lastname ?></td> <td align="center"><?php echo $status ?></td>