Kopien in PHP
-
Hi Leute,
ich hab hier ein kleines Problem:$result = mssql_query($query) or die("Query failed - " . $query."!"); $tmp_result = $result; while($array = mssql_fetch_array($result)) { ... if(Condition==true) break; } $result = $tmp_result; while($array = mssql_fetch_array($result)) { ... }
der query gibt mir 3 Zeilen zurück. Das break in der ersten while-Schleife passiert beim zweiten Schleifendurchlauf. Die zweite while-Schleife läuft nur einmal durch. Es sieht also so aus, als würde die zweite while-Schleife auf der result-variablen arbeiten, welche in der ersten while-Schleife verwendet und geändert wird. Das hab ich aber versucht dadurch zu verhindern, indem ich die tmp_result angelegt habe. Tut das nicht in PHP? Werden die Daten hier garnicht kopiert?
-
mssql_query
Heißt das nicht mysql_query() ?
-
Wahrscheinlich verwendet er aber nicht MySQL sondern MSSQL.
-
So ist es. Hilft mir net weiter.
-
Vielleicht hilft ein mssql_data_seek($result,0);
-
Die Daten werden nicht kopiert, weil es resourcen sind. Und resourcen haben refcounting - ein kopieren kopiert also nicht.
*_data_seek hilft, oder aber auch statt *_fetch_* einfach *_result
Allerdings ist das seek vermutlich performanter
-
Und als Erklärung. Ein Fetch geht immer im Resultset um eine Zeile des Resultsets vor.
Willst du wieder von vorne beginnen muss du den Zeiger auch wieder auf das erste Element des Resultsets setzen.
-
flenders schrieb:
Vielleicht hilft ein mssql_data_seek($result,0);
Danke, das tut.