Problem mit eintragung in mysql

ciubic

Mitglied
Hallo also ich habe ein Problem mit einer Eintragung

PHP:
 $db_2 = mysql_connect ($sqlhost,$username,$passwort);
mysql_select_db ($database);
$sql_2="INSERT INTO Benutzer (usernamen, passwoerter, planinamen, email, rassen) VALUES (\"$user\", \"$pass\", \"$planiname\", \"$email\", \"$rasse\")";
$sql_3="INSERT INTO daten (kristall, wasserstoff, energie, usernamen, metall) VALUES (500, 200, 0, \"$user\", 600)";
$sql_4="INSERT INTO Nachrichten (usernamen, nachricht, Betreff, ab_user, gelesen) VALUES (\"$user\", \"$nachricht_e\", \"$betreff_e\", \"$ab_e\", 0)";
$sql_5="INSERT INTO fl_bl_bau (username, name, lv_j, lv_d, bau, forsch, fertig) VALUES (\"$user\", Metallmine, 0, \"$nix_nix_nix\", \"$nix_nix_nix\", \"$nix_nix_nix\", \"$nix_nix_nix\")";
$sql_6="INSERT INTO fl_bl_bau (username, name, lv_j, lv_d, bau, forsch, fertig) VALUES (\"$user\", Kristallmine, 0, \"$nix_nix_nix\", \"$nix_nix_nix\", \"$nix_nix_nix\", \"$nix_nix_nix\")";
$sql_7="INSERT INTO fl_bl_bau (username, name, lv_j, lv_d, bau, forsch, fertig) VALUES (\"$user\", Brenstoffzelle, 0, \"$nix_nix_nix\", \"$nix_nix_nix\", \"$nix_nix_nix\", \"$nix_nix_nix\")";
$result_2 = mysql_query($sql_2,$db_2);
$result_3 = mysql_query($sql_3,$db_2);
$result_4 = mysql_query($sql_4,$db_2);
$result_5 = mysql_query($sql_5,$db_2);
$result_6 = mysql_query($sql_6,$db_2);
$result_7 = mysql_query($sql_7,$db_2);
//muss 1 sein ´sonst fehler
echo $result_2;
echo "<br>";
echo $result_3;
echo "<br>";
echo $result_4;
echo "<br>";
echo $result_5;
echo "<br>";
echo $result_6;
echo "<br>";
echo $result_7;
echo "<br>";
if ($result_2 == "1" and $result_3 == "1" and $result_4 == "1" and $result_5 == "1" and $result_6 == "1" and $result_7 == "1")
{
echo '<meta http-equiv="refresh" content="0; url=fin.php">';
}
else
{
echo "<center>ERROR: Es is ein Fehler aufgeträten bitte erneut anmelden (haben sie alle Felder ausgefüllt).</center>";
}
mysql_close($db_2);
}

Eigentlich eine einfache Eintragung nur dass aber nur die ersten 3 Eintrgungen gehen

kann es sein dass es zuviele Eintragungen sind

also hier die Ausgabe:

1
1
1




ERROR: Es is ein Fehler aufgeträten bitte erneut anmelden (haben sie alle Felder ausgefüllt).

Die Ausgabe sagt mir die ersten 3 passen die Anderen nicht
 
Metallmine, Kristallmine und Brennstoffzelle stehen nicht in Anführungszeichen.
Ich verwende immer Hochkomma (') und keine Anführungszeichen (") bei den Values, bin mir aber nicht sicher, ob das einen Unterschied macht.
 
zu hpvw Also bei den ersten 3 Eintrgungen trage ich zb 600 auch ohne "" und dass lauft
zu Timbonet Dass mach ich so oder :


PHP:
 if ($result_2 == "1" and $result_3 == "1" and $result_4 == "1" and $result_5 == "1" and $result_6 == "1" and $result_7 == "1")
{
echo '<meta http-equiv="refresh" content="0; url=fin.php">';
}
else
{
echo "<center>ERROR: Es is ein Fehler aufgeträten bitte erneut anmelden (haben sie alle Felder ausgefüllt).</center>";
mysql_error();
}
mysql_close($db_2);
}

oder muss ich des mit echo() machen

Danke
 
600 ist aber ein int und Metallmine ein String!
Und Timbonet meinte wohl
PHP:
echo mysql_error();
nach JEDEM mysql_query, dann gibt Dir MySQL nämlich eine Aussagefähigere Fehlermeldung, als "da hat was nicht funktioniert".
 
Zuletzt bearbeitet:
OK

Also muss ich immer wenn ich Buchstaben eintragen will die nicht in einer variable stehen "" machen oder

so Richtig:

PHP:
 $sql_5="INSERT INTO fl_bl_bau (username, name, lv_j, lv_d, bau, forsch, fertig) VALUES (\"$user\", "Metallmine", 0, \"$nix_nix_nix\", \"$nix_nix_nix\", \"$nix_nix_nix\", \"$nix_nix_nix\")";

oder ist es besser mit '

Danke
 
Mal sehen, was das Handbuch dazu sagt:
Section 9.1.1 Strings:
A string is a sequence of characters, surrounded by either single quote (''') or double quote ('"') characters. Examples:

'a string'
"another string"

If the server SQL mode has ANSI_QUOTES enabled, string literals can be quoted only with single quotes. A string quoted with double quotes is interpreted as an identifier.
Also scheinen mir Hochkomma sicherer, für den Fall, dass die Queries auch mal auf einem anderen Server landen.

Section 9.1.2 Numbers:
Integers are represented as a sequence of digits. Floats use '.' as a decimal separator. Either type of number may be preceded by '-' to indicate a negative value.

Examples of valid integers:

1221
0
-32

Examples of valid floating-point numbers:

294.42
-32032.6809e+10
148.00

An integer may be used in a floating-point context; it is interpreted as the equivalent floating-point number.
Also kommen Zahlen in keine Hochkomma und in keine Anführungszeichen.

Weiterhin ist zu beachten, dass der "identifier quote character" der Backtick (`) ist, damit später keine Fragen aufkommen (-> Section 9.2 Database, Table, Index, Column, and Alias Names).

Gruß hpvw
 
Zurück