MySQL führt eine Abfrage nicht richtig aus?

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

  • MySQL führt eine Abfrage nicht richtig aus?

    Hi,

    ich habe gerade ein Problem bei etwas, was ich gerade programmiere. Es geht um ein Anmeldeformular.

    1. die Userdaten werden ganz normal in ". $tbl_prefix ."users hochgeladen, wo durch auto_increment eine userid vergeben wird.

    2. Dem Werber wird auch ganz normal der Ref zugewiesen.

    3. $user_id = mysql_insert_id(); funktioniert nicht. Somit funktioniert alles danach nicht. Wodran kann das liegen? Ich möchte mit dem Befehl die gerade zugewiesene userid aus ". $tbl_prefix ."users abfragen...

    Hier der komplette Code
    Code:
    mysql_query("INSERT INTO ". $tbl_prefix ."users (username, password, email, status, joined, registration_ip,
     usergroup, favourites, time_zone, werber)
    				VALUES ('". $_POST['username'] ."', '". md5($_POST['password']) ."', '". $_POST['email'] ."', '". 
    ($settings['email_confirmation'] == 1 ? 0 : 1) ."', ". $u_time .", '". $session->ip ."', '1', '', ". (int) $settings['time_zone'] .", '".
     $_COOKIE['iplay2win'] ."')");
    
    			mysql_query("UPDATE ". $tbl_prefix ."users  SET refrally = refrally + 1,   geworben = geworben + 1 WHERE
     username = '". $_COOKIE['iplay2win'] ."' ");
    
    				
    			$user_id = mysql_insert_id(); // user id
    
    
    			mysql_query("INSERT INTO ". $tbl_prefix ."profile (user_id, css) VALUES (". $user_id .", '')");
    
    
    			// time to insert our new user to table
    			if ($settings['email_confirmation'] == 1) {
    				$code = substr(md5(uniqid(rand())), 0, 10);
    
    				mysql_query("INSERT ". $tbl_prefix ."activation (uid, code, dateline) VALUES (". $user_id .", '".
     $code ."', ". ($u_time + 2 * 24 * 60 * 60) .")");
    Ich hoffe ihr könnt mir helfen. Bin schon am verzweifeln...
    Zuletzt geändert von newmediaBU; 22.05.2011, 13:36.

  • #2
    1. Bitte Code umbrechen, wie es in den Forenregeln steht.
    2. Sinnvolle Fehlerbehandlung betreiben; dazu gehört u.a. Auswertung des Rückgabewertes der MySQL-Funktionen und Nutzung von mysql_error.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      du ziehst den mysql_insert_id zu spät - den gibts nur direkt nach dem INSERT ... dein Update macht den Aufruf quasi unmöglich -> vertauschen (INSERT -> mysql_insert_id -> Update)

      Außerdem solltest du gerade bei deinen etwas "längeren" Abfrage-Texten, diese Query-Strings erstmal in einer Variablen ablegen - die lässt sich zu debug-Zwecken auch mit var_dump ausgeben und dann verwendest du mysql_query zusammen mit der Variablen....

      Den somit ausgegebenen SQL-String kopierst du bitte aus dem Browser und führst ihn im SQL-Fenster von phpmyadmin aus... wenn der damit zufrieden ist, kanns weitergehen zum nächsten SQL-String usw
      Zuletzt geändert von eagle275; 23.05.2011, 07:16.
      [font=Verdana]
      Wer LESEN kann, ist klar im Vorteil!
      [/font]

      Kommentar

      Lädt...
      X