Mail mit mehreren Anhängen, Pfad aus Datenbank

Das mit in_array scheint funkioniert auch nicht, ausser ich benutze es falsch:

PHP:
foreach($partie as $partienummer){
		$DbCon->DoSQL(" SELECT 
							Pfad,
							Partie
						FROM
							suchmaschine
						WHERE
							 Partie = '". $partienummer ."'");

		if($DbCon->GetNumRows()) { 
			while($row1 = $DbCon->GetResObject()){
				
				 if( in_array($row1->Partie, explode("," , $_POST['liste'])) ){
				echo('<a href="'.$row1->Pfad.'">'.$row1->Partie.'</a><br/>');
				 }
				 else{
					 echo('Keine Massliste vorhanden für P.'.$row1['Partie'].'!<br />');
				 }
				$pfad[] = $row1->Pfad;
			}
		}
	}

Es werden zwar die Links angezeigt, aber der Hinweis nicht.

$partienummer wird mit der Abfrage erstellt, wo ich IN verwende.
 
PHP:
foreach($partie as $partienummer){ // was ist $partie?
        $DbCon->DoSQL(" SELECT 
                            Pfad,
                            Partie
                        FROM
                            suchmaschine
                        WHERE
                             Partie = '". $partienummer ."'"); // Sollte das nicht mal mit IN gemacht werden? Ist auf jeden Fall performancesparender als n Querys abzufeuern

        if($DbCon->GetNumRows()) { 
            while($row1 = $DbCon->GetResObject()){
                
                 if( in_array($row1->Partie, explode("," , $_POST['liste'])) ){ // Wenn die Liste Leerzecihen enthält, dann geht das so nicht
                echo('<a href="'.$row1->Pfad.'">'.$row1->Partie.'</a><br/>');
                 }
                 else{
                     echo('Keine Massliste vorhanden für P.'.$row1['Partie'].'!<br />');
                 }
                $pfad[] = $row1->Pfad;
            }
        }
    }

Wie sieht's so aus?
PHP:
$_POST['liste'] = '12, 34, 56, 78, 90'; // Testwerte
if( isset($_POST['liste']) && preg_match('/^\d+ *(, *\d+)*$/', $_POST['query']) === 1 ){
  // gültige Eingabe
  $sql = 'SELECT Pfad, Partie FROM suchmaschine WHERE Partie IN ('.$_POST['liste'].')';
  $result = mysql_query($sql);
  $found = array();
  while( $row = mysql_fetch_object($result) ){
    $found[] = $row->Partie;
    // Andere Ausgabe
  }
  $diff = array_diff( array_map('trim', explode(',', $_POST['liste'])), $found);
  foreach( $diff as $entry ){
    echo $entry, ' wurde nicht gefunden.';
  }
}
 
Zuletzt bearbeitet:
Danke Timestamp, funktioniert perfekt.

edit:

Jetzt will ich noch nen Upload für eine Sonderdatei einbauen.

Mein Upload Code schau so aus.
PHP:
	  if(isset($_FILES['zusatz']) AND "" != $_FILES['zusatz']['tmp_name']){
		 $pfad1 = "./Upload/";
		 $pfad2 = $pfad1.$_FILES['zusatz']['name'];
		  
		if(!is_dir($pfad1)){
			mkdir($pfad1,0,0777);
		}
			// Alternativ:            and   $_FILES['probe']['size']
		move_uploaded_file($_FILES['zusatz']['tmp_name'], $pfad2);
		
		if(file_exists($pfad2)){
			$mail->AddAttachment($pfad2);
			unlink($pfad2);
		}
	}

Leider kriege ich, wenn die zusatzdatei angehängt ist, nur eine Leere Mail.

Mein Vorhaben ist, das ich die Masslisten aus der DB hole und den Lieferschein extra anhängen kann.

Das Dateifeld soll aber Optional sein.
 
Zuletzt bearbeitet:
Zurück