Alle unnötigen ' entfernen

Verstehe ich das richtig, die Kunden am Telefon sagen z.B. Ansprechpartner sind die Nummern 1, 2 und 3 oder nur 2 und 4 oder 1, 3 und 5 oder oder oder

Vorausgesetzt es gibt eine bestimmte Anzahl Ansprechpartner und es können daraus die verschiedensten Kombinationen gebildet werden, dann ist eine Auswahlliste wohl nicht geeignet.
Man könnte aber für jeden Ansprechpartner eine Checkbox machen und daraus dann den String für die SQL-Abfrage bilden.

Gruß Thomas
 
Hallo tombe

Es gibt leider keine bestimmte Anzahl von Ansprechpartner.
Ich trage einfach die Namen wahrlos in das Feld ansprechpartner ein.

Anschließend möchte ich eine Abfrage machen.
Z.B SELECT ansprechpartner FROM WHERE Firma = '1' AND IN('ansprechpartner 1','ansprechpartner 2') u.s.w

Gruß Thomas
 
Irgendwie versteh ich nicht so ganz was du überhaupt machen willst.

Du hast ein Formular wo du den/die Namen von Ansprechpartnern einer bestimmten Firma eingibst und dann machst du eine Abfrage die die Namen der Ansprechpartner ausgibt !!

Erklär doch mal worum es geht vielleicht fällt dann jemand eine Lösung zu dem Problem ein.

Gruß Thomas
 
Hi,

Vorausgesetzt es gibt eine bestimmte Anzahl Ansprechpartner und es können daraus die verschiedensten Kombinationen gebildet werden, dann ist eine Auswahlliste wohl nicht geeignet.

Doch, natürlich. Man kann Auswahllisten ja mit "multiple" deklarieren, so dass man beliebige Einträge auswählen kann.
Aber es gibt ja eh keine vordefinierte Auswahl.

@Thomas: Es ist trotzdem keine gute Idee, ein Formular so zu gestalten, dass man in einem Eingabefeld SQL-Syntax berücksichtigen muss. Vor allem musst Du es dann ja, wie gesehen, trotzdem nochmal nachbearbeiten. Warum also nicht gleich im PHP-Script die empfangenen Werte zerpflücken und daraus den erforderlichen String zusammensetzen?

Such Dir ein Trennzeichen aus, um die einzelnen Ansprechpartner abzutrennen. Das kann z.B. auch ein Zeilenumbruch sein (wäre für mich die ergonomischste Variante). Dann nimmst Du das Textfeld per [phpf]explode[/phpf] auseinander, wendest per [phpf]array_map[/phpf] noch [phpf]mysql_real_escape_string[/phpf] auf jeden Eintrag an und setzt das dann mit [phpf]implode[/phpf] und geeignetem $glue wieder zu einem String zusammen. Das ist doch nur ein Dreizeiler:

PHP:
$ansprechpartner = explode($delimiter, $_POST['ansprechpartner']);
$ansprechpartner = array_map(
      create_function('$element', 'return mysql_real_escape_string($element);'), 
      $ansprechpartner);
$sql = '... IN (\'' . implode('\',\'', $ansprechpartner) . '\')';

LG
 
@kuddeldaddeldu
Stimmt an die Möglichkeit der Mehrfachauswahl hab ich gar nicht gedacht, Punkt für Dich.

Ich hab nirgends geschrieben das ein Eingabefeld genommen werden soll. Falls Du das hier meinst:

Du hast ein Formular wo du den/die Namen von Ansprechpartnern einer bestimmten Firma eingibst und dann machst du eine Abfrage die die Namen der Ansprechpartner ausgibt !!

Das war als Frage gemeint. Den das Vorhaben erscheint mir irgendwie unlogisch. Warum gibt man einen Namen als Parameter ein um sich dann den Namen auszugeben
 
Hallo

Das Beispiel von kuddeldaddeldu hilft mir schon mal weiter.
Ich würde das Komma als Trennzeichen nehmen.
Bleibt nur noch das Problem wie prüfe ich ob die Eingaben richtig sind?

Richtig wäre 1,2,3
Falsch wäre 1 , 2,,3 u.s.w

PHP:
if(preg_match('/^abteilungen/', $key)) {
        if($value[$i] !=""){
        $value[$i] = trim($value[$i]);
        if (!preg_match(

Kann man das mit preg_match lösen ?

Gruß Thomas
 
Hä, ich dachte, das wäre eine Freitexteingabe. Da gibt's doch kein richtig oder falsch. Wenn es doch eine bestimmte Anzahl an Möglichkeiten gibt, dann solltest Du definitv eine Auswahlliste nehmen.

LG
 
Hallo

Danke an alle.

Habe es jetzt so gelöst?

$werte = array("''", "'''", "''''", "'''''", "''''''", "'''''''", "''''''''");
$_POST['abteilungen'][$w] = str_replace($werte, "'", $_POST['abteilungen'][$w]);

Gruß Thomas
 
Zurück