Tom: Übergabe von Checkbox-Werten in die Select-Abfrage

Beitrag lesen

Hello,

a) In der $liststr-Zeile mit den ''' gab es einen Fehler. Ich habe die '' jetzt entfernt und jetzt läuft es. Das Problem war, dass die Ausgabe so aussah:

(9980','9999',...)

also das ' vor der ersten Zahl gefehlt hat und so eine Fehlermeldung produiziert wurde.

b) Ist es Möglichkeit, eine "Auskunft" zu geben, wenn keine Checkbox ausgewählt wurde? Also ...

Ich hatte als Code-Schnipsel vorgeschlagen:

Den ergänze ich un einfach durch einen else-Zweig

if (isset($_POST['btn']['show']))
   {
       if (isset($_POST['ctrl']['record']) and is_array($_POST['ctrl']['record']))
       {
           $_liste = array_map('intval', $_POST['ctrl']['record']);
           $liststr = "('" . implode(",'", $_liste) . "')";

## Aufruf des SHOW-Statements, wenn es sich nur auf die Checkboxen bezieht
       }
       else
       {
           ## Keine Checkboxen gewählt
           $_output['errors'][] = 'Sie haben keine Option ausgewählt';
       }

## Aufruf des Show-Statements, wenn es außedr den Checkboxnen auch noch andere
       ## andere Daten bereitstellen muss

}

Zur Frage mit der in()-Funktion

+---   den hatte ich vergessen
                              |
                              v
   $liststr = "('" . implode("','", $_liste) . "')";
                ^              ^               ^
                |              |               |

Die anderen Stringbegrenzer hatte ich drin im Mustercode.
Sorry, den einen hatte ich vergessen.

Du hast ihn beim Nachbauen dafür an einer anderen Stelle unterschlagen ;-))

Ich würde die Stringbegrenzer aus den schon erwähnten Gründen setzen lassen und außerdem ist die Funktion dann auch schnell umgebaut, um nach echten Stringinhalten (in einer anderen Spalte) zu suchen. Da muss dann nur das intval() gegen ein mysql_real_escape_string() ausgetauscht werden.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de