Moi taas!
Mulla on tässä opiskelukirja php&mysql - teoriasta käytäntöön. teen noita harjotuksia tässä. Nyt kohtasin ongelman, olen tehnyt kaikki kirjan esimerkin mukaan, mutta ku ei toimi, ei edes vaikka otan copypastella kirjan tekijän koodin. Teksti kentät tulostuu oikein, mutta sen jälkeen tullee: ei onnaa kytkeytyminen ja sen jälkeen tulee tulee tuota koodia mikä on tossa alla...voisiko joku viisaampi kertoa missä menee vikaan?
<?php $softa = $_SERVER['PHP_SELF']; ?> <form action="<? echo $softa; ?>" method="post"> <label>Kunnan nimi:<br/> <input type = "text" name = "1" ><br> <label>Kuntakoodi<br/> <input type = "text" name = "2" ><br> <input type="submit" value="SUBMIT" /> <br> <input type="reset" value="RESET" /> </form> <?php $yhteys = mysql_connect('localhost', 'xxxx', 'xxxx'); if (!$yhteys) { echo '<p>Ei onnaa kytkeytyminen nyt.</p>'; exit(); } mysql_select_db('xxxx', $yhteys); if (!mysql_select_db('xxxx')) { exit('<p>valitseminen ei onnaa.</p>'); } if (isset($_POST['1'])) { $m1 = $_POST['1']; } if (isset($_POST['2'])) $m2 = $_POST['2']; if (isset($_POST['1'])) { $sql = "INSERT INTO kunnat (nimi, kuntakoodi) VALUES ('$m1', '$m2') "; if (mysql_query($sql)) { echo '<p>Tiedot lisätty.</p>'; } else { echo '<p>Ei onnistunut: '; mysql_error() . '</p>'; } } ?>
Tietokannan luonti koodi:
CREATE TABLE kunnat (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nimi TEXT NOT NULL, kuntakoodi TEXT NOT NULL
);
Onko MySQL:n käyttäjänimi ja salasana varmasti oikein? Kannattaa kehitysvaiheessa tulostaa ihan palvelimen virheviestit funktion mysql_error
avulla.
Suosittelisin myös siirtymään johonkin uudempaan kirjaan. Nykyinen kirja taitaa olla jostakin PHP:n version 4 ajoilta, jonka (huonoja) tapoja ei kannata enää opetella.
Onko tunnukset varmasti oikein?
Kaikki tunnuksen on oikein kyllä.
Ainakin mysql_error()'n tulostus näytti olevan väärin tuossa. Oikein:
echo '<p>Ei onnistunut: '. mysql_error() . '</p>';
Testasin koodia ja toimi kyllä lukuunottamatta vitosrivin kohtaa <? johon vaihdoin <?php. PHP-versioiden törmäys..? Koodissa esiintyviä ihmeellisyyksiä en korjannut.
raakaliha kirjoitti:
Ainakin mysql_error()'n tulostus näytti olevan väärin tuossa. Oikein:
echo '<p>Ei onnistunut: '. mysql_error() . '</p>';Testasin koodia ja toimi kyllä lukuunottamatta vitosrivin kohtaa <? johon vaihdoin <?php. PHP-versioiden törmäys..? Koodissa esiintyviä ihmeellisyyksiä en korjannut.
Ok, samaa valittaa edelleen..pitäsköhän mun nyt sitten vaihtaa opusta jos tuo on kerran vanha jo...mut jatketaan harjotuksia.. =)
Mikä PHP:n versio sulla on?
raakaliha kirjoitti:
Mikä PHP:n versio sulla on?
PHP/5.3.1 tuon xampp paketin sisältö
Yritin tuossa edellä vihjata, että ne MySQL:n virheet voi tulostaa ihan jokaisessa virhekohdassa – myös yhteyden muodostuksen epäonnistuessa.
Yleensä oletuksena xampp-paketissa myslin tunnus on root ja salasana se mitä laitoit. Tarkistahan osoitteesta http://127.0.0.1/phpmyadmin että tietokantasi ja taulu ovat edes olemassa. Jokaisen mysql-feilin yhteydessä voit kutsua echo mysql_error();
Joo..o buuttasin koneen niin nyt toimii! olikohan tietokantayhteys jotenkin jumissa? mut kiitos teille taas avusta! =)
-mmikko
Aihe on jo aika vanha, joten et voi enää vastata siihen.