I think most people had serious problems with inserting a value/data into a database (mysql). When I’m inserting a value into a database, I assign an unique id (INT) for that line. When I query the database, easily I can read/modify/delete that line.
With function for() (in php) I easily can read values/data from the database. The problem occurs when I delete a line (in the middle for example).
E.g:
DB:
ID | column1 | column2 | ... | columnN
--------------------------------------
1 | abcdefgh | asdasda | ... | asdasdN
2 | asdasddd | asdasda | ... | asdasdN
...
N | asdewfew | asddsad | ... | asddsaN
php:
for($i = 0; $i <= $n; $i++){
$sql = mysql_query("SELECT * FROM db WHERE ID = '$i' ");
//Code;
}
*$n = last column value from ID
Am I need to reorganize the entire database to have a correct “flow” (1, 2, 3, .. n)? Or am I need to UPDATE the each cell?
What you’re doing here is unnecessary thanks to
AUTO_INCREMENTin mysql. Run this command from PhpMyAdmin (or another DB management system):Now when insert a row into
dbmysql will assign the ID for you:SELECT * FROM db;:If you delete a row, it is true that there will be an inconsistency in the order of the ID’s, but this is ok. IDs are not intended to denote the numeric position of a row in a table. They are intended to uniquely identify each row so that you can perform actions on it and reference it from other tables with foreign keys.
Also if you need to grab a group of ID’s (stored in an array, for example), it is much more efficient to perform one query with an
INstatement.However, if you want all rows just use:
But be weary of bobby tables.