Datensatz auslesen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
auge
auslese
auswahl
befehl
code
dank
datensatz
datum
format
haut
hilfe
limit
liste
mache
machen
ordern
prinzip
tabelle
tag
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Indem du in der SQL-Abfrage eine Where-Bedingung einbaust.
z.B. SELECT * FROM Tabellenname WHERE ID=3 -
Dann hast du nicht zwingend den dritten Datensatz, wenn ein Datensatz mit der einer davorigen oder derselben ID gelöscht wurde. Ich mache mir jetzt nicht die Mühe zu probieren wie das geht, da es in meinen Augen keinen Sinn macht (denn man übergibt meistens einen Bezug auf die Tabelle von der man auslesen möchte).
-
Dann hast du nicht zwingend den dritten Datensatz, wenn ein Datensatz mit der einer davorigen oder derselben ID gelöscht wurde. Ich mache mir jetzt nicht die Mühe zu probieren wie das geht, da es in meinen Augen keinen Sinn macht (denn man übergibt meistens einen Bezug auf die Tabelle von der man auslesen möchte).
Da gebe ich dir Recht, ist nicht so toll. Allerdings war oben dies als Beispiel angegeben und deshalb hab ich damit mal argumentiert.
Man sollte natürlich ein klareres Kriterium nutzen.
-
Danke, war ne hilfe! Mit FROM und LIMIT natürlich.
Das bau ich bei meiner Newsansicht ein. Es soll immer der aktuelle Eintrag kommen. Doch daneben
soll ne liste sein wo man auch die alten Newseinträge lesen kann.
Und dann brauch ich zB den 3. oder 4. oder 1. ...
Hab ich schon gelöst, danke! Und haut supi hin.
Aber noch was anderes. Auf der Titelseite möcht ich mir die aktuellen gästebucheinträge anzeigen lassen.
In meiner Datenbank hab ich einen Feldtyp timestamp. Ich möchte die Einträge der letzten 7 Tage haben.
Wird ca so gehen:
$query = \"SELECT * FROM `gaestebuch` ORDER BY Datum DESC-7Tage\";
kann das jmd richtigstellen?? DANKE -
Danke, war ne hilfe! Mit FROM und LIMIT natürlich.
Das bau ich bei meiner Newsansicht ein. Es soll immer der aktuelle Eintrag kommen. Doch daneben
soll ne liste sein wo man auch die alten Newseinträge lesen kann.
Und dann brauch ich zB den 3. oder 4. oder 1. ...
SELECT * FROM tabelle ORDER by ID ASC LIMIT 1, 5 (listet ab dem zweiten (1, erster Datensatz = 0) Datensatz fünf (5) Datensätze auf)
/EDIT Logikfehler
Beitrag geändert: 18.7.2008 11:38:39 von trueweb -
jop das ist mir klar, ich möchte aber alle Einträge die in der letzten woche
sprich 7 Tage, eingetragen wurden und wenn kein Eintrag in der letzten woche
gemacht wurde würd ich bei der Startseite das Feld neue Gästebucheinträge
gar nicht anzeigen lassen... alles kein problem mit php. Meine Frage war wie
man mittels mysql und select datumsmäßig abfragen macht. -
Kommt ganz drauf an, wie dein Datumsformat ist, aber im Prinzip lautet die Abfrage
SELECT * FROM `tabelle` WHERE datum>datum-7Tage ORDER BY id
Wobei du es auch anders ordnen kannst und nicht nach id.
Der Ausdruck datum>datum-7Tage ist wie gesagt abhängig von deinem Datumsformat, bei einem Timestamp müsstest du nur die Sekunden für 7 Tage abziehen (60*60*24*7). -
hi tct, kannst mir das noch in nen select befehl einpaken müsste sonst noch urlang im
netz herumsuchen...
SELECT * FROM `tabelle` WHERE datum_tmst > (??heute??-604800)
datum_tmst ist im format timestamp
Bitte um Richtigstellung!! DANKE -
;)SELECT id FROM tabelle ORDER BY id ASC LIMIT 3,1
-
hhh??? Das is keine Hilfe.
Ich möchte die Datensätze die nicht älter sind als 1 Woche.... -
hi tct, kannst mir das noch in nen select befehl einpaken müsste sonst noch urlang im netz herumsuchen...
Im Prinzip stimmt dein Code doch schon so, du musst nur ??heute?? durch die momentane Zeit ersezten. Entweder du definierst vorher irgendwo $time=time(); und setzt das für ??heute?? ein, oder du lässt MySQL die Arbeit selbst machen, indem du UNIX_TIMESTAMP() verwendest.
SELECT * FROM `tabelle` WHERE datum_tmst > (UNIX_TIMESTAMP()-604800)
Könnte so gehen. -
Hi, das funktioniert nicht!
WHERE datum_tmst > (UNIX_TIMESTAMP()-604800)
es schrenkt die Auswahl nicht ein, auch wenn ich nichts subtrahiere
werden alle datensätze ausgelesen.
Auch mit time() kann ich nicht vergleichen da es ein ganz anderes format hat wie timestamp!
Beitrag geändert: 20.7.2008 13:53:37 von finch -
<?php $time = time() - 604800; $query = mysql_query(\"SELECT * FROM tabelle WHERE time > \'$time\'\"); ?>
-
auch das schrenkt die auswahl nicht ein, alle datensätze werden ausgegeben...
-
SELECT * FROM table ORDER BY id ASC LIMIT 3,1
würd ich mal sagen... :D
Beitrag geändert: 21.7.2008 8:55:30 von tarabas -
So langsam würde ich mich um die Speicherung und Struktur deiner Tabelle sorgen machen, denn wenn beide bisher gewählten Wege nicht funktionieren, würde ich fast vermuten, dass da irgendwo der Wurm in der Tabelle steckt...
-
Wieso schwer wenns einfach geht? Gibt doch die netten Funktionen von MySQL
WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) > datum
Wobei Datum das MySQL Feld bezeichnet.
http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html
Google is ya friend...
Beitrag geändert: 22.7.2008 0:40:59 von pinguinfreund -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage