Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Mikä vikana? (PHP)

Sivun loppuun

mmikko [18.09.2010 13:12:33]

#

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
);

trilog [18.09.2010 13:24:46]

#

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.

pake10 [18.09.2010 13:24:50]

#

Onko tunnukset varmasti oikein?

mmikko [18.09.2010 13:36:02]

#

Kaikki tunnuksen on oikein kyllä.

raakaliha [18.09.2010 13:50:07]

#

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.

mmikko [18.09.2010 14:04:34]

#

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.. =)

raakaliha [18.09.2010 14:11:30]

#

Mikä PHP:n versio sulla on?

mmikko [18.09.2010 14:16:24]

#

raakaliha kirjoitti:

Mikä PHP:n versio sulla on?

PHP/5.3.1 tuon xampp paketin sisältö

trilog [18.09.2010 14:18:21]

#

Yritin tuossa edellä vihjata, että ne MySQL:n virheet voi tulostaa ihan jokaisessa virhekohdassa – myös yhteyden muodostuksen epäonnistuessa.

raakaliha [18.09.2010 14:25:43]

#

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();

mmikko [18.09.2010 14:50:16]

#

Joo..o buuttasin koneen niin nyt toimii! olikohan tietokantayhteys jotenkin jumissa? mut kiitos teille taas avusta! =)

-mmikko


Sivun alkuun

Vastaus

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

Tietoa sivustosta