Datensätze durchnummerieren

Eistee

Erfahrenes Mitglied
Hi, hab mal ne kleine Frage.
Ich hoffe, ihr habt ne passenden Antwort :)

Ich hab ein gallery-Script geschrieben.
Um Bilder in die DB einzulesen, gibt man einfach den Pfad zum Ordner mit den entsprechenden Bildern an. Das Script liest dann automatisch alle Bilder in dem Ordner aus, und speichert einige Infos in der DB.

Struktur der DB:
Code:
|   NAME   |   DATUM   |   KOMMENTAR   |   RATING   |   ID   |
"ID" ist ein auto_increment Feld
Alle Bilder die zu einer Gallerie gehören (in einem Ordner liegen) haben den selben Wert im Feld "DATUM".
Man kann sie also über ID und DATUM exakt zuordnen.
Soweit so gut :)

Ich möchte aber gern die Struktur so verändern, dass alle Bilder aus einem Ordner (mit dem selben Datum) noch einmal durchnummeriert werden - unabhängig von dem bestehden Feld "ID"
So sollen alle Bilder mit dem Datum "0105" z.B. von 1 bis 50 (für 50 Bilder) durchnummeriert werden und alle Bilder mit dem Datum "0205" von 1 bis 40 (für 40 Bilder).
Mit der jetzigen Struktur werden die Bilder vom 2.5. von 50 bis 90 nummeriert.
Soweit klar? :)

Ich hoffe ihr versteht, was ich meine und könnt mir nen Tip geben, wie ich das hinbekomme.
Gibts da vielleicht irgendwelche Funktionen in MySQL, die genau dieses Problem abdecken?

Bin für jede Hilfe dankbar.
 
Folgende Lösung würde ich dir hierzu anbieten:

PHP:
$query=mysql_query("SELECT * FROM tabelle WHERE datum='0105'");
for($i=1;$data=mysql_fetch_array($query);$i++)
{
  @mysql_query("UPDATE tabelle SET $id2='$1' WHERE id='$data[id]'");
}
 
PHP:
//Hier wird die Abfrage für den Datumseintrag erstellt
$query=mysql_query("SELECT * FROM tabelle WHERE datum='0105'");
//Hier werden erden alle Einträge mit dem korrekten Datumseintrag in einer Schleife abgerufen in der gleichzeitig die Variable $i von 1 aus immer um einen hochgezählt wird
for($i=1;$data=mysql_fetch_array($query);$i++)
{
  //Hier werden den Einträgen die in der Schleife ausgelesen werden durchnummeriert
  @mysql_query("UPDATE tabelle SET $id2='$1' WHERE id='$data[id]'");
}

Ich hoffe, das reicht dir an Erklärungen...
 
Ich versteh eigentlich blos diesen Teil hier nicht ;)
Code:
$id2='$1'
Müsste $1 nicht eigentlich $i heissen?

Ich nehme mal an, dass in $id2 der Name einer Spalte gespeichert ist, in den die neuen IDs geschrieben werden... oder?
 
Verdammt, Sorry :(
Sind mir glatt 2 Tippfehler unterlaufen :(
So müsste es richtig heissen:

PHP:
@mysql_query("UPDATE tabelle SET id2='$i' WHERE id='$data[id]'");

Ich nehme mal an, dass in $id2 der Name einer Spalte gespeichert ist, in den die neuen IDs geschrieben werden...
Jo, das ist der Spaltenname, wo die Durchnummerierung eingefügt wird...
 
Zurück