| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

04-03-2009, 16:21
|
|
Olli4
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 112
|
|
Fehlende Daten auslesen
Hi
Ich bin zurzeit an einem Newsscript dran, was jeden Tag einen Eintrag aufweist. Sobald wer Online geht, wird das Datum in mysql (date 000-00-00) eingefügt.
Soweit so gut. Nun lese ich diese mittels sql aus und gebe diese mit mysql_fetch_array aus.
Ungefähr so:
PHP-Code:
$sql = "SELECT * FROM newsdaten ORDER BY datefeld DESC";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
...
}
Sagen wir das Ergebnis ist folgendes:
2009-01-02
2009-01-03
2009-01-06
2009-01-08
2009-01-09
Das klappt auch wunderbar so. Nun würde ich gerne das er mir auch die anderen Daten ausgibt die dazwischen liegen. Also in dem beispiel fehlt ja der 4, 5 und 7 Januar
Kann ich irgendwie bei der SQL Abfrage einfügen das er mir alle Daten zwischen dem 01.01 und dem 09.01 ausgibt, und wo kein eintrag vorhanden ist einfach die anderen Felder in der Tabelle einfach mit 0 ausgegeben werden oder so?
Habe bisher leider nichts dazu finden können.
Danke schonmal für eure Tipps.
Gruss
Olli4
|

04-03-2009, 16:40
|
|
ArSeN
Registrierter Benutzer
|
|
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
|
|
Ich glaub der Thread hier gehört eigentlich eher ins SQL-Forum, aber: Du könntest ein SELECT DATE() ... machen, und deine Daten via LEFT JOIN anhand des (USING) "datefeld" verknüpfen. Dann hast du das Datum definitiv ausgewählt, und falls er auchnoch einen Eintrag dazu findet (LEFT JOIN) die Daten dazu. Du musst dabei natürlich aufpassen, dass du die Grenzen richtig setzt, weil du sonst unwahrscheinlich viele Daten haben wirst.
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
|

04-03-2009, 16:40
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Re: Fehlende Daten auslesen
Zitat:
Original geschrieben von Olli4
Kann ich irgendwie bei der SQL Abfrage einfügen das er mir alle Daten zwischen dem 01.01 und dem 09.01 ausgibt, und wo kein eintrag vorhanden ist einfach die anderen Felder in der Tabelle einfach mit 0 ausgegeben werden oder so?
|
Das laesst sich wohl mittels eines SELF JOIN machen ...
Aber ich wuerd's eher scriptseitig machen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

04-03-2009, 16:54
|
|
Olli4
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 112
|
|
Hi ihr beiden
Danke für eure Antworten.
Das mit select date() klingt fast am besten, da die fehlenden Datensätze ja auch mit angezeigt werden sollen und ich 15 anzeigen lassen möchte ohne eine datumslücke. Aber wie könnte dies aussehen`?
Habe jetzt mal bei google noch geschaut nach select date() aber nichts gefunden was mir bisher weiterhelfen könnte.
Hab auch mal gesucht ob ich ein php schnippsel oder so finde wo mir leere einträge einfügt von den fehlenden. Aber auch da bisher ohne erfolg.
gruss
Olli4
|

04-03-2009, 16:56
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
warum nicht so was in der art?
PHP-Code:
SELECT
bla,
blubb,
IFNULL(datefeld, fehlendes_datum())
ORDER BY
datefeld DESC
peter
EDIT: vergessen! hab was falsch verstanden
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

04-03-2009, 16:59
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Original geschrieben von Olli4
Hab auch mal gesucht ob ich ein php schnippsel oder so finde wo mir leere einträge einfügt von den fehlenden. Aber auch da bisher ohne erfolg.
|
Fuer sowas einfaches verwendet man nicht Google, sondern Brain.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

04-03-2009, 17:01
|
|
ArSeN
Registrierter Benutzer
|
|
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
|
|
Zitat:
Original geschrieben von Olli4
Aber wie könnte dies aussehen`?
|
Hierfür müsstest du dich lediglich mal mit dem Thema JOINs vertraut machen (gibts im SQL-Forum auch n guten Sticky Thread für) - dann kommst du selbst auf die Lösung.
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
|

04-03-2009, 17:05
|
|
Olli4
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 112
|
|
Hi
Danke für eure Antworten:
@wahsaga da magst du wohl recht haben aber ich komm einfach nicht drauf. Hast du ggf ein anhaltspunkt wie es aussehen könnte? Muss ja nichts fertiges sein.
@ArSeN Danke. Den Thread kenn ich jedoch. Wie man mit Joins etc arbeitet ist mir bekannt. Mein problem liegt eher darin, mysql alle Daten zwischen x und y (0000-00-00) auszugeben, ohne angabe einer Tabelle, und wenn ich die Tabelle für die news nehme fehlen entsprechend ja wieder die Einträge.
Hoffe ihr könnt mir helfen das ich da weiter komme *g*
Gruss
Olli4
|

04-03-2009, 17:39
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
SQL-Daten auslesen, in Array packen (ggf. mehrdimensionales), auf oberster Ebene das Datum als Schluessel.
for-Schleife von Startdatum bis Enddatum, dabei jeweils schauen, ob Eintraege im Datenarray vorliegen - wenn ja, diese ausgeben, sonst nur Datum und "keine Eintrage vorhanden".
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

04-03-2009, 17:40
|
|
Olli4
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 112
|
|
Manchmal sieht man den wald vor lauter bäumen nicht mehr  Danke dir.
Gruss
Olli4
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|