PHP Datensätze finden, in denen ein bestimmtes Feld keinen zugewiesenen Wert hat

mikelsdump

Ensign
Registriert
Aug. 2008
Beiträge
133
Hallo zusammen,

ich schon wieder :)

Ich habe folgendes Problem:
Ich möchte aus einer Tabelle nur bestimmte Datensätze ausgeben, und zwar alle (!) diejenigen, wo in der Spalte DATETIME noch nichts eingetragen wurde.

Wie mache ich das?:confused_alt:
 
Hi,

das ist kein PHP sondern (ich nehme an) MySQL.

Hat dein DateTime-Feld einen Default Wert oder ist, wenn nichts drin steht einfach NULL drin?

Bitte lesen

VG,
Mad
 
Super! Genau das was ich gesucht und nicht gefunden hab! Merci beaucoup!:)

EDIT: Leider zu früh gefreut. Siehe mein nächstes Post.
 
Zuletzt bearbeitet: (Siehe mein nächstes Post)
Hi,

wenn du dann eine Lösung hast die funktioniert wäre es super, wenn du sie hier noch reinschreibst, damit der nächste die Lösung auch schnell findet :)

Und: Gern geschehen :)

VG,
Mad
 
Where datumspalte IS NULL

ist ok, aber in vielen Anwendungen kann es sein, dass die Spalte mit leer beschrieben wird. Also würde ich an Deiner Stelle noch folgendes machen:

WHERE datumspalte IS NULL OR datumspalte = ''

Um auch komplett leere Spalten einzubeziehen, denn NULL ist nicht gleich LEER.
 
Hmmm...zu früh gefreut.

Ich habe das jetzt in diesen Code gepackt:

PHP:
//Ermitteln der Aufträge anhand Suche nach leerem Endzeit-Feld
 $sql = "SELECT * FROM `einzelschritt` WHERE `Endzeit` IS NULL"; 
 $query = mysql_query($sql) OR die(mysql_error()); 
 //liste die ergebnisse der vorigen abfrage in die variable $A
 list ($A) = mysql_fetch_row($query);
print_r ($A);

Aber print_r gibt nur die Zahl 1 aus, obwohl ich über 100 Datensätze habe, wo in der DATETIME-Spalte "Endzeit" NULL drinsteht...woran liegt das?
 
Hi,

ist es denn SICHER, dass in der Spalte wirklich NULL steht? Kannst du dich mit QueryBrowser / MySQL Administrator / phpMyAdmin mal auf die DB verbinden und ein paar Screenshots machen?

Und mach mal

$arr = print_r(mysql_fetch_row($query), true);
echo $arr;

Und geb mal Bescheid was er da ausgibt.


VG,
Mad
 
Zuletzt bearbeitet:
PHP:
$time = array();
$res = mysql_query("SELECT * FROM einzelschritt WHERE Endzeit IS NULL OR Endzeit = ''");
while($bla = mysql_fetch_array($res)) $time[] = $bla;

echo "<pre>".print_r($time,true)."</pre>";
 
Hallo,

wieso machst Du nicht "SELECT COUNT(Endzeit) FROM Einzelschritt WHERE Endzeit IS NULL"?


Edit:

Mein Vorschlag ist nicht falsch, aber hier fehl am Platz... :)


Gruß
Frog33r
 
Zuletzt bearbeitet:
@Frog33r
Er will ja nicht wissen wie viele Datensätze noch nicht komplett ausgefüllt wurden sondern welche Datensätze noch nicht komplett sind.
 
Adam, dein Code funktioniert perfekt! Vielen herzlichen Dank! :)

Kannst du mir noch erklären, was genau die Schleife hier macht?

So wie ich es verstehe lautet die Schleife:

So lange wie $bla einen array aus der query $res ziehen kann, ist die Variable $time gleich der variable $bla.
 
Zuletzt bearbeitet: (Siehe neues Post)
Solange mysql_fetch_array($res) in $bla geschrieben werden kann einen Wert ungleich NULL schreiben kann, hänge mir $bla an das Array $time an. ;)
 
Zuletzt bearbeitet:
Okay, vielen Dank. Jetzt hab ich's auch KAPIERT:)

EDIT: Bei meinem Code, der nicht so ausgeführt wurde, wie er sollte, habe ich den Fehler doch noch selbst finden können. Danke aber trotzdem :)
 
Zuletzt bearbeitet:

Ähnliche Themen

Antworten
6
Aufrufe
7.248
hroessler
H
Zurück
Oben