ugrás a tartalomhoz

Mysql táblákba php-val bevitel probléma

frostywarrior · 2011. Nov. 28. (H), 09.15
Sziasztok!

Olyan problémám van, hogy a mysql adatbázisomba szeretnék feltölteni elemeket, ürlapon keresztül és nem viszi fel az adatot.

Adatbázisom:
Adatbázis neve:db
táblája:users
tábla mezői:
id = INT auto inclement;
username= varchar;
password= varchar;
authority= INT;

Adatbázisomhoz connect.php-ba található elemekkel csatlakozok. Ezt include-olom.


connect.php:
<?php
$dbhost ="localhost";
$dbuser="root";
$dbpass="";
$db='db';

$conn= mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);
?>

create.php:(itt található a form-om POSTTAL elkapott elemei, amit felszeretnék tölteni INSERT-el)

<?php
include "connect.php";
$name = $_POST['inputName'];
$pass = $_POST['inputPass'];
$auth = $_POST['inputAuth'];

if(!$_POST['submit']){
echo "Please fill out the form";
header("Location: list.php");
}else{
mysql_query("INSERT INTO users ('id','username','password','authority') VALUES (NULL,'$name','$pass',$auth)");
echo "USER has been addded!";
//header("Location: list.php");
}



?>

list.php:(Itt van a form)

<?php
include "connect.php";

$query= "SELECT * FROM users";

$result= mysql_query($query);
echo"<table width=30%>";
echo"<tr><td>" . 'Username' . "</td><td>" . 'Password' . "</td><td>" . 'Authority' . "</td></tr>";
echo"</table>";
while( $person= mysql_fetch_array($result)){
echo"<table width=30% >";
echo"<tr><td>" . $person['username'] ."</td><td>". $person['password'] . "</td><td>". $person['authority'] . "</td></tr>";
echo"</table>";
}
?>
<h1> Create a User</h1>
<form action="create.php" method="post">
Username:<input type="text" name="inputName" value=""></input><br>
Password:<input type="text" name="inputPass" value=""></input><br>
Authority:<input type="text" name="inputAuth" value=""></input><br>
<input type="submit" name="submit" value="Add new member"></input>
</form>
 
1

SQL hibaellenőrzés!!

razielanarki · 2011. Nov. 28. (H), 12.43
rossz a lekérés amit futtatsz...
INSERT INTO users ('id','username','password','authority') VALUES (NULL,'$name','$pass',$auth)
helyett
INSERT INTO users (`id`,`username`,`password`,`authority`) VALUES (NULL,'$name','$pass',$auth)
azaz ahol sql változónév van (táblanév, mezőnév stb) ott backtick-kel (" ` ", AltGr+7 magyar bill.en) kell "idézőjelezni" (MySQL-ben legalábbis).

két észrevétel:
1.
írasd ki a mysql hibát! (de csak fejlesztés közben, élesben soha) pl így:
$query = 'SELECT ...'
$result = mysql_query ($query)
if (mysql_errno()) // kiírjuk a hibakódot, szöveget, és a lekérdezést is
   print ('SQL HIBA: #'.mysql_errno().': '.mysql_error()."\n".'<pre>'.$query.'</pre>');
2. escapeld az user oldalról érkező inputot mielőtt a lekérdezésbe illeszted, pl
$name = mysql_real_escape_string ($_POST['inputName']);
2

Köszi :)

frostywarrior · 2011. Nov. 28. (H), 13.40
Jaj Istenem.
Két napja szenvedtem vele.
Köszönöm neked :)

Király vagy!
3

Ajánlanám figyelmedbe:

Pepita · 2011. Dec. 1. (Cs), 08.56