Zeiger von mysql_fetch_array() zurücksetzen?
Maik
- php
Hallo,
ich habe folgenden Programmcode, in dem aus einer Datenbank verschiedene Firmen in einer Liste alphabetisch sortiert ausgegeben werden. Bevor die Firmen ausgeben werden wird ein Balken mit dem aktuellen Buchstaben generiert nachdem die jeweiligen Firmen aufgelistet werden. Wenn es keine Firme mit dem entsprechenden Anfangsbuchstaben gibt wird nur der Index hochgezählt und die Schleife beginnt von vorn. Das Problem ist aber das der Ergebniszeiger von mysql_fetch_array() schon auf den nächsten Datensatz zeigt, obwohl der noch nicht ausgegeben wurde. Ich habe versucht mit mysql_data_seek() versucht den Zeiger wieder um eins zurückzusetzen, aber das funktioniert so nicht. Kann man überhaupt auf schon durchgelaufene Ergebnisse von mysql_fetch_array zugreifen, oder werden die durch die neuen Ergebnisse einfach überschrieben?
Weis jemand eine Lösung?
Danke,
Maik
$abc = array ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$index = 0;
mysql_select_db($db_name,$db) or die ("Konnte Datenbank nicht auswählen: ".$db_name);
$dat = mysql_query("SELECT id,firma,profil FROM steuerberater order by firma");
while ($erg_dat = mysql_fetch_array($dat)){
$id = $erg_dat[id];
$firma = $erg_dat[firma];
$anf = strtoupper(substr(trim($firma),0,1));
if($anf==$abc[$index]){
// Ausgabe Überschrift mit Index-Buchstabe
if($erg_dat[profil]==0){
//Ausgabe Firma ohne Profil
$index++;
}
else{
//Ausgabe Firma mit Profil
$index++;
}
}
else {
if($anf==$abc[$index-1]){
if($erg_dat[profil]==0){
//Ausgabe Firma ohne Profil und ohne Buchstaben-Index
}
else{
//Ausgabe Firma mit Profil und ohne Buchstaben-Index }
}
else{
$index++;
mysql_data_seek($erg_dat, $index-1);
}
}
}
Hallo Maik,
laut Manual geht dafür die Funktion mysql_data_seek();
ich habe sie noch nicht ausprobiert.
Liebe Grüße aus http://www.braunschweig.de
Tom