MySQL abfrage funktioniert nur halb

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL abfrage funktioniert nur halb

    PHP-Code:
    <?php
    if (!isset($gelesen)){ 
    $page"Sie müssen die Regeln anerkennen."

    else 

        
    $connection_db mysql_connect ("localhost""root"""); 

        if (!
    mysql_select_db ("bbbr"$connection_db)) 
        { 
           die (
    "Keine Verbindung zur DB möglich, wenden sie sich bitte
    umgehend an <a href=mailto:dakilla3@freenet.de>Bremer19</a>!"
    ); 
        } 
         
         
    $sql "SELECT * FROM benutzerdaten WHERE Nickname='$Nickname'"
    $result mysql_query($sql); 
    $count mysql_num_rows($result); 
        if (
    $count == 1
        { 
        
    $page "Dieser Benutzer existiert bereits. Bitte wählen sie einen
    anderen Benutzernamen."

        } 
    $pruef "SELECT * FROM benutzerdaten WHERE Email='$Email'"
    $result2 mysql_query($pruef); 
    $count1 mysql_num_rows($result2); 
        if (
    $count1 == 1
        { 
        
    $page "Diese Email existiert bereits. Bitte wählen Sie eine andere"
        } 
            else 
            { 
    $verspass md5($Kennwort); 
    $eintr "INSERT INTO benutzerdaten (Nickname, Kennwort, Email) VALUES
    ('
    $Nickname', '$verspass', '$Email')"

    mysql_query($eintr); 

        if (
    mysql_affected_rows ($connection_db) > 0
        { 
        
    $page "Sie wurden erfolgreich Regsitriert und können sich nun mit
    ihrem Benutzernamen und Passwort einloggen."

        } 
        else 
        { 
        
    $page "Es gab einen Fehler und Sie konnten nicht registriert werden."
        } 


    }
    ?>
    Sooo nu zu meinem problem...wie ihr seht frage ich eine DB ab nach Nickname und Email. Aber: Es wird nur die email geprüft als wenn die Benutzerabfrage gar nicht da wäre.Nehme ich allerdings nun die Emailabfrage raus funktioniert die Abfrage nach dem User wieder...Ich hab keine Ahnung woran das liegen könnte

    Ich weiss das is alles noch mit register_globals=on aber seid doch bitte so nachsichtig und beachtet das mal kurz nicht*gg*...Ich änder das ja gerne aber eben halt erst wenn mein problem gelöst is.

    EDIT: Alles andere funktioniert ohne Probleme also bitte nicht darn herumnörgeln
    Men Name ist Hase, ich weiss von [color=red]NIX[/color]

  • #2
    hmm,

    hast du die queries mal 'pur' in php_my_admin getestet?

    aso, du überschreibst u.U. $page!
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Das Problem ist eher das er die erste if abfrage mit dem benutzer gar nicht parst....Ja du hast recht mit dem überschreiben...aber verhindern das es eingetragen wird sollte es ja trotzdem...wirds aber nicht. An der email abfrage wird das Script gestoppt wenn diese doppelt ist aber nicht an der Benutzerabfrage. Wenn ich nur den User eingebe(Email leer lasse) und dann abschicke trägt er den User ohne zögern doppelt in die DB ein!
      Men Name ist Hase, ich weiss von [color=red]NIX[/color]

      Kommentar


      • #4
        aber verhindern das es eingetragen wird sollte es ja trotzdem...wirds aber nicht.
        diese funktionalität kann ich in deinem code nicht finden!?
        EDIT:
        soll heißen: du prüfst zwar den namen, aber mehr auch nicht!
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          PHP-Code:
          $sql "SELECT * FROM benutzerdaten WHERE Nickname='$Nickname'"
          $result mysql_query($sql); 
          $count mysql_num_rows($result); 
              if (
          $count == 1
              { 
              
          $page "Dieser Benutzer existiert bereits. Bitte wählen sie einen
          anderen Benutzernamen."

              } 
          Und was bewirkt das dann bitte?
          Weil komisch ist doch: wenn ich die emailabfrage aus dem script rauslasse wird bei doppeltem benutzeranem nichts in die Db geschrieben!!!
          Also wird definitiv verhindert das etwas in die DB geschrieben wird!
          Men Name ist Hase, ich weiss von [color=red]NIX[/color]

          Kommentar


          • #6
            also,

            das bewirkt folgendes: wenn der benutzer in der db ist, wird $page mit dem text gefüllt ...

            entfernst du den email-check, steht unter dem namenscheck der else-zweig und somit funktioniert dein script auch ...

            noch deutlicher kann ich es nicht machen
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              du machst:
              Code:
              wenn name schon vorhanden:  schreibe einen wert in eine variable
              
              wenn mail schon vorhanden: schreibe einen wert in eine variable
              wenn mail noch nicht vorhanden: schreibe eintrag in datenbank, egal, ob name schon vorhanden
              überleg dir mal, wie du die if schachteln musst


              oder frag einfach beides in einer abfrage ab
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Ok nu is klar wo der fehler is...thx schonmal.

                überleg dir mal, wie du die if schachteln musst
                Wenn ich das wüsste würde ich nicht fragen und das beschäftigt mich seit gestern 17 uhr Also wäre ich über hilfe jeder art(denkanstoss für einen PHPN00b) sehr dankbar! beides in einer abfrage will ich nicht weil ich dem user sagen will welchesn fehler er geamcht hat.
                Men Name ist Hase, ich weiss von [color=red]NIX[/color]

                Kommentar


                • #9
                  probier doch mal das aus
                  PHP-Code:
                  echo $sql="SELECT
                    (Nickname='
                  $Nickname')  name_schon_da,
                    (EMail='
                  $EMail')  mail_schon_da
                  FROM
                    benutzerdaten
                  WHERE
                     Nickname='
                  $Nickname'
                    OR
                     EMail='
                  $Email'";
                  $result=mysql_query($sql) or die(mysql_error());
                  if (
                  mysql_num_rows()==0)
                    echo 
                  'Neuen Eintrag in Datenbank schreiben';
                  else
                  {
                    
                  $user=mysql_fetch_assoc($result);
                    if (
                  $user['name_schon_da'])
                      echo 
                  'Der Name ist schon vorhanden';
                    if (
                  $user['mail_schon_da'])
                      echo 
                  'Die Mail ist schon vorhanden';
                  }
                  mysql_close(); 
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar

                  Lädt...
                  X