Hallo
Ich habe die isset Abfragen für alle notwendigen inputs erstellt
IF(isset($_POST['iKern_FELD1'])) { $selectvar[] = "KERN_FELD1 LIKE '" . mysqli_real_escape_string($db, $_POST['iKern_FELD1']) . "% '"; }
Heraus kommt KERN_FELD1 LIKE 'irgendeinwert% '
. Ich bin nicht sicher, ob das Leerzeichen hinter dem Platzhalter (%
) zu Problemen führen kann. Das kannst du aber eins zwei fix ausprobieren.
Was aber das $db für den Aufbau zur Datenbank dort zu suchen hat habe ich noch nicht verinnerlicht. Ich will doch hier nur aus dem input auslesen, und nichts aus der DB?
Zur Ausführung der Funktion mysqli_real_escape_string
brauchst du die Verbindungskennung. genauer gesagt brauchst du die zur Ausführung fadt jeder Funktion der MySQLi Bibliothek.
Mein SELECT sieht dann so aus
$SUCHE = $db->query("SELECT ID, KERN_FELD1, ..... WHERE "); $SUCHE .= implode("OR ", $selectvar);
Das implode setzt zwischen den Einträgen des arrays jeweils ein "OR "
Das ist schön. Nur erfolgt das zur Unzeit. Du hast den Query mit $db->query()
ja schon vorher ausgeführt.
Am Ende habe ich ein input zum testen gebasteln, welches in einem WHILE liegt
//<?php IF ($Gesucht =='ja') { ?> <?php while ($Ergebnis = $SUCHE->fetch_object()) { ?> <input type="text" name="" value="<?= $Ergebnis->KERN_FELD1;?>"> <?php } ?> //<? } ?> **Das auskommentierte IF ist nicht mehr Bestandteil des quelltextes zwecks Fehlersuche
Nichts gegen Kontextwechsel, da, wo sie sinnvoll sind. Hier sind sie es an mehreren Stellen ganz offensichtlich nicht [1]. Es erfüllt so überhaupt keinen Sinn, aus PHP herauszuspringen, nur um wieder hineinzuspringen. Oder steht dort im Quelltext zwischen den ?>
und den <$php
noch etwas anderes?
//<?php IF ($Gesucht =='ja') {
while ($Ergebnis = $SUCHE->fetch_object()) { ?>
<input type="text" name="" value="<?= $Ergebnis->KERN_FELD1;?>">
<?php }
//}
?>
Davon abgesehen muss das Input einen Namen haben, bei dir ist das name-Attribut aber leer. Ohne Name wird sein Inhalt beim abschicken des Formulars nicht übertragen. Damit springen deine Prüfungen a la IF(isset($_POST['iKern_FELD1']))
auch nicht an.
Tschö, Auge
Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
Hohle Köpfe von Terry Pratchett
Ausnahme ist der Sprung in den HTML-Kontext für das Input-Element. ↩︎