Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Eine SQL-Abfrage nicht mehrmals abfragen

Manchmal kommt es vor, dass man eine bestimmte SQL-Abfrage bzw. das Ergebnis dieser innerhalb eines Scripts mehrmals benötigt. Ein ResultSet kann allerdings nur einmal durchlaufen werden. Man müsste deshalb die gleiche Query weiter unten im Script noch einmal abfragen. Aber da diese Daten ja bereits geholt worden, ist eine solche Abfrage eigentlich eine Verschwendung von Performance. WIe gehts aber besser?

Hier ncohmal der Code, der ersten Abfrage:

 $einlesen = mysql_query("SELECT spalte1,spalte2 FROM table WHERE spalte3='wert'");  while($einzeln = mysql_fetch_assoc($einlesen)) {   echo $einzeln['spalte1']." ".$einzeln['spalte2'];  }

Diese Daten benötigen wir allerdings weiter unten noch einmal. Nun könnte man sich die Daten in dieser Schleife bereits in Arrays schreiben, allerdings gibt es einen eleganteren Weg: mysql_data_seek().

Mit der Funktion mysql_data_seek() kann man den Zeiger eines Resultsets an eine gewünschte Position zurückschieben. Weil wir alle Daten noch einmal benötigen (ab Zeiger auf Ergebnisdatensatz 0), verwenden wir

mysql_data_seek($einlesen,0);

Somit kann weiter unten im gleichen Script wieder mit der Schleife wie oben die Ergebnisliste durchlaufen werden. Man sollte dann natürlich zwischendurch die Variable $einlesen nicht mit irgendetwas anderem belegen.