Tom: Registration MySQL und PHP

Beitrag lesen

Hello,

Hi,
Ich habe mir ein kleines Registrations Script gebastellt nur leider bekomme ich es nicht hin das ein Benutzername nur einmal Vorkommen darf.
Ich habe es mal mit folgendem Script versucht :

error_reporting(E_ALL);    ## mindestens auch Notices anzeigen

$abfrage=mysql_query("SELECT Nickname FROM benutzerdaten WHERE Nickname =

$benutzer[0]['Nickname']");

echo $abfrage;

$ergebnis=mysql_num_rows($abfrage);

hier fehlt auch noch die Kontrolle, ob das MySQL-Statement überhaupt verstanden worden ist.

if (mysql_errno($connection) > 0))
{
  ## Fehlerbehandlung, Wiederholung, Abbruch, usw.
  echo mysql_error($connection);
}

if($ergebnis == 0){

Die Abfrage kommt zu spät.
Du musst erst abfragen, ob eine gültige Ergebniskennung vorliegt und erst dann damit arbeiten...

Nur leider erscheint dort der Error :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/vanhellsehn/3.php on line 47

Oder habt ihr noch ne andere IDee wie man es machen könnte ?

Man sollte immer vorne anfangen bei der Programmierung.

Wie sieht denn Dein Create-Statement für die Tabelle aus?

$sql = "show create $tablename";
   $res = mysql_query($sql, $connection);
   if (mysql_errno($connection > 0))
   {
     echo "<p> MySQL-Fehler: " . htmlspecialchars(mysql_error($connection)) . "</p>\n";
   }
   elseif ($res and mysql_num_rows($res) == 1)
   {
     $statement = mysql_fetch_row($res);

echo "<pre>\n";
     echo htmlspecialchars($statement);
     echo "</pre>\n";
   }
   else
   {
     echo "<p> kein Abfrageergebnis"</p>\n";
   }

So ungefähr könntest Du erstmal abfragen, wie Deine Tabelle aufgebaut ist.

Um zu vermeiden, dass doppelte Einträge in Spalten oder Spaltengruppen möglich sind, verwendet man i.d.R. einen UNIQUE INDEX üder die betroffenen Spalten.

Dieser würde dann dazu führen, dass ein Eintragsversuch einer Doublette abgelehnt wird.
Die Statusmeldung (das ist KEIN Fehler!) der Datenbank nach einem Query wertet man ja aus, und ist dann informiert über das vorausgegangene Query.

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)