Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ongelmia taulukon kanssa....

Sivun loppuun

Lemtz81 [18.05.2006 08:58:23]

#

eli olen tehny db luokan ja sinne query function. välitän mysql lauseen funktiolle ja osoitteen arrayhin mihin tallentaa sitten tulos. Teen sellaisen queryn että sieltä löytyy useampi rivi mutta saan foreachilla tulostettua vain ekan rivin tiedot....misä mättää???
lause jota käytän:

foreach($table as $name=>$value)
{
	echo "$name = $value<br>";
}

ajv [18.05.2006 09:08:47]

#

Hmm... Anna mielummin sitä query-funktion koodia ja miten sitä käytät. Ei tuossa foreach-lauseessa ole mitään vikaa.

Lemtz81 [18.05.2006 09:15:41]

#

Tässä olisi tämä:

 	public function Query($aQuery, &$aTable, $aLog=false)
		{
			// Performing SQL query
			$sql = mysql_query($aQuery) or die ($this->Log(mysql_error()));

			// Checks if there's a wrong query
			if(!$sql){
				$this->Log($sql);
			}

			// Checks if there's any rows in the result
			if(0 == mysql_num_rows($sql))
			{
				// If there's no rows, sets the array to 0
				$aTable = 0;
			}
			else
			{
				// Gets the results to table
				$aTable = mysql_fetch_assoc($sql);
			}
			// Free resultset
			mysql_free_result($sql);
		}

Kun teen haun josta tuloksena pitäisi tulla kolme riviä 2 soluisesta taulusta. eli Maa taulussa on id ja nimi ja siellä on 3 maata(fin,swe,nor) mutta tulostaa ainoastaa vain fin tiedot

ajv [18.05.2006 09:45:46]

#

Kyllä tuokin näyttäisi olevan kunnossa. Katso varmuuden vuoksi mitä se viitteenä funktiolle antamasi taulukko pitää sisällään print_r()-funktiolla. Jotenkin kuitenkin sellainen kutina, että sieltä kannasta ei tosiaan tule kuin yksi rivi.

Lemtz81 [18.05.2006 09:48:53]

#

Juu oikeassa olet, mutta ihmetyttää vain että tietokannassa on se 3 riviä ja käytän vielä lausetta SELECT * FROM maat

raezel [18.05.2006 10:01:55]

#

Lemtz81 kirjoitti:

Tässä olisi tämä:

	else
	{
		// Gets the results to table
		$aTable = mysql_fetch_assoc($sql);
	}
	// Free resultset
	mysql_free_result($sql);
}

Eikös tuo mysql_fetch_assoc hae vain yhden rivin ellei sitä pyöritä jossain luupissa?

Lemtz81 [18.05.2006 10:04:22]

#

jeps, sen korjasin....
laitoin seuraavan lauseen:

while($row = mysql_fetch_assoc($sql))
{
    $aTable .= $row;
}

Mutta homma pissii vieläki, en saa tulostettua koko roskaa

raezel [18.05.2006 10:08:09]

#

Mitenkäs tulostelet sitä? Ja tuo funktio ei tällä hetkellä palauta, eikä tulosta mitään (jos se on edelleen samanlainen kuin tuo ylhäällä pastetettu)

ajv [18.05.2006 10:09:56]

#

raezel kirjoitti:

Eikös tuo mysql_fetch_assoc hae vain yhden rivin ellei sitä pyöritä jossain luupissa?

Äh, niin tietenkin.

while($row = mysql_fetch_assoc($sql))
{
    $aTable[] = $row;
}

Mutta en sitten tiedä kuinka järkevää tuo on. Tuolla menetelmällä joudut väkisinkin looppaamaan tulokset kahteen kertaan...

Lemtz81 [18.05.2006 10:13:00]

#

jeps

hokasin myös tällaisen

while($row = mysql_fetch_assoc($sql))
{
	foreach($row as $a)
	{
		echo $a."<br>";
	}
}

Mutta kiitoksia kuiteski


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta