Rows not added correctly when using 'INSERT'

Reply

Join Date: Oct 2004
Posts: 7
Reputation: qazs is an unknown quantity at this point 
Solved Threads: 0
qazs qazs is offline Offline
Newbie Poster

Rows not added correctly when using 'INSERT'

 
0
  #1
Oct 29th, 2004
Hi,
I'm trying to connect to a database using MySQL. Very new at this.
I already have an existing table consisting of 2 rows created using phpMyAdmin.
The problem (not exactly) I'm facing is when i insert a new row, it seems to insert after the 2nd row, not at the bottom.
By right, i should have:
1
2
3
4
5
but i get:
1
2 < -- seems to insert after this.
5
4
3
Although I can sort the table, i just want to know why this is happening.
Here's the code:
  1. $link = mysql_connect('localhost', '', '');
  2. $db_list = mysql_list_dbs($link);
  3. mysql_select_db('test');
  4. $result = mysql_query('SELECT * FROM myTable);
  5.  
  6. if(isset($_POST['submit']) && $_POST["submit"] == "Insert"){
  7. $rowCount = mysql_num_rows($result)+1;
  8. $sql = "Insert into myTable (id, Name, Gender, Age, Year)
  9. values ($rowCount, 'John', 'Male', 12, 1999)";
  10. mysql_query($sql);
  11. header("location:data.php");
  12. }
  13. echo printResult($result);
  14. mysql_free_result($result);
  15. mysql_close($link);
  16.  
Thanks.
Reply With Quote Quick reply to this message  
Join Date: Jul 2004
Posts: 234
Reputation: PoA is an unknown quantity at this point 
Solved Threads: 8
PoA PoA is offline Offline
Posting Whiz in Training

Re: Rows not added correctly when using 'INSERT'

 
0
  #2
Oct 29th, 2004
[PHP]
$link = mysql_connect('localhost', '', '');
$db_list = mysql_list_dbs($link);
mysql_select_db('test');
$result = mysql_query('SELECT * FROM myTable);

if(isset($_POST['submit']) && $_POST["submit"] == "Insert"){
$rowCount = mysql_num_rows($result)+1;
$sql = "Insert into myTable (id, Name, Gender, Age, Year)
values ($rowCount, 'John', 'Male', 12, 1999)";
mysql_query($sql);
header("location:data.php");
}
echo printResult($result);
mysql_free_result($result);
mysql_close($link); [/PHP]

It could be caused by $rowCount = mysql_num_rows($result)+1;
Because it is counted to 2 before it does insertion.
Reply With Quote Quick reply to this message  
Join Date: Oct 2004
Posts: 14
Reputation: fpepito is an unknown quantity at this point 
Solved Threads: 1
fpepito fpepito is offline Offline
Newbie Poster

Re: Rows not added correctly when using 'INSERT'

 
0
  #3
Oct 30th, 2004
Hello qazs,

Do you use the option AUTO_INCREMENT for the id column ? Perhaps that he can explain the result ...

The option AUTO_INCREMENT is very nice. When you use it isn't necessary to count the number of rows, an counter increment automaticaly.

fpepito


example:
id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT

here your code with modification:
[PHP]
$link = mysql_connect('localhost', '', '');
$db_list = mysql_list_dbs($link);
mysql_select_db('test');

// $result = mysql_query('SELECT * FROM myTable);

if(isset($_POST['submit']) && $_POST["submit"] == "Insert"){
// $rowCount = mysql_num_rows($result)+1;
$sql = "Insert into myTable (id, Name, Gender, Age, Year)
values (NULL, 'John', 'Male', 12, 1999)";
mysql_query($sql);
header("location:data.php");
}
echo printResult($result);
mysql_free_result($result);
mysql_close($link);
[/PHP]
Reply With Quote Quick reply to this message  
Join Date: Oct 2004
Posts: 7
Reputation: qazs is an unknown quantity at this point 
Solved Threads: 0
qazs qazs is offline Offline
Newbie Poster

Re: Rows not added correctly when using 'INSERT'

 
0
  #4
Oct 30th, 2004
Thanks fpepito.
Didnt know there's this thing called AUTO_INCREMENT.
It works the way I want now.
Reply With Quote Quick reply to this message  
Join Date: Oct 2004
Posts: 7
Reputation: qazs is an unknown quantity at this point 
Solved Threads: 0
qazs qazs is offline Offline
Newbie Poster

Re: Rows not added correctly when using 'INSERT'

 
0
  #5
Oct 30th, 2004
Hey, maybe I replied too fast. Just found out something.
When I used the AUTO_INCREMENT feature, the value just keeps adding,
even after I delete a row.
For example, i have:

1
2
3
4

And I delete away row 4, so its left with:

1
2
3

But after adding a new row, I get:

1
2
3
5

So I think I still have to check for the number of rows... and that sets me
back to my prev problem....
Reply With Quote Quick reply to this message  
Join Date: Feb 2003
Posts: 282
Reputation: Roberdin will become famous soon enough Roberdin will become famous soon enough 
Solved Threads: 6
Team Colleague
Roberdin Roberdin is offline Offline
Supreme Evil Overlord

Re: Rows not added correctly when using 'INSERT'

 
0
  #6
Oct 30th, 2004
WHy do you need the number of rows?
Reply With Quote Quick reply to this message  
Join Date: Nov 2003
Posts: 360
Reputation: Gary King will become famous soon enough Gary King will become famous soon enough 
Solved Threads: 5
Team Colleague
Gary King's Avatar
Gary King Gary King is offline Offline
PHP/vBulletin Guru

Re: Rows not added correctly when using 'INSERT'

 
0
  #7
Oct 30th, 2004
Um, when you say the list is shown as:
1
2 < -- seems to insert after this.
5
4
3
Do you mean this is what you see in phpMyAdmin? If so, then that is technically how MySQL works, normally; the data can come in any random order (but I'm not certain). It happens to me sometimes - unless you specify a sort method, then don't expect the data to be in an order that you want it to be.
Reply With Quote Quick reply to this message  
Join Date: Sep 2004
Posts: 127
Reputation: ReDuX is an unknown quantity at this point 
Solved Threads: 5
ReDuX's Avatar
ReDuX ReDuX is offline Offline
Junior Poster

Re: Rows not added correctly when using 'INSERT'

 
0
  #8
Oct 31st, 2004
Why not alter the table and make id auto_increment as mentioned above.

ALTER TABLE myTable MODIFY id NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (id);

That way you can use MySQL features and save CPU and boring code writing doing it manually
I'm pink, therefore, im spam.
http://www.vivaci.net - Quality Webhosting
http://gaming.vivaci.net - FAST UK Gaming servers
http://www.getsigned.org - Free Image Uploads
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the PHP Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC