$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
Katsopa PHP manuaalista mysql_result... Putkassa on myös opas aiheesta.
Ulkomuistista:
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.
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öä?
Kyselyn onnistuminen kannattaa aina tarkistaa:
Jess, nyt toimii, kiitos paljon :)
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";
Aihe on jo aika vanha, joten et voi enää vastata siihen.