Mailinglisten-Archive |
Hallo, * Erik Bender [Mon, Mar 11, 2002 at 09:29:52AM +0100]: > Mittels Array wird in einem Datenbankfeld 'kreditkarten' ein String > dieser Form abgelegt: > Amex Master Visa Diner EC (jeweils durch SPACE getrennt.) Je nach Datenbank-System wäre es sinnvoll, hier einen speziellen Typ zu verwenden. Unter MySQL gibt es dazu z.B. "set", also eine "Menge". > <input type="checkbox" value="Amex" name="check_kredit[]" <?if > ($row["kreditkarten"] = Amex) print "checked";?>> > > Diese Checkbox habe ich für jede Kreditkarte angelegt. Aber wenn ich > ein '=' setze, bleibt die Box immer unmarkiert, wenn ich ein '==' > setze ist sie immer markiert. Unabhängig davon, was in dem String in > der Datenbank steht. Wie Du ja schon selbst gemerkt hast, ist der Zuweisungsoperator "=" hier nicht sinnvoll. Außerdem solltest Du eine Zeichenkette immer in Anführungszeichen einschließen, sonst wird sie als (nicht definierte) Konstante betrachtet. In Deinem Beispiel vermutet PHP eine Zeichenkettenkonstante mit dem Namen "Amex", die einen nicht definierten Wert hat. Der Vergleichsoperator "==" ist schon das, was Du verwenden solltest. Die Frage ist nur, was Du genau vergleichst. Eine Zeichenkette "Amex Master ...", wie Du sie oben angibst, ist nicht gleich der Zeichenkette "Amex". Hier helfen Dir die String-Funktionen, z.B. strstr() oder strpos() weiter. Ich würde Dir aber empfehlen, Dein Datenbankmodell noch einmal zu überdenken. Gruß, Lutz
php::bar PHP Wiki - Listenarchive