Fehlerhafte PHP Scripts

01/31/2013 15:24 passo#1
Servus Leute!

In unserer Schule haben wir die Aufgabe bekommen, ein ''Social Network'' zu programmieren.

Schön und gut. Ich fange hierbei mit der Registration an und schon kommen ein paar Probleme. (Zur Info! Wir programmieren das ganze ohne jegliche Vorkenntnisse mit php und mysql)

Folgende Probleme treten auf:

Quote:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\social\eintragen.php on line 19
Quellcode:



2. Problem:

Ich kann nur ein Benutzer registrieren (Trotz der Fehlermeldung funktioniert eine einmalige registration.). Sobald ich ein 2. Benutzer registrieren möchte, kommt die Fehlermeldung (Im Script: echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>"; )



Es würde mich freuen, wenn ihr mir helfen könntet :) (Werden sehr wahrscheinlich in laufe der Woche mehrere Fragen auftauchen.. :))
01/31/2013 16:25 MrPuschel#2
Man gleicht keine ID mit LIKE ab, benutze dazu '='.

Der Fehler sagt dir sehr genau was passiert.

mysql_query liefert ein Objekt vom Typ ressource zurück. Ist ein Fehler aufgetreten, wird false vom Typ boolean zurückgegeben.

Also liefert mysql_query wohl false zurück. Sprich, dein SQL Query ist fehlerhaft.
01/31/2013 16:40 passo#3
Da ich ein totaler anfänger bin weiß ich natürlich nicht wie ich das nun beheben kann.
01/31/2013 16:54 Mikesch01#4
Warum solltet ihr etwas programmieren, obwohl ihr nicht wisst, wie ihr damit umgehen sollt? Verstehe die Logik nicht.
01/31/2013 17:05 MrPuschel#5
Wenn du den code geschrieben hast weist du auch wie du das behebst.
01/31/2013 17:10 passo#6
Mikesch01 Fachabitur, wir sollen es uns selber bei bringen. Bei fragen können wir uns auch an den Lehrer wenden. :)
01/31/2013 17:23 KoKsPfLaNzE#7
btw was willst uns mit fachabi sagen?

du fragst ab ob die loginid aehnlich wie der username ist. ich kenn es so das die id eine zahl ist und der username ein string und das is denk ich ma schon mal falsch. ebenso sollte man so einen string nicht in sql schreiben. wuerde eher '".$username."' machen und das ganz noch bissel gegen sql injection zeugs schuetzen.

was du auch ma machen kannst ist dir mysql_error aus geben lasse.
01/31/2013 17:47 Mikesch01#8
PHP Code:
$result mysql_query("SELECT login FROM network WHERE loginid = '".$username."'"); 
Versuchs damit. Sollte dies nicht gehen, existiert entweder das Attribut loginid nicht oder die Tabelle login ist nicht vorhanden.

Gruß
01/31/2013 17:56 passo#9
Danke für den Tipp Mikesch01

Ich werde es mal ausprobieren. Werde dann rückmeldung geben (denke aber erst morgen oder am Wochenende)
02/01/2013 00:20 .Marcel'#10
nutze nicht == "" sondern empty()