Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP-virhe jota ei löydy

solonen [19.12.2007 18:10:52]

#

eli alla oleva koodi antaa virheimoituksen, jos tilauksessa on enemmän kuin yksi tuote joka tilataa..

 Warning: mysql_result(): Unable to jump to row 1 on MySQL result index 15 in /var/loppusoste on line 80

Ja tuote on tietokannassa näin "2,4|1,3" eli 2,4:sesta 2 on tuoteID ja 4 on määrä
| on tuotteiden erottaja=) tuo toimii jos pistää kaksi lausetta peräkkäin ilman for:ia mutta silloin se ei toimisi oiken.. auttakaa kiitos =)

//tilaukset tekstiksi
		$tuote=explode("|", $tilaukset);
		$luku=count($tuote);
		//echo "aha ".$luku;
		//$okA=ota_yhteys();

		for($a=0;$a<$luku;$a++){

		list($tuote_id, $tuote_maara) =explode(",", $tuote[$a]);
		$sqlA="SELECT * FROM tuotteet WHERE ID=\"".$tuote_id."\"";
		//echo "aha$a ".$tuote[$a];
		//echo "aha2 ".$tuote[1];

		$resultA=mysql_query($sqlA);

		$tuotee=mysql_result($resultA,$a,"tuote");
		$hintaa=mysql_result($resultA,$a,"hinta");
		$Yhteensa=$hintaa*$tuote_maara;


		echo "<tr><td>$tuotee</td><td>$hintaa €</td><td>$Yhteensa €</td><td>".$tuote_maara."</td></tr>";

		}

ajv [19.12.2007 18:14:54]

#

Tarkasta, että kysely onnistuu ja että tietokanta palauttaa rivejä (mysql_num_rows()).

Edit. Paitsi että juu sulla on tuolla mysql_result()-funktiossa tuo $a-muuttuja. Vaihda sinne 1 vai oliko se nyt 0. mysql_fetch_assoc() on paljon parempi tapa kuin tuo mysql_result() btw.

solonen [19.12.2007 18:26:43]

#

KIITOS SINNE PITI LAITTAA NOLLA SIIS KIITOS ERITTÄIN PALJON :D
Ja miten tuo mysql_fetch_assoc() on parempi?

GimPeltzi [19.12.2007 20:02:25]

#

mysql_fetch_assoc()hakee kyselyn tuloksesta kerralla koko rivin siinä missä mysql_result hakee vain yhden solun. Ensinmainittu palauttaa assosiatiivisen taulukon, ja esim. taulun sarakkeesta 'hinta' saadaan tieto seuraavasti:

$rivi = mysql_fetch_assoc($tulos);
echo $rivi['hinta'];

solonen [20.12.2007 08:14:17]

#

Opettaja opetti meille ton mysql_result mut hyvä et kerroit ton ^^ paljon kätevämpi =)

Lebe80 [20.12.2007 09:30:45]

#

solonen kirjoitti:

Ja tuote on tietokannassa näin "2,4|1,3" eli 2,4:sesta 2 on tuoteID ja 4 on määrä
| on tuotteiden erottaja=)

Varmaan jatkossa kannattaa sitten tehdä tauluista semmoisia, ettei yhteen kenttään tarvitse kaikki tuollaisia tietoja pistää, vaan käyttää tietokantaa siihen mihin se on tarkoitettukin ja jakaa kappalemäärät omiin kenttiin ja jokaiselle tuotteelle oma rivi ja viittaus kyseiseen riviin.

Tuo nykyinen tapasi muistuttaa paljolti tekstitiedostoilla taulukoiden käpistelyä. :)

Vastaus

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

Tietoa sivustosta