Hei! Olen asentanut omalle windows koneelleni apachen, mysql:n ja php:n ja nyt yritän tehdä mysql -kyselyn php:n avulla, mutta saan vaan kokoajan pelkkää valkoista. Ei tule edes mitään virheilmoituksia. Mysql toimii, pääsen siihen käsilsi mysql administraattorin kautta, ja myös phpinfon tulostaminen onnistuu. Olen yrittänyt oppaista, ohjeista ja googlesta selvitellä tätä mutta en vaan tajua mitä teen väärin? Voisiko joku ystävällinen sielu auttaa?
Sivuni näyttää tältä:
<html><body> <?php //yhdistetään palvelimelle $yhteys = mysql_connect("localhost", "muori", "*****") or die("Yhdistäminen ei onnistunut!"); //valitaan tietokanta mysql_select_db("yrityshaku", $yhteys) or die("Tietokantaa ei löytynyt!"); //haetaan kaikki tietueet $kysely = "SELECT * FROM perustiedot"; //suoritetaan kysely $haku = mysql_query($kysely, $yhteys); echo "<table>"; echo "<tr><td>Ytunnus</td><td>Toiminimi</td><td>Osoite</td><td>Puhelin</td><td>www</td><td>Toimiala</td></tr>"; //käydään taulua läpi for ($i = 0; $i < mysql_num_rows($haku); $i++) { //haetaan ytunnus, toiminimi, osoite, puhelin, www ja toimiala muuttujiin $ytunnus = mysql_result($haku, $i, "ytunnus"); $toiminimi = mysql_result($haku, $i, "toiminimi"); $osoite = mysql_result($haku, $i, "osoite"); $puhelin = mysql_result($haku, $i, "puhelin"); $www = mysql_result($haku, $i, "www"); $toimiala = mysql_result($haku, $i, "toimiala"); //tulostetaan taulukon rivi echo "<tr><td>$ytunnus</td><td>$toiminimi</td><td>$osoite</td><td>$puhelin</td><td>$www</td><td>$toimiala</td></tr>"; } echo "</table>"; echo "</body></html>"; //suljetaan yhteys mysql_close($yhteys); ?> </body></html>
miksi tulostaa kaksi kertaa tagit
</body></html>
oho joo, ei ole syytä, otin ne pois. Mutta tämä ei vielä ratkaissut ongelmaa..
En tiedä mikä järjestelmä sinulla on, mutta jos linux, niin luultavasti
error.log sisältää tiedon, mikä on pielessä.
Väännä php.inistä virheilmotukset päälle:
error_reporting = E_ALL
display_errors = On
Suurehkolla todennäköisyydellä yrität tulostaa jotakin mitä ei löydy kannasta. Laita kyselyn jälkeen
<?php echo mysql_error(); ?>
Muutoinkin kannattaa tehdä näin
Tällöin ei tarvitse käyttää mysql_result funktiota.
Kuten Blaze jo sanoikin, niin ongelmasi on se, että virheentulostukset on pois päältä (oletuksena). Tämän takia et näe virheilmoituksia.
Blazen ratkaisu tuottaa sinulle virheitä ruudulle ja osaat korjata.
-W-
Kiitokset avusta! Sain vikailmoitukset päälle :) ja ongelman taustalla oli se että minulla ei ollut libmysql.dll ja php_mysql.dll -tiedostoja kopioituna tuonne Windows\System32 kansioon. Nyt toimii ja voin alkaa pohdiskelemaan tuota php:tä tarkemmin.
Kauhee purkkaratkaisu :), pistä mieluummin PHP:n hakemisto PATH-ympäristömuuttujaan.
EDIT: Nojoo, ainut argumentti, mitä keksin tähän hätään, että voipi ajella sitten PHP:tä mistä tahansa. Lisäksi ehkä hienoinen semanttinen syy. Haistan turhan kiistan aiheen, väitelkäämme.
tsuriga kirjoitti:
ainut argumentti, mitä keksin tähän hätään
Tässä sulle toinen: päivitettäessä PHP:tä ei tarvi muistaa kopsia noita filuja sinne Windows\System32:een.
jaahans, eli sinne system32:hon ei tarvii mitään kopsata? mitäköhän mä tein sitten että se alko toimimaan, kun sain nimittäin virheilmoituksen "fatal error: Call to undefined function mysql_connect" -> googletin avuja ja lisäsin php.iniin extension=php_mysql.dll + koppasin noi kaksi tiedostoa system32 kansioon.
Mitä tuo "PHP:n hakemisto PATH-ympäristömuuttujaan" tarkoittaa? Ei ymmärrä. Onks toi sama juttun kun tuo extension=php_mysql.dll ?
http://www.tol.oulu.fi/~ilkka/JAVA_matskut/
Lue tämä ja lisää polku PATH-ympäristömuuttujaan.
HUOM. Muista puolipiste.
Kiitos, mulla oli vähän eri tavalla tuo, mulla oli "system variablessa" PATH-kohdassa tällanen litania:
C:\PHP\;%SystemRoot%\system32;%SystemRoot%;
Lisäsäin siihen "user variables for muori" kohtaan sitten PATH C:\PHP\;
---
Olen nyt poistanut sieltä system32 kansiosta ne kaksi fileä, ja tuntuu toimivan jokatapauksessa. Nyt on vaan sellainen ongelma että debuggauksessa saan herjan "Module 'mysql' already loaded in Unkown on line 0" (näyttää kuitenkin sivun ok). Tarkistin että php.inissä ei ainakaan ole sitä "extension=php_mysql.dll" kohtaa kahteen otteeseen.. mitä muuta tässä voisi olla? Tämä herja tuli jo ennekuin muutin tuon PATH jutun sinne ympäristömuuttujiin.
MUOKS: komento takaisin, multa puuttuikin vain yksi täppä sieltä debuggausohjelmasta =)
Aihe on jo aika vanha, joten et voi enää vastata siihen.