Öö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
echoa ei käytetäniin kuin functioita yleensä joten kokeiles kun otat yhdet ()pois, ja kai yhteys on luotu ja tauluvalittu.
Tosta koodista puuttuu just se oleellinen, eli mitä tuo $joku sisältää. Virhe-ilmoituksen mukaan ei ainakaan tietokantahaun tulosta.
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".
Kokeileppa:
"Tietokanta palautti 0 riviä" :S
$etusivuk = mysql_query($etusivu, $yhteys) or die(mysql_error());
Hus, pois se SELECT*FROM, ja 'or die()' korvaaja: http://faq.php-q.net/#mysql
Onko siellä tietokannassa yhtään riviä?
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ää..
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!");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.
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...
Aina voi manuaalista tarkistaa ellei tiedä:
resource mysql_query ( string query [, resource link_identifier] )
: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ä?
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?
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ä.
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.
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/suomipoi/public_html/yhteys.php on line 6
V:
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.
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.
Juu muisti pätkii ei ole mysql_quit() functiota, vaan laita tilalle mysql_close($yhteys)
Laittaa edelleen Fatal Erroria. :S
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ä.
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.