mysql_query an Funktion übergeben

mysql_query an Funktion übergeben

am 02.10.2005 21:38:33 von Christopher Jensen

Hallo,

wie kann ich $search = mysql_query("SELECT ...") vom Hauptprogramm
aus an eine Funktion übergeben?

Ich habe schon versucht $search in der Funktion per GLOBAL zu verwenden
oder $search per Funktionsaufruf zu übergeben:

function starte_Funktion($search) {
while (ergebenis = mysql_fetch_array($search))
{
echo "Ergebnis: {$ergebnis[irgendwas]}
";
}
}

$search = mysql_query("SELECT ...")

starte_Funktion($search);

Die Schleife wird komischerweise so oft durchlaufen wie auch Einträge in
der Datenbank gefunden werden. Aber es erfolgt lediglich nur einmal die
Ausgabe
{$ergebnis[irgendwas]}.

Hat da jemand eine Idee?

Gruß Christopher

Re: mysql_query an Funktion übergeben

am 02.10.2005 21:44:59 von Christopher Jensen

Falls es noch wichtig ist:

die Suchanfrage enthält u.a.
....WHERE plz LIKE '%".$_GET["plz"]."%'...
kann mir aber nicht vorstellen daß es damit
etwas zu tun hat, da ja der erste Eintrag
korrekt erfolgt...

Gruß Christopher

Re: mysql_query an Funktion übergeben

am 03.10.2005 17:39:23 von Gregor Kofler

Christopher Jensen wrote:
> Hallo,
>
> wie kann ich $search = mysql_query("SELECT ...") vom Hauptprogramm
> aus an eine Funktion übergeben?
>
> Ich habe schon versucht $search in der Funktion per GLOBAL zu verwenden
> oder $search per Funktionsaufruf zu übergeben:
>
> function starte_Funktion($search) {
> while (ergebenis = mysql_fetch_array($search))
> {
> echo "Ergebnis: {$ergebnis[irgendwas]}
";
> }
> }

Der Tippfehler findet sich im Original nicht, oder?

> $search = mysql_query("SELECT ...")
>
> starte_Funktion($search);
>
> Die Schleife wird komischerweise so oft durchlaufen wie auch Einträge in
> der Datenbank gefunden werden. Aber es erfolgt lediglich nur einmal die
> Ausgabe
> {$ergebnis[irgendwas]}.

Woher weisst du denn wie oft die Schleife durchlaufen wird?

> Hat da jemand eine Idee?

Ressourcen kann man wie jedes andere Argument übergeben. *Das* sollte
passen.

Gruß, Gregor



--
Landschafts- und Reisefotografie * http://www.gregorkofler.at
Licht-Blick - Forum für Multivisionsvorträge * http://licht-blick.at

Re: mysql_query an Funktion übergeben

am 03.10.2005 18:07:21 von Phaeilo

Lass die Schleife mal doch einfach mal ausserhalb der Funktion laufen, dann
wirst du sehen obs am Query liegt, auch wäre es warscheinlich sinnvoll,
direkt nach dem Query mal "print mysql_error();" zu benutzen. Das kann auch
schon viel Helfen.

Re: mysql_query an Funktion übergeben

am 04.10.2005 07:39:28 von Christopher Jensen

Ich habe den Fehler gefunden, kann ihn aber mit meinem Verständnis
nicht ganz nachvollziehen:

Ich definiere am Anfang des Scriptes (falls es Fehler gibt, dann sind es
hier nur Tippfehler ;-) ):

$suche_1 = mysql_query("SELECT...");
$suche_2 = mysql_query("SELECT...");

Ich rufe nun die Schleifen auf:

while($ergebnis_1 = mysql_fetch_array($suche_1)) {
...irgendwas...
while($ergebnis_2 = mysql_fetch_array($suche_2)) {
...noch eine Ausgabe..
}
}

Die Schleife 1 läuft dann so oft wie ergebnis_1 = true, aber Schleife 2
nur einmal solange ergebnis_2 0 true.
Definiere ich suche_2 innehrhalb Schleife 1 mit mysql_query jedesmal
neu (genau das will ich aber vermeiden) funktioniert die Ausgabe.
reset($suche_2) funzt nicht, da es sich nicht um ein Array handelt.

Ich könnte nun ja auch die Ergebnisse aus suche_2 in ein eigenes Array
schreiben lassen und mit diesem arbeiten... aber gibt es vielleicht noch
eine
Möglichkeit mysql_query zurückzusetzen o.ä?

Gruß Christopher

Re: mysql_query an Funktion übergeben

am 04.10.2005 10:22:54 von Alexander Fleischer

Hallo !

Christopher Jensen schrieb:
> Ich könnte nun ja auch die Ergebnisse aus suche_2 in ein eigenes Array
> schreiben lassen und mit diesem arbeiten... aber gibt es vielleicht noch
> eine
> Möglichkeit mysql_query zurückzusetzen o.ä?

http://php.net/mysql_data_seek

Alexander

Re: mysql_query an Funktion übergeben

am 04.10.2005 13:08:10 von Christopher Jensen

> http://php.net/mysql_data_seek
>
> Alexander

Danke, so klappts!