Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySql, php ei tee mitään tietokantaan

juha127 [10.05.2006 18:18:02]

#

Tässä olen väsännyt erään laista ohjelmaa php:llä. Tuli vastaan ongelma, php ei suostu tekemään muutoksia tietokantaan. Koodirivit:

mysql_query ("CREATE TABLE aiheet (
	nimi TEXT,
	id INT,
	maara INT,
	kirjoittaja TEXT
	);

CREATE TABLE users (
	nimi TEXT,
	passu TEXT,
	arvo INT
	);
	");

##Ei luonut taulua, joten tein käsin####

$query = "SELECT * FROM aiheet ORDER BY id";
	$result = @mysql_query($query);
	$id = mysql_numrows($result) + 1;
	mysql_query ('INSERT INTO aiheet(nimi, id, maara, kirjoittaja, aika) VALUES (' . $_POST["aihe"] . ',' . $id .', "1",' . $_POST["nick"]. ', '. time() .'); ');

##Ei tee mitään merkintää tietokantaan####

Käytössä php4 ja MySql 5.x ja Apache2

Itse silti epäilen vahvasti, jotain yksin kertaista kirjoitus virhettä, jota en löydä.

Minkään näköistä virhe ilmoitusta ei tule.

Olga [10.05.2006 19:00:10]

#

Olethan ottanut yhteyden ja valinnut tietokannan ennen kyselyn suorittamista? Tuo myös näyttää yritykseltä tehdä sitä, minkä AUTO_INCREMENT-kenttä tekee automaattisesti. @-merkki mysql_queryn edessä estää virheilmoituksien tulostuksen, joten se kannattaa ottaa pois varsinkin debuggausvaiheessa. Muutenkin koodi olisi hyvä saada sille mallille ettei moisia kommervenkkejä tarvitsisi edes käyttää. Mysql_query-funktion perään voit myös laittaa ' or die("Virhe: " . mysql_error());', jolloin saat infoa missä mahdollisesti mättää. Lisäksi tekstimuotoinen tieto pitää ympäröidä hipsuilla kun taas numeerista ei tarvitse.

sprawl [10.05.2006 21:07:16]

#

Toivottavasti tästä on apua.
(käytän tätä itse tulosten tallentamiseen)

<?php
//yhteys ulkoiselle palvelimelle
$yhteys = mysql_connect("localhost", "tunnus", "passu") or die(mysql_error());

//valitaan tietokanta "testi"
mysql_select_db("testi", $yhteys);


//valitaan tietokanta "testi"....
mysql_select_db("testi", $yhteys) or die("Tietokantaa ei löytynyt!");

//tähän tulevat tietokantakyselyt!
//haetaan kaikki tietueet
$kysely = "SELECT * FROM taulu";
//suoritetaan kysely
$haku = mysql_query($kysely, $yhteys);

//lisätään tiedot
$sql = "INSERT INTO taulu (tieto1, tieto2, tieto3) VALUES ('".$_POST['tieto1']."','".$_POST['tieto2']."','".$_POST['tieto3']."')";
mysql_query($sql) or die(mysql_error()." SQL: ".$sql);
//exittii
echo "Tiedot tallennettu onnistuneesti";
mysql_close($yhteys);
?>

juha127 [10.05.2006 21:49:40]

#

Noniin, kiitos or die

$query = "SELECT * FROM aiheet ORDER BY id";
	$result = mysql_query($query) or die ("Määrä epäonnistui");
	$id = mysql_numrows($result) + 1;
	$uus_aihe = 'INSERT INTO aiheet(nimi, id, maara, kirjoittaja, aika) VALUES ("' . $_POST["aihe"] . '",' . $id .', 1,"' . $_POST["nick"]. '", "'. time() .'"); ';
	mysql_query ($uus_aihe) or die ("Virhe:  ". mysql_error());

Se että mitään muutoksia ei tullut johtui siitä, että noista $_POST muuttujista tulleet syötteet eivät olleet lainausmerkeissä ""

Kiitos,
tämä oli ensimmäinen itse tekemäni sql ohjelma.

Vastaus

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

Tietoa sivustosta