MySQL procedure och php hjälp

Trädvy Permalänk
Inaktiv
Registrerad
Nov 2004

MySQL procedure och php hjälp

Jag försöker anropa en procedure i en nestlad loop en gång per varv.
Men PHP kör bara proceduren en gång och inte igen, loopen kör alla sina varv utan problem, men queryn körs bara första gången.
Proceduren tar 2 imparametrar som är datum, det är datumen som jag loopar fram med de nestlade looparna och så att jag ska få ett resultset per "dag"

Nån som vet vad som kan va fel?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004

Skriv ut en global/session variabel i din procedur, t.ex. såhär (har inte testat koden, skriver bara lite på måfå):

session_start(); $_SESSION['test'] = 0; function doStuff(){ echo "<br>{$_SESSION['test']++}"; return true; } for($k = 0; $k < 10; $k++) doStuff();

Alltså kopiera inte min kod utan kolla på poängen bara; du skriver ut datumet i din procedur istället för i din for-loop. På så sätt kan du lättare felsöka vad som händer.

Min gissning är att du inte använder MySQL-anslutningen på rätt sätt, t.ex. inte använder någon variabel som håller i anslutningsobjektet.

Trädvy Permalänk
Inaktiv
Registrerad
Nov 2004

Okej ska testa...

Trädvy Permalänk
Inaktiv
Registrerad
Nov 2004

Jag skapar ju ett mysql_connect objekt med anslutnings detaljerna och felhanterar det. Och jag får inga errors när jag kör min loop där jag anropar SQL proceduren, utan den kör felfritt, dock körs mysqli_query bara en gång

if ($result = mysqli_query($link, "call myProcedure(".$date.")")) { /* Fetch the results of the query */ echo"hej"; $rows = mysqli_fetch_array($result); if($rows){ foreach($rows as $key => $value){ echo "Key: $key; Value: $value<br/>"; } } else{ echo'No rows from query'; }

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004

Aha, du kanske bara inte får något resultat innan fetch? Ändra din if-sats, gör såhär istället:

$result = mysqli_query($link, "call myProcedure(".$date.")"); if (mysqli_num_rows($result) > 0) {

Trädvy Permalänk
Inaktiv
Registrerad
Nov 2004

.

Trädvy Permalänk
Inaktiv
Registrerad
Nov 2004

Nån som vet varför man inte kan loopa och ställa en sql fråga varje varv i loopen?