webForumDet fria alternativet

Problem med array och loop

3 svar · 385 visningar · startad av visslaren

visslarenMedlem sedan juli 20011 222 inlägg
#1

Hej,

Sitter och leker lite med klasser i php och har stött på ett litet problem!
Jag har gjort en klass som hanterar sql-frågor. Det fungerar finfint så länge resultatet inte behöver loopas ut, dvs en rad går fint att hämta.
I nuläget loopar den ut samma rad ett flertal gånger.

Funktionen i klassen som hanterar sql-frågor:

function query($sql, $mode) {
	switch($mode) {
		case 0:
		$result = mysql_query($sql, $this->db_con);
		$row = mysql_fetch_array($result);
		mysql_free_result($result);
		$result = NULL;
					
		return $row;
		break;
		case 1:
		mysql_query($sql, $this->db_con);
		break;
	}
}

Koden som loopar:

$row = $sql->query("<sql>", 0);
for($i = 0; $i < count($row); $i++) {
	<loopad kod>
}

Nån som har en lösning på mitt problem? :)

SpinxMedlem sedan nov. 200321 inlägg
#2

Det går inte att göra på det där sättet, $row som du får ut innehåller en array av fälten i första raden av ditt resultat($res), så för att hämta nästa rad måste du använda mysql_fetch_array igen.

Så för att loopa ut ett resultat så måste du använda:

while ($row = mysql_fetch_array($res)) {
   // Bla bla
}

Självklart kan du skapa upp en 3d-array i din class, men pga minnesanvändning och prestandaförlust så är det inget jag rekomenderar.

visslarenMedlem sedan juli 20011 222 inlägg
#3

Provad med detta nu och fick följande felmeddelande:

mysql_fetch_array(): supplied arguments is not a valid MySQL result resource

SpinxMedlem sedan nov. 200321 inlägg
#4

Såg nu att du har döpt ditt resultat till $result.
Ändra $res till $result.

133 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)