php Ausgabe mit id NOT IN (1,2,3)

Nochmal:
In der foreach-Schleife gibst du aus:
PHP:
foreach ($pdo->query($sql) as $mitarbeiter_urlaub) { 
echo $mitarbeiter_urlaub[id].',';
?>
Dann ist bei
PHP:
$id = $mitarbeiter_urlaub['Mitarbeiter_id'];
der zuletzt ermittelte Wert aus der Schleife in $id und das ist dann die 128.

Und auch nochmal: Mit "Richtig debuggen" hättest du das selber herausfinden können. Ich poste die Zeilen mit "Richtig debuggen" nicht aus Langeweile, die haben durchaus ihren Sinn.
 
folgendes Ergebnis bekomme..
Ich habe die Fotos der Mitarbeiter für diese Dokumentation deaktiviert.
Ich bekomme jetzt 2 Zeilen.
In der ersten Zeile fehlt der Mitarbeiter mit id 104
in der zweiten Zeile der Mitarbeiter mit der id 129
fehler.png
 
jetzt habe ich den Fehler gefunden!

das erste Script gibt 104,129, aus
das letzte Komma darf nicht in id NOT IN (104,129,) ausgegeben werden
 
Und jetzt lösen wir das ohne im Frontend-Code rumzuturnen.
"Zeige Alle Mitarbeiter, welche NICHT im Urlaub sind"
Tabelle1 = "Urlaubstabelle" (Detail)
Tabelle2 = Mitarbeiter (Master)
SQL:
SELECT DISTINCT T2.ID, T2.Filiale, T2.Abteil FROM Tabelle2 AS T2
LEFT JOIN Tabelle1 AS T1 ON T1.Mitarbeiter_ID=T2.ID AND
//Keine Ahnunung von PHP --> $datum etc. umbauen damit der Code das einfügen kann
$datum BETWEEN T1.urlaub_von AND T1.urlaub_bis
WHERE T1.Mitarbeiter_ID IS NULL

EDIT: in deinem ersten Skript ist
$mitarbeiter_urlaub ein Array.
Wieso benutzt du nicht Implode?
Dann sparst du dir das Gehample mit dem Komma
 
Zuletzt bearbeitet:
Hallo Zvoni,
erstmal vielen Dank für Deine Antwort.
Der Versuch mit LEFT JOIN zu arbeiten, übersteigt mein Wissen bezgl. PHP.
Ich habe genau mit dieser Lösung letzte Woche fast 4 Tage lang rumgedoktert und bin zu keinem Ergebnis gekommen.

Dein Script habe ich nun folgend umgesetzt.

PHP:
<?php
$sql = "SELECT DISTINCT id, filliale, abteil, mitarbeiter_img FROM users AS id
LEFT JOIN Mitarbeiter_Urlaub AS Mitarbeiter_id ON Mitarbeiter_id=id
WHERE id IS NULL";
foreach ($pdo->query($sql) as $mitarbeiter_urlaub) {

echo $mitarbeiter_urlaub['id'];
}
?>

Leider bekomme ich folgende Fehlmeldung:

Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in field list is ambiguous in /is/htdocs/wp13538449_2FWD4TITGV/www/cj/Webseite/termin/test2.php:48 Stack trace: #0 /is/htdocs/wp13538449_2FWD4TITGV/www/cj/Webseite/termin/test2.php(48): PDO->query('SELECT DISTINCT...') #1 {main} thrown in /is/htdocs/wp13538449_2FWD4TITGV/www/cj/Webseite/termin/test2.phpon line 48
 
Zurück