Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: mysql_result();

Sivun loppuun

php-Niko [02.11.2006 19:42:47]

#

Ööh... Onkos tää nyt oikeen kun ei taijja kunnol pelittää::

echo(mysql_result($joku, 0, "nimi"));

Mulla se heittää jonkun ihme errorin

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/suomipoi/public_html/indexx.php on line 8

juha127 [02.11.2006 19:44:39]

#

echoa ei käytetäniin kuin functioita yleensä joten kokeiles kun otat yhdet ()pois, ja kai yhteys on luotu ja tauluvalittu.

ajv [02.11.2006 19:46:49]

#

Tosta koodista puuttuu just se oleellinen, eli mitä tuo $joku sisältää. Virhe-ilmoituksen mukaan ei ainakaan tietokantahaun tulosta.

php-Niko [02.11.2006 19:58:26]

#

Siis.. Olen kokeillut näin kanssa:

echo mysql_result($etusivuk, 0, "otsikko");

Yhteys.php

$yhteys = (mysql_connect ("localhost", "suomipoi", "********") or die("Virhe 101!"));
mysql_select_db ("suomipoi_nikonaattori") or die("Virhe 102!");

$etusivu = "SELECT * FROM etusivu";             # On kokeiltu myös ()
$etusivuk = mysql_query($etusivu, $yhteys);     # On kokeiltu myös ()

Ja tietokannast löytyy "etusivu".

ajv [02.11.2006 20:14:23]

#

Kokeileppa:

<?php
if(mysql_num_rows($etusivuk) > 0){
   while($r = mysql_fetch_assoc($etusivuk)){
      echo $r['otsikko'].'<br />';
   }
}else{
   echo 'Tietokanta palautti 0 riviä';
}
?>

php-Niko [02.11.2006 20:37:38]

#

"Tietokanta palautti 0 riviä" :S

ajv [02.11.2006 22:41:35]

#

$etusivuk = mysql_query($etusivu, $yhteys) or die(mysql_error());

tsuriga [02.11.2006 23:21:19]

#

Hus, pois se SELECT*FROM, ja 'or die()' korvaaja: http://faq.php-q.net/#mysql

Olga [03.11.2006 08:20:12]

#

Onko siellä tietokannassa yhtään riviä?

php-Niko [03.11.2006 16:05:46]

#

Ai se SELECT*FROM on yhteen?? On tietokannassa rivije... No kokeilen SELECT*FROM.. Mut mä kyl ennen sain tän toimimaan, mut sitten se lakkas.. menin jotain säätää =S

ÖÖöööööö...

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/suomipoi/public_html/yhteys.php on line 6

Siis meikä on vähä pihal.. Miten tää nyt valittaa et Query ei olis kunnos :S Äh.. Mä en siis jaksa ymmärtää..

siirappi [03.11.2006 16:19:38]

#

Se valittaa, että sun yhteyskahva ei ole kelvollinen, joten et oo varmaa luonut tietokantayhteyttä onnistuneesti.

Kokeile:

if (!$yhteys = mysql_connect("localhost", "suomipoi", "********")) die("Virhe 101!");

tsuriga [03.11.2006 16:36:12]

#

Ei kyllä se erikseen tulee, on vain parempi jos tähden tilalla käyttäisit oikeita kenttien nimiä. Ja tuosta ylempänä heittämästäni linkistä löydät "or die"-lausekkeelle korvaajan, jota voi käyttää ihan tuotantokäytössäkin debuggauksen jälkeen kunhan teet kappaleen lopussa mainitut muutokset.

juha127 [04.11.2006 00:21:42]

#

Kai myös huomasit, että mysql_query($etusivu) eikä mysql_query($etusivu, $yhteys) eli väärät argumentit.
Tarvitaan vain tuo $etusivu muuttuja ei muita, kunhan yhteys on luotu.
En kyllä mene 100% takuuseen asiasta...

tsuriga [04.11.2006 01:17:25]

#

Aina voi manuaalista tarkistaa ellei tiedä:

resource mysql_query ( string query [, resource link_identifier] )

php-Niko [04.11.2006 11:52:59]

#

:S
Tää on tosiaan aika pulman pulmunen.
Varmistampa pari asiaa...

Kumpi on oikein?:

$etu = "SELECT * FROM etusivu";
$etuk = mysql_query($etu, $yhteys);
$etu = "SELECT * FROM etusivu";
$etuk = mysql_query($etu, $yhteys);

Ja sitten tulostus:

echo mysql_result($etuk, 0, "viesti");
echo (mysql_result($etuk, 0, "viesti");

Vai pitäisikö käyttää print:iä?

tkarkkainen [04.11.2006 12:28:18]

#

php-Niko kirjoitti:

Kumpi on oikein?:

$etu = "SELECT * FROM etusivu";
$etuk = mysql_query($etu, $yhteys);
$etu = "SELECT * FROM etusivu";
$etuk = mysql_query($etu, $yhteys);

Mitäs eroa noilla muka on? Molemmat oikein.

lainaus:

Ja sitten tulostus:

echo mysql_result($etuk, 0, "viesti");
echo (mysql_result($etuk, 0, "viesti");

Edit: Tekstiä pois, olin näköjään väärässä mysql_resultin suhteen. Ajattelin näemmä ihan eri funktiota :)

Syy siihen, että kannastasi ei löydy rivejä, voi olla esimerkisi se, että taulun nimi on kirjoitettu väärin, tai taulussa ei ole yhtään tietuetta.

Yhteyskahvasta homma voisi myös olla kiinni, kokeilitko jo aiemmin mainittua virhetarkastusta yhteyden luomisessa?

$yhteys = mysql_connect ("serveri","kayttaja,"passu") or die ( "Virhe: " . mysql_error() );

juha127 kirjoitti:

Kai myös huomasit, että mysql_query($etusivu) eikä mysql_query($etusivu, $yhteys) eli väärät argumentit.

Väärin. Jälkimmäisessä argumentissa voidaan määrittää yhteyskahva. Käyttökelpoinen silloin, kun muodostetaan useampia yhteyksiä eri tietokantoihin. Ei pakollinen muulloin, mutta ei se ainakaan selkeyttä vähennä.

Muoks: Kävipä vielä mielessäni, että onhan oikea tietokanta valittu palvelimelta mysql_select_db() -funktion avulla?

php-Niko [04.11.2006 12:47:04]

#

yhteys on kunnossa ja db fnkt on käytös myös. etusivu taulussa on tietueita. Se valittaa, että mysql_result() ja mysql_query() argumentit olisivat väärin.. Mutta niissä ei näytä olevan mitäään häikkää.. Olen tarkistanut useempaan kertaan kirjoitus virheet, mut en löydä.

juha127 [04.11.2006 16:36:50]

#

tkarkkainen kirjoitti:

juha127 kirjoitti:

Kai myös huomasit, että mysql_query($etusivu) eikä mysql_query($etusivu, $yhteys) eli väärät argumentit.

Väärin. Jälkimmäisessä argumentissa voidaan määrittää yhteyskahva. Käyttökelpoinen silloin, kun muodostetaan useampia yhteyksiä eri tietokantoihin. Ei pakollinen muulloin, mutta ei se ainakaan selkeyttä vähennä.
avulla?

No selvisipä taas uutta mullekin.

Elikkä mitäs tulostaa tämä scripti:

<?php

$yhteys = (mysql_connect ("localhost", "suomipoi", "********") or die("Virhe 101!".mysql_error()));
mysql_select_db ("suomipoi_nikonaattori") or die("Virhe 102!".mysql_error());

$etusivu = "SELECT * FROM etusivu";             # On kokeiltu myös ()
$etusivuk = mysql_query($etusivu, $yhteys) or die ("V: ".mysql_error());     # On kokeiltu myös ()

if (mysql_numrows($etusivuk) > 0) {
  echo mysql_result($etusivuk, 0, "viesti") or die ("Tulostus ongelma: ".mysql_error());
}
else {
  echo "Taulussa ei ole rivejä";
}

mysql_quit();

?>

Tuossa saattaa olla kirjoitus virheitä, mutta kokeile.

php-Niko [04.11.2006 20:50:15]

#

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/suomipoi/public_html/yhteys.php on line 6
V:

juha127 [05.11.2006 10:54:09]

#

Otappas tuosta $yhteys muuttujan tietoje ympäriltä yhdet sulut pois.

$yhteys = mysql_connect ("localhost", "suomipoi", "********") or die("Virhe 101!".mysql_error());

Tuohan sisällyttää myös ton or die siksi siinä on väärät argumentit kaiketi.

Testasin tuon vielä itselläni toimiiko ja se toimi kun otin pois nuo sulut; eli se antoi väärän arvon ¢yhteys muuttujaan. Nyt se palauttaa arvon 1 tai 0 riippuen siitä onnistuiko yhdistämine vai ei.

php-Niko [05.11.2006 12:20:38]

#

1
Fatal error: Call to undefined function: mysql_quit() in /home/suomipoi/public_html/indexx.php on line 14

Ja jos laitan mysql_quit() se laittaa errorin ja mitään sivusta ei näy.

juha127 [05.11.2006 14:40:57]

#

Juu muisti pätkii ei ole mysql_quit() functiota, vaan laita tilalle mysql_close($yhteys)

php-Niko [05.11.2006 16:20:12]

#

Laittaa edelleen Fatal Erroria. :S

Matso [08.11.2006 20:07:46]

#

juha127 kirjoitti:

Kai myös huomasit, että mysql_query($etusivu) eikä mysql_query($etusivu, $yhteys) eli väärät argumentit.
Tarvitaan vain tuo $etusivu muuttuja ei muita, kunhan yhteys on luotu.
En kyllä mene 100% takuuseen asiasta...

Muistaakseni tuolla ei ole väliä laittaako siihen tuon yhteys muuttujan vai ei. Että olis vapaaehtoinen. Kaippa sitä turha on sinne tunkea, kun sitä ei tarvita välttämättä.

ajv [08.11.2006 20:12:02]

#

Matso kirjoitti:

Muistaakseni tuolla ei ole väliä laittaako siihen tuon yhteys muuttujan vai ei. Että olis vapaaehtoinen. Kaippa sitä turha on sinne tunkea, kun sitä ei tarvita välttämättä.

Ei ole väliä/tarvetta jos on vain yksi yhteys tietokantaan auki - kuten useimmiten onkin.


Sivun alkuun

Vastaus

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

Tietoa sivustosta