ID suchen bis $result=1 ! MySQL

no-fx -> Junge

Mitglied
Also ich hab folgendes prob..

Ich hab sone art Banner Manager geproggt,
nun hab ich 2 optionen, die man wählen kann..

die eine ist die banner mit random auszulesen,
und die andere von der ersten id nach unten.

Ne normale tabelle mit ids sieht ja etwa so aus;
1
2
3
4
Nun hab ich that problem wenn man eine id löscht,
z.B die 3, siehts so aus:
1
2
4

Ok ich nehm an das man die tabelle nicht so einstellen kann, das die ids immer eins runter rutschen!

Jetzt hab ich mir gedacht, das ich in einer While schleife einfache die id immer +1 rechne bis $result="1"; ist.

Nun kann ich mir schwär vorstellen wie das funktionieren sollte..???

Ich danke im Voraus auf eure antworten


Mfg;
rEd-gOrAn
 
Gehen würde es theoretisch recht einfach indem du immer den Inhalt der bei der id gespeichert ist abrufst, prüfst ob was da war und wenn ned weiter suchst. sprich:
PHP:
while($inhalt["0"]=="")  
  {
   $fetch = mysql_query("SELECT blabla FROM table WHERE id = 1;", $conn);
   mysql_fetch_row($fetch);
  }
Ist aber etwas langsam wenn mal ein größeres Loch in der DB kommt.

Ich würde mal nachsehen ob es eine Funktion in MySQL gibt mit der man zufällig einen Datensatz auswählen kann.
 
hmmm

Also man kann ja auch angäblich
mit dem SQL befehl
(Beispiel: SELECT * FROM tab ORDER by RAND() LIMIT 1)

aber that funkzt irgendwie ned....

Dann wärs ja bei der Random funktion in ordnung..
aber was wenn der die ids rutnerwirbelt..??
 
es gibt aber eine andere Möglichkeit mit LIMIT

SELECT * FROM tabelle ORDER BY id LIMIT x,1

gibt dir genau einen Datensatz, und zwar den Nummer x

Wenn Du jetzt x per Zufallszahl bestimmst bekommst Du eben einen zufällig ausgewählten Datensatz, und wenn Du x hochzählen lässt bekommst Du immer den folgenden Datensatz. ;)
die ID ist dann aber immer noch erforderlich, denn damit behältst Du die Reihenfolge !!! (MySQL kennt ja selbst keine Reihenfolge der Datensätze)

Gruß
Dunsti
 

Neue Beiträge

Zurück