Ich bin neu in PHP-Codierung. Ich habe andere Vorlieben für den Benutzer, um von meiner HTML-Seite auszuwählen. Ich möchte alle vom Benutzer ausgewählten Kontrollkästchen abrufen und die Hotelnamen anzeigen, die alle diese Einstellungen enthalten. Wenn beispielsweise ein Benutzer die Kontrollkästchen "Roof top", "Sea side" und "Swimming pool" auswählt, müssen die Hotels, gegen die in den entsprechenden Spalten in der Datenbank mytrip.db eine 1 platziert ist, auf einmal abgerufen werden angezeigt werden. Mein Code nimmt nur einen Checkbox-Wert an und zeigt nur den Hotelnamen an. Ich möchte die Hotels anzeigen, die alle Präferenzen enthalten. Mein Code ist unten:Wie können Werte aus der SQLite 3-Datenbank auf der Basis mehrerer in PHP auf einmal ausgewählten Kontrollkästchen abgerufen werden?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PHP: Get Values of Multiple Checked Checkboxes</title>
<link rel="stylesheet" href="css/php_checkbox.css" />
</head>
<body>
<div class="container">
<div class="main">
<h2>PHP: Get Values of Multiple Checked Checkboxes</h2>
<select id="mySelect" name="list">
<option selected>Select a place</option>
<option value="1">Lahore</option>
<option value="2">Dubai</option>
<option value="3">New York</option>
<option value="4">Canberra</option>
<option value="5">London</option>
</select>
<form action="php_checkbox.php" method="post">
<label class="heading">Select Your Preferences:</label>
<input type="checkbox" name="check_list[]" value="Swimming pool"><label>Swimming pool</label>
<input type="checkbox" name="check_list[]" value="Roof top"><label>Roof top</label>
<input type="checkbox" name="check_list[]" value="Sea side"><label>Sea side</label>
<input type="submit" name="submit" Value="Submit"/>
</html>
<?php include 'checkbox_value.php';?>
</form>
</div>
</div>
</body>
</html>
checkbox_value.php Code ist unten:
<?php
class MyDB extends SQLite3
{
function __construct()
{
$this->open('mytrip.db');
}
}
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
} else {
}
if(isset($_POST['submit'])){
if(!empty($_POST['check_list'])) {
// Counting number of checked checkboxes.
$checked_count = count($_POST['check_list']);
echo "You have selected following ".$checked_count." option(s): <br/>";
$prefarray=array();
$i=0;
// Loop to store and display values of individual checked checkbox.
foreach($_POST['check_list'] as $selected) {
$prefarray[$i]= $selected;
echo "<p>".$prefarray[$i] ."</p>";
echo "<p>".$selected ."</p>";
$i++;
}
echo "<p>".$i ."</p>";
$sql =<<<EOF
SELECT hotel_name from Dubai WHERE $prefarray[i]==1 AND $prefarray[i-1]==1 ;
EOF;
$ret = $db->query($sql);
while($row = $ret->fetchArray(SQLITE3_ASSOC)){
echo "<p> <br /></p>\n";
echo "\n". $row['hotel_name'] . "\n";
}
$db->close();
echo "<br/><b>Note :</b> <span>Similarily, You Can Also Perform CRUD Operations using These Selected Values.</span>";
}
else{
echo "<b>Please Select Atleast One Option.</b>";
}
}
?>
Das Problem mit diesem Code ist, dass es nur ein Kontrollkästchen Wert anzeigt, wenn ich Abfrage verwenden
SELECT hotel_name FROM Dubai WHERE $selected==1
Ich habe versucht, die ausgewählten Kontrollkästchenwerte zu speichern, indem ich ein Array "Prefarray" machte. Aber wenn ich die Abfrage ausführen, die ich in meinem checkbox_value.php-Code veröffentlicht habe, gibt es mir einen Fehler von "Undefined offset 3 in prefarray". Ich möchte, dass die Datenbankabfrage nur die Checkbox-Werte enthält, die vom Benutzer ausgewählt wurden. Zum Beispiel, wenn der Benutzer 2 von drei Kontrollkästchen ausgewählt dann meiner Frage wie
SELECT hotel_name FROM Dubai WHERE $checkbox==1 AND $checkbox2==1;
Jede Hilfe zwei dieser Aufgaben aussehen sollte anerkannt werden zu erreichen!
Nach dem Ausführen von Code ich bin immer „Warnung: SQLite3: : query(): Anweisung kann nicht vorbereitet werden: 1, in der Nähe von "; ": Syntax e rror in checkbox_value.php in Zeile 35 ". Und auch in der Funktion fetchArray(). Bitte führen Sie, wie kann ich es implementieren? – MinjaNinja
versuchen Sie '$ sql =" SELECT hotel_name VON Dubai WHERE ". $ Wo."; ";' – xReprisal
immer noch die gleiche Warnung und Fehler erhalten. – MinjaNinja