Jump to content

Weird MySQL/Form problem


Nolongerused3921

Recommended Posts

Okay well let me explain the situation: I'm currently writing a moderate users area for a site I'm working on, now thats all fine and dandy - pretty easy to do... However I've run into a major, very annoying bug that only seems to surface on my non-test machine (Non-localhost).

The problem basically is this: When you edit a user, all of the forms are filled out and you are allowed to edit them (Username, location, etc.) and finally you can submit these changes, however - the first time a user is edited, ALL of the data is erased - the form data is SENT, I've checked this by printing the $_POST's, but MySQL just doesn't update the user THE FIRST TIME - its updated the second, third, fourth, etc. time... But never the first.

My code:
[code]
    $user_id_e = $var1;
    $username_e = $_POST['username'];
    $email_e = $_POST['email'];
    $country_e = $_POST['country'];
    $fav_genre_e = $_POST['fav_genre'];
    $fav_artist_e = $_POST['fav_artist'];
    $user_level_e = $_POST['user_level'];
    
    $mysql->query("UPDATE users SET username='$username_e', email='$email_e', country='$country_e', fav_genre='$fav_genre_e', fav_artist='$fav_artist_e', user_level='$user_level_e' WHERE id='$user_id_e'", "update_user");
[/code]

The $mysql->query is just a basic function to run a query and put it into a cache to call up later (To get fetch_row, affected_rows, etc.)

Does anyone know what in gods name could be going wrong? Any ideas at all? I'm willing to accept even the most off the wall "Sun spots" explaination... I just need to know why this isn't working THE FIRST TIME, but does all times after that.
Link to comment
https://forums.phpfreaks.com/topic/4858-weird-mysqlform-problem/
Share on other sites

[!--quoteo(post=354613:date=Mar 13 2006, 01:24 PM:name=keeB)--][div class=\'quotetop\']QUOTE(keeB @ Mar 13 2006, 01:24 PM) [snapback]354613[/snapback][/div][div class=\'quotemain\'][!--quotec--]
can you post the [b]query[/b] method ? i am sure the problem lies in there.. [=
[/quote]

I thought that was the problem at first too, but, well - take a look for yourself :(
[code]
    function query($the_query, $cached_name) {
        $this->query_id = mysql_query($the_query);
    
        if (! $this->query_id )
        {
            $this->fatal_error("mySQL query error: $the_query");
        }
    
        $this->query_count++;
        $this->obj["cached_queries"]["$cached_name"] = $this->query_id;
        return $this->query_id;
    }
[/code]
Link to comment
https://forums.phpfreaks.com/topic/4858-weird-mysqlform-problem/#findComment-17097
Share on other sites

What a weird method :D

Try commenting out everything in the middle layer.. see if that helps.. and.. what does that do? can you post the method for that one?


[code]  public  function query($the_query, $cached_name) {
        $this->query_id = mysql_query($the_query);
      
/*
        if (! $this->query_id )
        {
            $this->fatal_error("mySQL query error: $the_query");
        }
    
        $this->query_count++;
*/
        $this->obj["cached_queries"]["$cached_name"] = $this->query_id; //what does this do??
        return $this->query_id;
    }[/code]
Link to comment
https://forums.phpfreaks.com/topic/4858-weird-mysqlform-problem/#findComment-17100
Share on other sites

[!--quoteo(post=354617:date=Mar 13 2006, 01:33 PM:name=keeB)--][div class=\'quotetop\']QUOTE(keeB @ Mar 13 2006, 01:33 PM) [snapback]354617[/snapback][/div][div class=\'quotemain\'][!--quotec--]
What a weird method :D

Try commenting out everything in the middle layer.. see if that helps.. and.. what does that do? can you post the method for that one?
[code]  public  function query($the_query, $cached_name) {
        $this->query_id = mysql_query($the_query);
      
/*
        if (! $this->query_id )
        {
            $this->fatal_error("mySQL query error: $the_query");
        }
    
        $this->query_count++;
*/
        $this->obj["cached_queries"]["$cached_name"] = $this->query_id; //what does this do??
        return $this->query_id;
    }[/code]
[/quote]

Basically it allows you to put a query into an array filled with other cached queries, so you can use other functions on them such as fetch_rows, affected_rows, etc. - without having to rewrite the query.
And the bug is still there even after commenting :(
Its weird, the UPDATE statement only makes THAT row blank on the FIRST time for THAT row... As in, if I update user2 the first time, no matter what I change or even if I leave everything the same - it clears everything the update query SETs... However, Every time after that - it works correctly.
Link to comment
https://forums.phpfreaks.com/topic/4858-weird-mysqlform-problem/#findComment-17104
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.