php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.07.2005, 16:31  
Gast
 
Beiträge: n/a
Standard Mal wieder eine Blätterfrage ;)

Also fangen wir an,

Ich habe in meiner Bilder Script eine Tabelle mit ID´s und das Datum als Timestamp. Nun kann es sein das ich ein Bild hinzufüge was in der Vergangenheit liegt somit hat es eine höhere ID als der vorherige, aber ist dennoch älter.

somit geht das nicht:
SELECT * FROM pics WHERE id > '$id' LIMIT 1;

Ja ich weiss ich könnte einfach den Timestamp über geben ala:
SELECT * FROM pics WHERE timestamp > '$timestamp' LIMIT 1;

das möchte ich aber nicht ... gibt es eine Möglichkeit das Problem über JOIN oder weiss Gott was zu lösen ?

Danke Christian.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.07.2005, 16:50  
Gast
 
Beiträge: n/a
Standard

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Order by timestamp

Gruß
phpfan
  Mit Zitat antworten
Alt 03.07.2005, 18:00  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von phpfan
16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Order by timestamp

Gruß
phpfan
Also das mit dem Select solte als Beispiel gelten, also keine Angst :Y

Das Problem bei Order by timestamp ist das er dann beim ersten oder letzten Anfängt aber nicht beim nächsten.
  Mit Zitat antworten
Alt 03.07.2005, 18:03  
Gast
 
Beiträge: n/a
Standard

Aus der Doku:

Die LIMIT-Klausel wird benutzt, um die Anzahl von Zeilen, die vom SELECT-Statement zurückgegeben werden, zu beschränken. LIMIT erwartet ein oder zwei numerische Argumente.

Wenn zwei Argumente angegeben sind, legt das erste den Offset der ersten Zeile fest, die zurückgegeben wird, und das zweite gibt die maximale Anzahl von Zeilen an, die zurückgegeben werden. Der Offset der anfänglichen Zeile ist 0 (nicht 1):

mysql> select * from tabelle LIMIT 5,10; # Zeilen 6 bis 15 zurückgeben

Wenn ein Argument angegeben wird, stellt es die maximale Anzahl von Zeilen dar, die zurückgegeben werden:

mysql> select * from tabelle LIMIT 5; # Die ersten 5 Zeilen zurückgeben

Mit anderen Worten ist LIMIT n äquivalent zu LIMIT 0,n.


Gruß
phpfan
  Mit Zitat antworten
Alt 03.07.2005, 21:00  
Gast
 
Beiträge: n/a
Standard

danke für deine antwort, aber leider hilft mir das bnei meinem problem kein millimeter weiter.. hier geht um die blätter zm nächsten id wert geornet nach zeit und nicht wieviele ...
  Mit Zitat antworten
Alt 03.07.2005, 22:11  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ORDER BY und LIMIT sind aber die antworten. ansonsten tutorials durchackern.
axo ist offline   Mit Zitat antworten
Alt 07.07.2005, 12:11  
Gast
 
Beiträge: n/a
Standard Re: Mal wieder eine Blätterfrage ;)

Zitat:
Zitat von cg
[...]
Ja ich weiss ich könnte einfach den Timestamp über geben ala:
SELECT * FROM pics WHERE timestamp > '$timestamp' LIMIT 1;

das möchte ich aber nicht ...
[...]
Darf ich fragen, warum du das nicht möchtest? Warum einfach, wenn es auch kompliziert geht?
  Mit Zitat antworten
Alt 07.07.2005, 21:42  
Gast
 
Beiträge: n/a
Standard

Dann habe ich ein Problem mit gleichen Timestamps (Bewegt sich das next klicken im Kreis) und ich wolte alles fein über den Index "ID" lösen..

christian
  Mit Zitat antworten
Alt 09.07.2005, 12:11  
Gast
 
Beiträge: n/a
Standard

OK, dann würde ich dir vorschlagen folgendes zu machen:
Am Anfang machst du
SELECT id FROM pics [WHERE timestamp > '$timestamp'] ORDER BY timestamp [DESC/ASC]
Falls du schon von Anfang an eine Einschrängung auf den Timestamp hast, kannst du die WHERE-Bedingung mit rein nehmen. Dadurch hast du alle benötigten IDs in einem Array, sortiert nach timestamp (je nach Wunsch ASC oder DESC). Bei der Anzeige kannst du dich dann an Hand des Arrays durch deine Bilde "hangeln" und rufst die Bilder dann per
SELECT * FROM pics WHERE id = $id
auf. Auf das LIMIT kannst du dann verzichten, da die id (hoffentlich) eindeutig ist.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.