RE: [PHP-DB] Modify MySQL Record
| From: | Hutchins, Richard | Date: | Fri, 05 Sep 2003 19:19:44 +0000 |
| Subject: | RE: [PHP-DB] Modify MySQL Record | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-30373@lists.php.net to get a copy of this message | ||
Get rid of the single quotes around NULL. If you use 'NULL', it inserts the
string NULL into that column instead of a NULL which triggers the
autoincrement (think I explained that right).
If that doesn't work, echo out your query again and make sure it's sending
what it's supposed to be sending.
> -----Original Message-----
> From: Jeff [mailto:jroth1@telus.net]
> Sent: Friday, September 05, 2003 3:15 PM
> To: php-db@lists.php.net
> Subject: Re: [PHP-DB] Modify MySQL Record
>
>
> Ok, so I added what you suggested, but it still doesn't
> assign any numbers
> to the records.
>
> $query = "INSERT INTO cnrl_db (gradient, kwo, lsd, date,
> well, field, uni,
> license, formation, perfs, event, fluid, mode, type, vhd,
> file, kb, grd,
> open, sour, tube, landed, casing, landed2, shut_date,
> shut_time, pres, tag)
> VALUES ('NULL', '$kwo', '$lsd', '$date',
> '$well', '$field', '$uni',
> '$license', '$formation', '$perfs', '$event',
> '$fluid',
> '$mode', '$type',
> '$vhd', '$file', '$kb', '$grd', '$open',
> '$sour', '$tube', '$landed',
> '$casing', '$landed2', '$shut_date', '$shut_time',
> '$pres', '$tag')";
> $result = mysql_query($query, $link_id) OR die(mysql_error());
>
> gradient - the auto increment field.
>
>
>
> "Richard Hutchins" <Richard.Hutchins@Getingeusa.com> wrote in message
> news:1EA7D3AE70ACD511BE6D006097A78C1E033C92B8@USROCEXC...
> > Jeff,
> >
> > When you want to increment an autoincrement field, you just
> put NULL into
> > the query. For example:
> >
> > INSERT (NULL,'Jeff','php list','Modify MySQL Record') INTO
> > mail;
> >
> > Where NULL is in the same spot in the field list as your
> autoincrement
> > field.
> >
> > That concept is covered in the MySQL manual. Pretty simple stuff. If
> you're
> > in a situation where you have an autoincrement field that
> you sometimes
> > autoincrement and sometimes manually assign a value to, I
> think you're
> > misusing the autoincrement field (IMHO). If you have that
> situation, use
> the
> > autoincrement field to assign a unique ID to the table row and use a
> > separate field with another name for the manually assigned data.
> >
> > As far as the stuff you mentioned about clicking things and
> getting the
> > messages you expected, I'm kinda' lost. But if you use the
> autoincrement
> > field as it is intended, the logic should present itself.
> >
> > > -----Original Message-----
> > > From: Jeff [mailto:jroth1@telus.net]
> > > Sent: Friday, September 05, 2003 2:07 PM
> > > To: php-db@lists.php.net
> > > Subject: Re: [PHP-DB] Modify MySQL Record
> > >
> > >
> > > Ok, so it sorta works now *grin*
> > >
> > > Two new problems
> > >
> > > I added an auto increment field in my table and changed the
> > > php to reflect
> > > that field - But for some reason, it doesn't work..
> > > When I submit a new record, do I need to tell SQL to add
> one to the
> > > greatest, or should it do it automatically when a new record
> > > is created?
> > > gradient MEDIUMINT(10) DEFAULT '0' NOT NULL AUTO_INCREMENT,
> > > and I made it the primary.
> > >
> > > Problem two,
> > >
> > > If I manually enter a number into that field, I can make
> > > changes to the
> > > record no problem! but... it goes into some kind of
> > > continuous loop. It
> > > comes up with a window that says what I told it to say --
> > > user_message("All
> > > records regarding $kwo have been changed!",
> > >
> > > "$PHP_SELF?action=view_record&gradient=$new_gradient"); --
> > > I hit OK and it jumps to -- if(empty($kwo)) error_message('Empty
> > > Gradient!!'); -- if you hit ok again, it just loops.
> > >
> > > This might be solved as soon as I get that one field to auto
> > > populate. :P
> > >
> > >
> > > "Richard Hutchins" <Richard.Hutchins@Getingeusa.com>
> wrote in message
> > >
> > > news:1EA7D3AE70ACD511BE6D006097A78C1E033C92B2@USROCEXC...
> > > > Jeff,
> > > >
> > > > No problem. Happens to everyone, trust me.
> > > >
> > > > Anyway, I see you're using mysql_affected_rows($link_id) to
> > > get see how
> > > many
> > > > rows were affected by the UPDATE. Try getting rid of the
> > > $link_id in the
> > > > declaration and just use mysql_affected_rows(). Personally,
> > > I have always
> > > > had trouble when specifying a resource in a mysql function
> > > like this (it's
> > > > probably just me). But, the mysql_affected_rows()
> function will, by
> > > default,
> > > > use the last connection used by your script.
> > > >
> > > > Also, you're checking to see if it's not set e.g.,:
> > > >
> > > > > > > > $num_rows = mysql_affected_rows($link_id);
> > > > > > > > if(!$num_rows) error_message("Nothing
> > > > > > > > changed!");
> > > >
> > > > According to the documentation, mysql_affected_rows()
> > > returns a -1 if the
> > > > query failed. And I'm pretty sure it returns 0 if your query was
> > > successful
> > > > but didn't affect any rows. I'm pretty sure ! checks for
> > > FALSE which is
> > > not
> > > > one of mysql_affected_rows() valid return values. So your
> > > check isn't
> > > doing
> > > > what you think it should.
> > > >
> > > > Give that a shot and see if it helps out at all.
> > > >
> > > > Good luck.
> > > >
> > > > Rich
> > > >
> > > > > -----Original Message-----
> > > > > From: Jeff [mailto:jroth1@telus.net]
> > > > > Sent: Friday, September 05, 2003 12:44 PM
> > > > > To: php-db@lists.php.net
> > > > > Subject: Re: [PHP-DB] Modify MySQL Record
> > > > >
> > > > >
> > > > > K, my tired eyes last night missed a few stupid mistakes...
> > > > >
> > > > > First: The Commas
> > > > > Second: I removed the period form the first line of the array
> > > > > -- $field_str
> > > > > = " kwo = '$kwo', ";
> > > > > Third: two typos.
> > > > >
> > > > > *hangs head in shame*
> > > > >
> > > > > Sorry for bothering everyone. :P
> > > > >
> > > > > BUT! I'm still having a problem - when I try to submit the
> > > > > change it comes
> > > > > back and says "Nothing Changed!" even if I change every field.
> > > > >
> > > > > Gonna do some more hunting - I'm doubting myself now. ;)
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > "Richard Hutchins" <Richard.Hutchins@Getingeusa.com>
> > > wrote in message
> > > > >
> > > > > news:1EA7D3AE70ACD511BE6D006097A78C1E033C92B1@USROCEXC...
> > > > > > I'd suggest you first output your SQL statement to the
> > > > > browser to see
> > > > > > exactly what it's sending to the database. Might give you
> > > > > the answer right
> > > > > > there.
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: Jeff [mailto:jroth1@telus.net]
> > > > > > > Sent: Friday, September 05, 2003 12:35 PM
> > > > > > > To: php-db@lists.php.net
> > > > > > > Subject: Re: [PHP-DB] Modify MySQL Record
> > > > > > >
> > > > > > >
> > > > > > > Yah, I noticed that after I had submitted this,
> and fixed it
> > > > > > > - still no
> > > > > > > change - gives the same exact error.
> > > > > > >
> > > > > > > "Jeffrey N Dyke" <jeffrey_n_Dyke@Keane.com> wrote
> > > > > > >
> in message
> > > > > > >
> > > > > > > news:OFFEE2B14B.9BAC564B-ON85256D98.005AAEE6@keane.com...
> > > > > > > >
> > > > > > > > looks like you stopped putting commas after
> your fields at
> > > > > > > > $field_str .= " formation = '$formation'
> > > > > > > > ";
> > > > > > > > $field_str .= " perfs = '$perfs' ";
> > > > > > > > $field_str .= " event = '$event' ";
> > > > > > > > $field_str .= " fluid = '$fluid' ";
> > > > > > > >
> > > > > > > > hth
> > > > > > > > Jeff
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > "Jeff"
> > > > > > > > <jroth1@telus.net To:
> > > > > > > php-db@lists.php.net
> > > > > > > > > cc:
> > > > > > > > Subject:
> > > > > > > [PHP-DB] Modify
> > > > > > > MySQL Record
> > > > > > > > 09/05/2003 12:28
> > > > > > > > PM
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Helloooo!
> > > > > > > >
> > > > > > > > I'm having a small problem with modifying the data in a
> > > > > MySQL DB.
> > > > > > > >
> > > > > > > > And here's the error:
> > > > > > > >
> > > > > > > > (After I click the "Submit Changes" button) Error:
> > > > > > > > 1064:
> > > > > > > You have an error
> > > > > > > > in your SQL syntax near '(10-10-10-10)'
> > > > > > > > kwo='1235',
> > > > > > > lsd='10-10-10-10',
> > > > > > > > date='2003-05-05', well' at line 1
> > > > > > > >
> > > > > > > > Here's the code:
> > > > > > > >
> > > > > > > > function edit_record() {
> > > > > > > > global $default_dbname, $gradient_tablename,
> > > > > > > $access_log_tablename;
> > > > > > > > global $new_lsd, $kwo, $lsd, $date, $well, $field,
> > > > > > > > $uni, $license, $formation, $perfs, $event,
> > > $fluid, $mode,
> > > > > > > > $type, $vhd, $file, $kb, $grd, $open, $sour, $tube,
> > > > > > > > $landed, $casing, $landed2, $shut_date, $shut_time,
> > > > > $pres, $tag;
> > > > > > > >
> > > > > > > > if(empty($kwo)) error_message('Empty
> > > > > > > > Gradient!');
> > > > > > > >
> > > > > > > > $link_id = db_connect($default_dbname);
> > > > > > > > if(!$link_id) error_message(sql_error());
> > > > > > > >
> > > > > > > > $field_str = '';
> > > > > > > > if($kwo != $new_kwo) $field_str = " kwo =
> '$new_kwo', ";
> > > > > > > > if(!empty($lsd)) {
> > > > > > > > $field_str .= " lsd = other_lsd('$lsd')
> > > > > > > > ";
> > > > > > > > }
> > > > > > > >
> > > > > > > > $field_str .= " kwo = '$kwo', ";
> > > > > > > > $field_str .= " lsd = '$lsd', ";
> > > > > > > > $field_str .= " date = '$date', ";
> > > > > > > > $field_str .= " well = '$well', ";
> > > > > > > > $field_str .= " field = '$field', ";
> > > > > > > > $field_str .= " uni = '$uni', ";
> > > > > > > > $field_str .= " license = '$license',
> > > > > > > > ";
> > > > > > > > $field_str .= " formation = '$formation'
> > > > > > > > ";
> > > > > > > > $field_str .= " perfs = '$perfs' ";
> > > > > > > > $field_str .= " event = '$event' ";
> > > > > > > > $field_str .= " fluid = '$fluid' ";
> > > > > > > > $field_str .= " mode = '$mode' ";
> > > > > > > > $field_str .= " type = '$type' ";
> > > > > > > > $field_str .= " vhd = '$vhd' ";
> > > > > > > > $field_str .= " file = '$file' ";
> > > > > > > > $field_str .= " kb = '$kb' ";
> > > > > > > > $field_str .= " grd = '$grd' ";
> > > > > > > > $field_str .= " open = '$open' ";
> > > > > > > > $field_str .= " sour = '$open' ";
> > > > > > > > $field_str .= " tubing = '$tubing' ";
> > > > > > > > $field_str .= " landed = '$landed' ";
> > > > > > > > $field_str .= " casing = '$casing' ";
> > > > > > > > $field_str .= " landed2 = '$landed2'
> > > > > > > > ";
> > > > > > > > $field_str .= " shut_date = '$shut_date'
> > > > > > > > ";
> > > > > > > > $field_str .= " sut_time = '$shut_time'
> > > > > > > > ";
> > > > > > > > $field_str .= " pres = '$pres' ";
> > > > > > > > $field_str .= " tag = '$tag' ";
> > > > > > > >
> > > > > > > >
> > > > > > > > $query = "UPDATE $gradient_tablename SET
> $field_str WHERE
> > > > > > > kwo = '$kwo'";
> > > > > > > >
> > > > > > > > $result = mysql_query($query);
> > > > > > > > if(!$result) error_message(sql_error());
> > > > > > > >
> > > > > > > > $num_rows = mysql_affected_rows($link_id);
> > > > > > > > if(!$num_rows) error_message("Nothing
> > > > > > > > changed!");
> > > > > > > > if($lsd != $new_kwo) {
> > > > > > > > $query = "UPDATE $access_log_tablename SET kwo =
> > > > > > > '$new_kwo' WHERE kwo
> > > > > > > =
> > > > > > > > '$kwo'";
> > > > > > > > $result = mysql_query($query);
> > > > > > > > if(!$result) error_message(sql_error());
> > > > > > > >
> > > > > > > > user_message("All records regarding $lsd have been
> > > > > changed!",
> > > > > > > >
> > > "$PHP_SELF?action=view_record&kwo=$new_kwo");
> > > > > > > > }
> > > > > > > > else {
> > > > > > > > user_message("All records regarding $lsd have been
> > > > > changed!");
> > > > > > > > }
> > > > > > > > }
> > > > > > > >
> > > > > > > > --
> > > > > > > > PHP Database Mailing List (http://www.php.net/)
> > > > > > > > To unsubscribe, visit:
> > > > > > > > http://www.php.net/unsub.php
> > > > > > >
> > > > > > > --
> > > > > > > PHP Database Mailing List (http://www.php.net/)
> > > > > > > To unsubscribe, visit:
> > > > > > > http://www.php.net/unsub.php
> > > > > > >
> > > > >
> > > > > --
> > > > > PHP Database Mailing List (http://www.php.net/)
> > > > > To unsubscribe, visit:
> > > > > http://www.php.net/unsub.php
> > > > >
> > >
> > > --
> > > PHP Database Mailing List (http://www.php.net/)
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>