mysql fehlermeldung, und bin zu doof den fehler zu finden

So, nachdem mein PC wieder funktioniert :mrgreen: bin ich mal wieder zu blöd den fehler hier drin allein rauszufinden:

[PHP]
1
mysql_query(„INSERT INTO archiv_login (‚_username‘,‚_passwort‘,‚_email‘,‚_anzahlLogins‘,‚_id‘) VALUES TO ($_POST[‚username‘],$_POST[‚passwort‘],$_POST[‚email‘],‚0‘,‚‘)“);
[/PHP]

Und die fehlermeldung:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in E:\xampp\htdocs\register.php on line 26

Ich find aber nirgendwo nen whitespace
Da kann mir doch sicher en netter kerl weiterhelfen

was soll denn die 1 da oben??

[php]
$sql = „INSERT INTO archiv_login VALUES (’ „.$_POST[‚username‘].“ ', ’ „.$_POST[‚passwort‘].“ ', ’ „.$_POST[‚email‘].“ ', ‚0‘, ‚‘)“;
[/php]

im übringen wäre ein bisschen strukturierung angebracht.

Nils aka XraYSoLo

uups, die ist noch vom editor

Du würdest den Fehler sicherlich viel leichter finden, wenn du die mysql abfrage in einer Variablen definierst.
Das ist sowieso empfehlenswerter, da man dann die gleiche abfrage auf der seite nicht nochmal schreiben muss (falls man sie nochmalk benötigt)
Außerdem solltest du deine Abfrage übersichtlicher schreiben
[PHP]
$sql = „INSERT INTO archiv_login (
‚_username‘,
‚_passwort‘,
‚_email‘,
‚_anzahlLogins‘,
‚_id‘
) VALUES (
„.$_POST[‚username‘].“,
„.$_POST[‚passwort‘].“,
„.$_POST[‚email‘].“,
‚0‘)“;
$res = mysql_query($sql);
[/PHP]

ps: Was bedeutet VALUES TO ? Das muss doch VALUES heißen?!
[COLOR=„Red“]//Edit:
Ups: Xray war schneller

ja, das hab ich mir auch schon gedacht , aber dann mach ich wieder was falsch…

So, nun hab ich das problem: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in…

Warum kommt das?

…(5 Spalten) VALUES (4 Spalten)

klingelts? da fehlt ne Spalte!!

Hab ich schon korrigiert, aber da kommt immer noch die gleiche fehlermeldung, und die query komm auch viel süäter:
[PHP]

<? // Einbinden der Konfigurationsdatei include_once 'config.inc.php'; // Erstellen der Verbindung zur MySQL-Datenbank if( !$connection = mysql_connect( $_config['host'], $_config['user'], $_config['password'] ) ) { die( 'Verbindung zum Datenbankserver konnte nicht hergestellt werden.' ); } $select_same_name = "SELECT * FROM `Tabelle` WHERE `Username` = '".$_POST['username']."'"; $query_select_same_name = mysql_query($select_same_name); $anz = mysql_num_rows($query_select_same_name); if($anz >= 1) { //Der gewünschte Name ist bereits vergeben echo ("Sorry, aber der name ist schon registriert!!!"); } else { // Überprüfen, ob das Formular abgeschickt wurde und ob beide Angaben gemacht wurden. if( isset($_POST['username'], $_POST['passwort'], $_POST['eMail']) AND strcmp(trim($_POST['username']),'') != 0 AND strcmp(trim($_POST['username']),'') != 0 ) { if( !mysql_select_db( $_config['database'], $connection ) ) { die ( 'Die Datenbank ' . $_config['database'] . ' kann nicht verwendet werden.
MySQL-Error:
' . mysql_error() ); } else{ $sql = "INSERT INTO archiv_login ( '_username', '_passwort', '_email', '_anzahlLogins', '_id' ) VALUES ( ".$_POST['username'].", ".$_POST['passwort'].", ".$_POST['email'].", '0', '')"; $res = mysql_query($sql); } } } [/PHP]

Probier mal hinter jede query mit hilfe von
[PHP]or („“)[/PHP]
ne unterschiedliche Fehlermeldung auszugeben, dann schreibst du uns nochmal den code von der betroffenen mysql abfrage
Beispiel:[PHP]$sql = mysql_query($query) or („Fehler bei query 1“);[/PHP]

PS: versuche demnächst bitte deinen code übersichtlich einzurücken

ACH NOCHWAS:

Warum schickst du für id den wert ‚‘ mit, wenn id kein wert zugewiesen werden soll, dann lass es ganz raus

Ne, ich muss ja was mitschicken, da das ja auto_increment ist

bei auto_increment kannst du es ganz weglassen, anhand des defaultwertes wird dann automatisch auto_increment verwendet, als:
[PHP]
$sql = „INSERT INTO archiv_login (
‚_username‘,
‚_passwort‘,
‚_email‘,
‚_anzahlLogins‘,
) VALUES (
„.$_POST[‚username‘].“,
„.$_POST[‚passwort‘].“,
„.$_POST[‚email‘].“,
‚0‘)“;
$res = mysql_query($sql);

[/PHP]

ok, danke, jetzt hab ich aber diese or´s eingefügt und die fehlermeldung ist immernoch dieselbe

wenn du hinter jeder query ein or hast dann müsste der text des or vor oder nach der fehlermeldung stehen, somit kannst du dann rausfinden welche query es war.

in ´ geändert.[PHP]$sql = „INSERT INTO archiv_login (
´_username´,
´_passwort´,
´_email´,
´_anzahlLogins´,
) VALUES (
„.$_POST[‚username‘].“,
„.$_POST[‚passwort‘].“,
„.$_POST[‚email‘].“,
‚0‘)“;[/PHP]

Fehlermeldung bleibt leider immernoch dieselbe und keine ausgabe, wen ich hinter jede query ne abfrage setze.

[PHP]
$sql = „INSERT INTO archiv_login (
´_username´,
´_passwort´,
´_email´,
´_anzahlLogins´,
) VALUES (
'“.$_POST[‚username‘].„',
'“.$_POST[‚passwort‘].„',
'“.$_POST[‚email‘].„',0)“;
[/PHP]

Ich denke mal das die felder in der Datenbank Text o. VarChar oder ect. sind …
Du musst noch gucken ob das feld anzahlLogins Int ist oder auch nen text o. nen varchar …

bei in kannste die " ’ " weglassen und bei char o. text müssen die hin !
dann darste das nicht vergessen [SIZE=4]
[SIZE=2]
[/SIZE]
[SIZE=2][/SIZE][/SIZE]

immer noch dieselbe fehlermeldung: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:\xampp\htdocs\register.php on line 11

mysql_num_rows(); ??? Wo kommt der denn her ? Das hat aber nichts mit dem insert zu tun !

Willste die letze ID der Datensätze rauskriegen oder was ?

dann musste mysql_insert_id(); nehmen

Ich denke, dies ist das Übel …
[PHP]$select_same_name = „SELECT * FROM Tabelle WHERE Username = '“.$_POST[‚username‘].„'“;[/PHP]

Ich glaube nicht, dass Du die Nutzer in der Tabelle ‚Tabelle‘ zusätzlich führst …

Gruß, Jumper, the II.