Daten werden mysql nicht übergeben

fizban

Mitglied
Hi,

aus irgendeinem Gund werden die Daten, die eingebe nicht an mysql weitergegeben.
kann mir jemand sagen warum?

MfG

PHP:
<html>
<?

if ($submit)

	{
	$db = mysql_connect("localhost","root","");
	mysql_select_db("test",$db) or die(mysql_error());

 $sql = "INSERT INTO info (name, nachname) VALUES (´$name´, $´nachname´)";
	$result = mysql_query($sql);
	echo "Inforamtionen erfolgreich übermittelt!\n";
	}

else

	{
	?>
	<form method="post" action="input.php">
	Vorname :<input type="Text" name="name"><br>
	Nachname:<input type="Text" name="nachname"><br>
	<input type="Submit" name="submit" value="Übertragen"></form>
	<?
	}
?>
</html>
 
PHP:
$sql = "INSERT INTO info (name, nachname) VALUES (´$name´, $´nachname´)";
Hier hast du die Quotes verwechselt. Richtig:
PHP:
$sql = "INSERT INTO info (`name`, `nachname`) VALUES ('".$name."', '".$nachname."')";
Ps:
PHP:
if ($submit)
Ist total veraltet.
Du solltest (wie bei dem SQL-Query auch) lieber die superglobalen Arrays und bei der If-Abfrage ein isset benutzen:
PHP:
if (isset($_GET['submit']))

Pps: Ein bearbeiten der Daten, die in deine DB gespeichert werden, gemaess der magic_quotes-Einstellung sollte auch drin sein.
(addslashes, falls magic_quotes nicht gesetzt ist)
 
Hallo,


hab das jetzt mal geändert, es passiert aber immer noch nichts

Vielleicht mach ich ja was falsch bei den Hochkommas?

Welche sind denn wann zu verwenden ( ` ´ ' ") ?

Ich weiss jedenfalls nich mehr weiter.

Hab eigentlich nur das übungsscript abgeschrieben.


MfG
 
` sind Backticks. In Backticks kommen bei MySQL-Query Tabellen- und Spaltennamen.

' sind Singlequotes, die in MySQL-Query tatsächliche Werte begrenzen

" sind Doublequotes und habe unmittelbar IN einem MySQL-Query nichts zu suchen, werden aber gebraucht um unter PHP Strings zu begrenzen, bzw. zu öffnen und zu schließen.
 
Müsste er $result nicht nochmal irgendwie "ausführen" ?!
Ich würde es eh so schreiben:
PHP:
$if(isset($_POST['submit'])) {
 # DB Verbindung
 if(mysql_query("INSERT INTO info VALUES ('".$_POST['name']."', '".$_POST['nachname']."')")) echo 'DB Eintrag erfolgreich';
 else echo 'Error';
 }
 
$result ist doch bei ihm schon der Rückgabewert der Funktion mysql_query(). Was soll er denn da noch groß ausführen?
 
Hi,

ich habe mal die if anweisung in eine php seite gespeichert, und die else in eine php.
damit funktioniert es einwandfrei.

Aus irgendeinem Grund, scheint die submit funktion keinen wert zu übergeben
(wenn ich submit !=0 mache funktioniert es auch.)

Woran könnte das liegen?



MfG
 
fizban, auch du darfst dich an unsere Netiquette und die damit verbundene korrekte Groß-/Kleinschreibung halten. ;)
 
Zurück