2017-03-04 3 views
0

Wahrscheinlich einfach, aber kann nicht meinen Kopf um diese einfache Aufgabe bekommen ...mehr Schleifen auf mysql query

$query = "SELECT * FROM myTable WHERE this = that"; 
$result = mysql_query($mycon, $query); 

while ($tablerow = mysql_fetch_assoc($result) { 
    do this 
} 

Kann ich diese while-Schleife auf dem gleichen $ Ergebnis erneut ausführen, ohne die Abfrage erneut ausführen?

dh:

while ($tablerow = mysql_fetch_assoc($result) { 
    do something else using the same data 
} 

Dank

+0

Warum nicht beides in einer Schleife? –

+0

Ja Sie können –

+0

verwenden ok Ich baue eine Tabelle Zeile für Zeile und einige der Daten für die nächste Zeile ist in der ersten Abfrage, die zum Erstellen der ersten Zeile der Tabelle verwendet wurde. Ich bin mir sicher, dass das mein Gesicht anstarrt, aber ich kann es nicht sehen !! – Lance

Antwort

1

Ja können Sie die while-Schleife wieder verwenden, aber nach jedem while Schleife Ort dieser Code:

mysql_data_seek($tablerow , 0); 

Wie dies oben Funktion der immer zurücksetzt Zeiger auf seinen Startpunkt in der Schleife.

Finden Sie den vollständigen Code unten:

$query = "SELECT * FROM myTable WHERE this = that"; 
$result = mysql_query($mycon, $query); 

while ($tablerow = mysql_fetch_assoc($result) { 
    do this 
} 
mysql_data_seek($tablerow , 0); 

//Do something you want 

//Then again 

while ($tablerow = mysql_fetch_assoc($result) { 
    do this 
} 
mysql_data_seek($tablerow , 0); 

Aus Sicherheitsgründen Zweck und mysql auch veraltet, immer versuchen, mysqli oder PDO zu verwenden.

Ich hoffe, dies kann für Sie hilfreich sein.

+1

es geht nicht nur um Sicherheit! mysql_ * ist veraltet! und sollte nicht mehr verwendet werden! – hassan

+0

@Prateek Danke ... – Lance

+0

@lance, ich bin froh, dass es dir geholfen hat. –

0

Dies wird doppelten Code verursachen, was eine schlechte Praxis ist. Verwenden Sie die gleiche Schleife.