Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: SUM(klikit) MySQL-kyselystä muuttujaan

carter [16.08.2008 01:21:40]

#

$haku = "SELECT SUM(klikit) FROM testi WHERE nimi = '$nimi'";
$kysely = mysql_query($haku, $yhteys)

Miten saisin tuosta kyselystä tulevan tuloksen tallennettua $klikit muuttujaan.


Sori tällänen tyhmä kysymys, mutta oon aika aloittelija mysqln kanssa.
Kiitos

kayttaja-2791 [16.08.2008 02:23:42]

#

Katsopa PHP manuaalista mysql_result... Putkassa on myös opas aiheesta.

Ulkomuistista:

...
echo mysql_result($kysely, "SUM(klikit)", 0);

tai vaikka:

while($row = mysql_fetch_row($kysely)) {
  echo $row[0];
}

carter [16.08.2008 18:27:54]

#

Tein tollasen mut ei oikee toimi, osaisko kukaa kertoo mitä tossa on väärin. Tämmöstä virheilmotusta pukkaa:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /xxxx.php on line 24

	$haku = "SELECT SUM(klikit) FROM testi WHERE nimi = '$nimi";
	$kysely = mysql_query($haku, $yhteys);
	if(mysql_num_rows($kysely) < 1){
	$klikit = '0';
	}else{
	$klikit = mysql_result($kysely, 'SUM(klikit)', 0);
	}

Ja tuo line 24 on tuo:

if(mysql_num_rows($kysely) < 1){

Ja vähän lisäselostusta:
Eli tietokannan "testi" nimisessä taulussa on tietueita. Tietueissa on muunmuassa "nimi" ja "klikit" nimiset kentät. Klikit kenttä on numeerinen. Nimi kenttä on varchar(50).
Ja tarkoituksena on se että nimi kentissä voi olla sama nimi, sentakia kyselyn pitäisi laskea klikit summana jokaisesta tietueesta minkä nimi = $nimi.

kayttaja-2791 [16.08.2008 18:54:54]

#

Hakusi on epäkelpo (puuttuu ' -merkki lopusta), siksi mysql_num_rows ei toimaa. Muistin näemmä mysql_result:in syntaksin väärin (kirjoitin eilen kännykällä, ei jaksanut tarkastaa), tässä korjattu:

<?php
$haku = "SELECT SUM(klikit) FROM testi WHERE nimi = '$nimi' GROUP BY nimi";

if (($kysely = mysql_query($haku, $yhteys)) {
  if(mysql_num_rows($kysely) < 1){
    $klikit = '0';
  } else {
    $klikit = mysql_result($kysely, 0);
  }
} else {
  exit("Virheellinen haku.");
}
?>

Luulisin että kyselyn pitäisi mennä noin, SUM -funktio vaatii kaiketi GROUP BY:n käyttöä?

Metabolix [16.08.2008 19:00:38]

#

Kyselyn onnistuminen kannattaa aina tarkistaa:

<?php
$tulos = mysql_query($kysely);
if (!$tulos) {
  die(
    "<h1>Kysely meni pieleen.</h1>".
    "<p>".$kysely."</p>".
    "<p>".mysql_error()."</p>");
}
?>

carter [16.08.2008 19:25:00]

#

Jess, nyt toimii, kiitos paljon :)

Teuro [16.08.2008 23:00:02]

#

Tällä tavalla saat suoraan 'klikit' nimisen kentän, joten ei ole tarvetta tehdä sitä kyselyn ulkopuolella.

$haku = "SELECT SUM(klikit) AS klikit FROM testi WHERE nimi = '$nimi' GROUP BY nimi";

Vastaus

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

Tietoa sivustosta