Hallo, ich habe hier ein Teil von meiner funktion.php.
Das funktioniert teilweise wie geplant, man kann nach: Ref-Nr, Farbe und Gestalt
suchen lassen und nachher ausgeben.
Was nicht funktioniert, dann übereinstimmende Ergebnisse, nehmen wir mal "Farbe-rot", die nicht vollzählig ausgegeben werden.
Also bei drei Übereinstimmungen wird nur die letzte angezeigt.
Ich probierte es auch mit "$dbh->query....", bekam das gleiche Ergebnis und stellte noch fest, dass ich nicht mehr mit dem Platzhalter "%" arbeiten kann.
Daher bin ich auf die Variante unten angewiesen.
An der PHP 5.3 Version kann ich nicht drehen, da es zur Zeit nicht möglich ist.
MySQL und phpMyAdmin führen es ohne Probleme aus.
Ich denke das ist der Knackpunkt, aber mit "while" testete ich auch schon, kam das Gleiche heraus, nur ein Ergebnis wird ausgegeben.
$data = $sth->fetchALL(PDO::FETCH_ASSOC);
foreach($data as $row) {
...
}
Der Code
$sth = $dbh->prepare("SELECT * FROM Dingsda where
refnr LIKE :refnr OR
farbe LIKE :farbe OR
gestalt LIKE :gestalt
LIMIT 0,11 ");
$sth->bindValue(':refnr', $refnr);
$sth->bindValue(':farbe', $farbe);
$sth->bindValue(':gestalt', $gestalt);
$sth->execute();
$data = $sth->fetchALL(PDO::FETCH_ASSOC);
foreach($data as $row) {
$tabelleoben = '
<table class="tabelle">
<tr>
<th>Ref-Nr</th>
<th>Farbe</th>
<th>Gestalt</th>
</tr>';
$tabelleunten = "
<tr>
<td>".$row['refnr']. "</td>
<td>" .$row['farbe']. "</td>
<td>" .$row['gestalt']. "</td>
</tr>
</table>";
}
Wie zu sehen ist, wird die Tabelle (zweigeteilt) woanders ausgegeben:
if($suche) {
echo $tabelleoben;
echo $tabelleunten;
}
Die Frage ist einfach, wie kann man PHP davon überzeugen, dass da mehr als eine "Farbe-rot" zu ausgeben sind?
Danke fürs Lesen und Grüße