• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mysql fehlermeldung, und bin zu doof den fehler zu finden

Status
Für weitere Antworten geschlossen.

byspeed

Neues Mitglied
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','')");



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
 
Werbung:
was soll denn die 1 da oben??

PHP:
$sql = "INSERT INTO archiv_login VALUES (' ".$_POST['username']." ', ' ".$_POST['passwort']." ', ' ".$_POST['email']." ', '0', '')";

im übringen wäre ein bisschen strukturierung angebracht.

Nils aka XraYSoLo
 
Werbung:
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);

ps: Was bedeutet VALUES TO ? Das muss doch VALUES heißen?!
//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?
 
Werbung:
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. <br />
MySQL-Error: <br />' . 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);
}
}
}
 
Probier mal hinter jede query mit hilfe von
PHP:
or ("")
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");

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
 
Werbung:
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);
 
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.
 
Werbung:
' in ´ geändert.
PHP:
$sql = "INSERT INTO archiv_login ( 
´_username´, 
´_passwort´, 
´_email´, 
´_anzahlLogins´, 
) VALUES ( 
".$_POST['username'].", 
".$_POST['passwort'].", 
".$_POST['email'].", 
'0')";
 
PHP:
$sql = "INSERT INTO archiv_login (  
´_username´,  
´_passwort´,  
´_email´,  
´_anzahlLogins´,  
) VALUES (  
'".$_POST['username']."',  
'".$_POST['passwort']."',  
'".$_POST['email']."',0)";

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 '

 
Werbung:
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
 
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']."'";

Ich glaube nicht, dass Du die Nutzer in der Tabelle 'Tabelle' zusätzlich führst ....

Gruß, Jumper, the II.
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben