Datenbank soll überprüfen ob es User schon gibt

MirakFH

Mitglied
So, ich poste erst mal mein ganzes Script.
PHP:
<table width="641" height="77" border="0" cellpadding="0" cellspacing="0" class="text">
  <tr>
    <td height="29" background="img/c1.jpg"><strong>&nbsp;&nbsp;&nbsp;Test-Seite &raquo; Registrieren &raquo;  &Uuml;berpr&uuml;fen / Senden </strong></td>
  </tr>
  <tr>
    <td background="img/c2.jpg"><table width="641" border="0" cellpadding="0" cellspacing="0" class="text">
        <tr>
          <td width="16">&nbsp;</td>
          <td width="611">
          <?
          $connect = mysql_connect(localhost, ***, ***);
          mysql_select_db(usr_web128_1);
          $sql = "SELECT reg_nick FROM register WHERE name = '".$_POST["reg_nick"]."'";
          $result = mysql_db_query("register", $sql);
          $num = mysql_num_rows();
          if($num>0)
          {
          echo "gibt es schon";
          }
          else
          {
          echo "gibt es noch nicht";
          } 
          if(!$_POST["reg_nick"] or !$_POST["reg_mail"] or !$_POST["reg_mailcheck"] or !$_POST["reg_password"] or !$_POST["reg_passwordcheck"] or $_POST["reg_mail"] != $_POST["reg_mailcheck"] or $_POST["reg_password"] != $_POST["reg_passwordcheck"])
          {
          echo "<br>Bitte folgende Angaben überprüfen:<br><br>";
          }
          if(!$_POST["reg_nick"])
          {
          echo "- Bitte Nickname überprüfen<br><br>";
          }
          if(!$_POST["reg_mail"])
          {
          echo "- Bitte eMail überprüfen<br><br>";
          }
          if(!$_POST["reg_password"])
          {
          echo "- Bitte Passwort überprüfen<br><br>";
          }
          if($_POST["reg_password"] != $_POST["reg_passwordcheck"])
          {
          echo "- Deine angegebenen Passwörter sind nicht identisch<br><br>";
          }
          if($_POST["reg_mail"] != $_POST["reg_mailcheck"])
          {
          echo "- Deine angegebenen eMail-Adressen sind nicht identisch<br><br>";
          }
          $truecheck = 1;
          if($_POST["reg_nick"] != "" && $_POST["reg_mail"] != "" && $_POST["reg_mailcheck"] != "" && $_POST["reg_password"] != "" && $_POST["reg_passwordcheck"] != "" && $truecheck==1 && $_POST["reg_password"] == $_POST["reg_passwordcheck"] && $_POST["reg_mail"] == $_POST["reg_mailcheck"] && $sql != $_POST["reg_nick"])
          {
          echo "<br>Vielen Dank für deine Anmeldung.<br><br>";
          $query = mysql_query("INSERT INTO `register` (`reg_nick`,`reg_mail`,`reg_password`) VALUES ('".$_POST["reg_nick"]."','".$_POST["reg_mail"]."','".md5($_POST["reg_password"])."')");
          }
          ?>
          </td>
          <td width="16">&nbsp;</td>
        </tr>
    </table></td>
  </tr>
  <tr>
    <td height="29" background="img/c3.jpg"></td>
  </tr>
</table>
aus register.php wird Benutzername mit $_POST["reg_nick"] übergeben.

Meine Tabelle heißt register und meine Spatel id, reg_nick, reg_mail und reg_password
 
Und jetzt sollen wir Dir Dein Script anpassen?

Hier ein Beispiel:
PHP:
$users=mysql_query("select * from users where username='".$_POST['username']."'");
if (mysql_num_rows($users)==0)
 {
  //in DB eintragen
 }
else
 {
  //Fehler ausgeben
 }

Nachtrag: Ich finde Deine komplette IF-Konstruktion zum ueberpruefen der Eingaben vollkommen verwirrend und bin recht sicher, dass sich das auch wesentlich einfacher gestalten laesst.
 
Zuletzt bearbeitet:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web128/html/testseite/registercheck.php on line 14
User
Vielen Dank für deine Anmeldung.

Der Fehler kommt jetzt. Er schreibt es nicht mehr in die DB, es kommt der Fehler das es den User schon gibt und die Meldung, das es in die DB geschrieben wurde... mhh mal überlegen
 
Naja, so natuerlich ist das hier im Forum leider nicht.

Dann zeig doch mal bitte wie Dein Code grad so aussieht.
Es sollte der Teil um mysql_num_rows() reichen.
 
Die Fehlermeldung deutet auf einen SQL-Fehler im Query.
Nenne mal die SQL-Fehlermeldung, die Du mit echo [phpf]mysql_error[/phpf]; erhältst und zeige Dein fertiges Query (den erzeugten String, nach Einfügen der Variablen).

Gruß hpvw
 
Also von der Funktion her geht jetzt alles so weit. Muss es nur noch anpassen und 100%ig verstehen, weil sosnt bringt es mir ja gar nicht.

if(mysql_num_rows($users) == 0)

Das versteh ich nicht ganz, was genau macht die 0?

Vielen dank für eure Hilfe
 
mysql_num_rows() gibt Dir die Anzahl der gefunden Eintraege zurueck.
Wenn Du nach einem Usernamen suchst kann er da sein oder nicht.
Wenn er nicht da ist, ist die Anzahl der gefunden Eintraege logischerweise 0.
 
Zurück