MySQL Lists are EOL. Please join:

List:General Discussion« Previous MessageNext Message »
From:PJ Date:February 26 2009 12:03am
Subject:Re: [PHP] RE: non-auto increment question
View as plain text  
Ashley Sheridan wrote:
> On Wed, 2009-02-25 at 14:10 -0800, Gary W. Smith wrote:
>> Not sure that this is the problem BUT you should probably qualify the
>> name of the variable such that "SELECT MAX(id) AS id FROM book". But
>> you don't want "max(id) as id" but rather "max(id) + 1 as id". With
>> that you can then just return the final value. Also, if you don't
>> want to alias the value (or whatever it's called) you should use
>> $row[0] to get it by ordinal posistion.
>>
>> As for now wanting to use autoincrement, you can run into a race
>> condition where two people are inserting at the same time, thus
>> having the same generated id.
>>
>> Hope that helps.
>>
>>
>> ________________________________
>>
>> From: PJ [mailto:af.gourmet@stripped]
>> Sent: Wed 2/25/2009 2:01 PM
>> To: MySql; php-general@stripped
>> Subject: non-auto increment question
>>
>>
>>
>> I want to insert a new table entry 1 number higher than the highest in
>> the field (id). I cannot use auto-increment.
>> And I want to show the value of the field to be added in an input field
>> on the web page:
>> if (isset($_REQUEST["AddNewBooksRequest"])) {
>> $SQL = "SELECT MAX(id) FROM book";
>> $result = mysql_query($sql, $db);
>> $bookCount = mysql_num_rows($result);
>> for ($i=0; $i < $bookCount; $i++) {
>> $row = mysql_fetch_array($result);
>> $idIN = $row["id"]+1;
Actually, I am wondering how to get rid of some of the code here as it
seems a little bloated....
How do I get rid of the row counting - since there can never be more
than one row returned with this query.
>> }
>> $idIN = $_POST["idIN"];
>> $titleIN = $_POST["titleIN"];
>>
>> ...snip...
>>
>> <td colspan="2">
>> <?
>> echo "<input type='text' name='titleIN' value='$idIN' disabled
>> size='2'>";
>> ?>
>> </td>
>>
>> What am I doing wrong? (The query works and returns the right nr. but
>> what do I have to do to add 1 to that number and then display it in the
>> on page and post it to the table?
>>
>> --
>>
>> Phil Jourdan --- pj@stripped
>> http://www.ptahhotep.com <http://www.ptahhotep.com/>
>> http://www.chiccantine.com <http://www.chiccantine.com/>
>>
>>
>> --
>> MySQL General Mailing List
>> For list archives: http://lists.mysql.com/mysql
>> To unsubscribe: http://lists.mysql.com/mysql?unsub=1
>>
>>
>>
> Yeah, this sort of situation is really what auto increment is for. If
> you get two people visiting the page with this code on at the same time
> then you'll screw up your database.
>
>
> Ash
> www.ashleysheridan.co.uk
>
>
Being rather new to all this, I understood from the MySql manual that
the auto_increment is to b e used immediately after an insertion not
intermittently. My application is for administrators (the site owner &
designates) to update the database from and administration directory,
accessed by user/password login... so there's really very little
possibility of 2 people accessing at the same time.
By using MAX + 1 I keep the id number in the $idIn and can reuse it in
other INSERTS
-- 

Phil Jourdan --- pj@stripped
http://www.ptahhotep.com
http://www.chiccantine.com
Thread
Re: [PHP] RE: non-auto increment questionPJ26 Feb
  • RE: [PHP] RE: non-auto increment questionJerry Schwartz26 Feb
  • RE: [PHP] RE: non-auto increment questionJerry Schwartz26 Feb
    • Re: [PHP] RE: non-auto increment questionPJ26 Feb
      • RE: [PHP] RE: non-auto increment questionJerry Schwartz26 Feb
  • RE: [PHP] RE: non-auto increment questionGary W. Smith27 Feb
RE: [PHP] RE: non-auto increment questionJerry Schwartz26 Feb
Re: [PHP] RE: non-auto increment questionPJ26 Feb
RE: [PHP] RE: non-auto increment questionJerry Schwartz26 Feb
Re: [PHP] RE: non-auto increment questionPJ11 Mar