2010-12-05 6 views
0

Ich habe diese HTML-Formular Seite:PHP MySQL Unexplained Nullwerte-Wie alle Werte in einem Datensatz einfügen?

form1.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd" 
    > 
<html lang="en"> 
<head> 
    <title>Insert Your Details</title> 
</head> 
<body> 
    <h3> Insert Your Name</h3> 
    <form action="form1.php" method="post"> 
    First Name: <input type="text" name="fname"><br> 
     Last Name: <input type="text" name="lname"><br> 
    E-mail: <input type="text" name="mail"><br> 
      <input type="Submit" value="Submit" name="Submit"> 
    </form> 
</body> 
</html> 

, die zu diesem PHP-Skript weiterleitet, um das Formular handhaben:

form1.php

<?php 
$connection = mysql_connect("localhost","root","") 
or die ("Couldn't Connect To Server"); 
$db = mysql_select_db("db1", $connection) 
or die ("Couldn't Select Database"); 
$query = "CREATE TABLE IF NOT EXISTS table1 (Name VARCHAR(20))"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
$query = "INSERT INTO table1 (fname) VALUES ('".$_POST[fname]."')"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
$query = "INSERT INTO table1 (lname) VALUES ('".$_POST[lname]."')"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
$query = "INSERT INTO table1 (mail) VALUES ('".$_POST[mail]."')"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
$query = "SELECT * FROM table1"; 
$result = mysql_query($query) 
or die ("Query Failed: " . mysql_error()); 
    echo "<TABLE BORDER = '1'>"; 
    echo "<TR>"; 
    echo "<TH>First Name</TH>"; 
    echo "</TR>";  
while ($row = mysql_fetch_array($result)) 
    { 
echo "<TR>"; 
echo "<TD>", $row['fname'], "</TD><TD>", 
$row['lname'], "</TD><TD>", 
$row['mail'], "</TD>"; 
echo "</TR>"; 
    } 
    echo "</TABLE>"; 
    mysql_close($connection); 
?> 

Nun, aus irgendeinem Grund, wenn ich diese Val einfügen ue:

First Name: Wide 
Last Name: Blade 

Ich bekomme viele NULL-Werte in der MySQL-Tabelle.

Also meine Frage ist: Wie füge ich alle diese Werte in den gleichen Datensatz, so bekomme ich diese NULL-Datensätze in der Tabelle nicht?

+0

@ajreal nicht sicher, dass ich die Bearbeitung verstanden habe ... erklären? – t0mgs

+0

@WideBlase - schneiden Sie die Begrüßung, hilft nicht bei Ihrer Frage – ajreal

+0

@ajreal - wird von jetzt an tun. Vielen Dank. – t0mgs

Antwort

2

insert fügt einen neuen Datensatz (Zeile) in die Datenbank ein - Sie möchten nur einmal eine Insert-Anweisung ausführen.

INSERT INTO table1(fname, lname, mail) VALUES ($fname, $lname, $mail); 

UPDATE: Auch - Sie müssen gegen SQL-Injection schützen, entweder durch Eingabe entkommen, oder Prepared Statements.

+0

OK Freddie - also habe ich alles auf einen einzigen Datensatz geändert. – t0mgs

+0

Was ist diese austretende Eingabe? sich auf etwas Gutes beziehen, um darüber zu lesen? – t0mgs

+0

@WideBlade - http://php.net/manual/en/function.mysql-real-escape-string.php – ajreal