Abfrageergebnis sortieren und Platz weiterverwenden

katlina

Mitglied
Hallo liebe Fories. Komme leider bei nem Problem alleine nicht mehr weiter und hoffe, Ihr könnt mir helfen. Und zwar mache ich eine Datenbankabfrage, lasse die Ergebnisse sortieren und mit $i++ durchnummerieren. So weit so gut. Nun möchte ich die Nummer, welche ein bestimmter Datensatz hat, weiterverwenden, weiß aber nicht, wie ich das anstellen soll.

Beispiel:

Spalte "Name" wird nach Alphabet sortiert, es sind drei Einträge insgesamt und es wird mit $i++ bis auf drei hochgezählt. Somit hat der Name "Schulze" die Nr. 3 erhalten. Und genau dieser Wert, also 3, soll nun weiter verwendbar sein. Vielleicht wird ja bei der Abfrage selbst auch schon ne Nummerierung vorgenommen. Das weiß ich nicht. Hoffe, Ihr versteht mich und jemand weiß, wie ich das machen kann.

Hier noch bisschen Code :

$res1 = mysql_query("SELECT * FROM kunden order by name");

$i = 1;
while ($zeile = mysql_fetch_array($res1))
{
$zaehler = $i++;
echo "$zaehler. $zeile[name]";

}

gibt aus:

1. Meier
2. Müller
3. Schulze

etc. und ich möchte z.B. die Nr. 3 von Schulze weiterverwenden.
Viele Grüße und schonmal Danke.
 
Die Frage ist, für was weiterverwenden?

Und die Frage danach wäre, warum könntest du nicht mit einem MySQL Feld arbeiten? Primary_key und auto_increment, so hätte jeder Kunde automatisch eine ID, die du nichtmal verwalten brauchst.
 
Zum Weiterverwenden als z.B. $nummer = ermittelte Nr. (also in dem Beispiel $nummer = 3) ID funktioniert nicht, da ID und Nr. nach der Sortierung nicht identisch sind. Trotzdem Danke für Deine Antwort :-)
 
Dann würde ich das Resultat der Abfrage in einem Array speichern.

PHP:
$res1 = mysql_query("SELECT * FROM kunden order by name");
while ($zeile = mysql_fetch_array($res1))
{
  $arr[] = $zeile;
}

Dadurch hast du einen fortlaufenden Index für die Namen, der bei 0 startet.
 
Kann ich den auch bei 1 starten lassen ? Weiß das jetzt auch nicht anzuwenden: $arr[] = $zeile; sprich, wie greife ich dann darauf zu ? z.B. echo ?
 
Ja, kannst du.

PHP:
$res1 = mysql_query("SELECT * FROM kunden order by name");
$arr_cnt = 1;
while ($zeile = mysql_fetch_array($res1))
{
  $arr[$arr_cnt] = $zeile;
  $arr_cnt++;
}

Und das Ansprechen wird ganz normal gemacht, wie es bei Arrays üblich ist.

PHP:
echo $arr[1];
usw.
 
Zurück