SQL Where In Array

Ich habe es jetzt so versucht

PHP:
$adressen = $_POST['mails'];
   $adressen = str_replace("\n",",",$adressen);
   $adressen = str_replace(" ","",$adressen);
   $test3 = str_replace(' ','',$adressen);
   
   echo $test3;
   
   $string = "max@mustermann.de ,mustermann@max.de ,maxmuster@mann.de";
   $string = str_replace(" ","",$string);
   $string = str_replace(' ','',$string);
   
   echo "<p>".$string;

Und das seltsame an der Sache ist, dass ich da zwei verschiedene Ausgaben bekomme.

max@mustermann.de ,mustermann@max.de ,maxmuster@mann.de

max@mustermann.de,mustermann@max.de,maxmuster@mann.de

Das Problem mit dem Leerzeichen habe ich also nur bei dem String, der über die Textarea und das POST reinkommt


edit:
Nun habe ich den String ohne Lehrzeichen in der Abfrage verwendet und ich bekomme nach wie vor keinen Wert zurück - nun nicht einmal mehr die ID der letzten eMail, sondern gar nichts mehr. Also liegt da noch irgendwo der Hund begraben, die Leerzeichen alleine können es nicht sein
 
Zuletzt bearbeitet:
Heißer Tipp, vielen Dank! Das Leerzeichenproblem wäre hiermit gelöst, aber die SQL Abfrage funktioniert leider nach wie vor nicht.


Sieht jetzt wie folgt aus:

PHP:
   $adressen = $_POST['mails'];
   $test3 = str_replace("\r\n",",",$adressen);
 
   
   echo $test3;


  $sql = "SELECT id from mails WHERE mail IN ($test3)";
  $res = mysql_db_query($mysqldb, $sql, $mysql);
    while ($row = mysql_fetch_assoc($res)) {
    
       echo $row['id'] . "<br>"; 
      
      }


Der String $test3 sieht nun so aus:

max@mustermann.de,mustermann@max.de,maxmuster@mann.de
 
max@mustermann.de,mustermann@max.de,maxmuster@mann.deYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@mustermann.de,mustermann@max.de,maxmuster@mann.de)' at line 1

Hab nun einfache Anführungszeichen hinzugefügt:

PHP:
  $sql = "SELECT id from mails WHERE mail IN ('$test3')";

Resultat: Fehlermeldung weg.
Gebe ich nun eine einzige eMail Adresse ins Textfeld ein, kommt die richtige ID zurück. Kaum sind es zwei oder mehr kommt gar nichts mehr zurück
 
Habe es jetzt mal nachgestellt, ist fast richtig dein Script.
Die Syntax von MySQL-IN() muss so aussehen:
PHP:
SELECT * FROM mails WHERE mail IN ('max@mustermann.de','muster@maxmann.de','maxmuster@mann.de')

PHP:
$str = "max@mustermann.de,muster@maxmann.de,maxmuster@mann.de";
$str = str_replace(',','\',\'',$str);

$sql = "SELECT * FROM mails WHERE mail IN ('".$str."')";
 
Zuletzt bearbeitet:
Zurück