[RESOLU] probleme d'INSERT

Petit nouveau ! | 3 Messages

07 juin 2005, 15:07

bonjour à tous,

j'ai un petit probleme dans ma base : lorsque je supprime un enregistrement via une partie administration et que j'en rajoute un juste après via un formulaire celui-ci vient s'enregistrer dans ma base a l'endroit de celui supprimer, alors que l'id s'autoincremente correctement.

je ne comprend pas d'ou cela viens : de la base ou de la requet insert ?

voici un bout de mon code :
$titre=addslashes($_POST["titre"]);
$texte=addslashes($_POST["texte"]);

$dossier="../images/";
move_uploaded_file($_FILES["illustration"]["tmp_name"],$dossier.($_FILES["illustration"]["name"]));
$name_image=$_FILES["illustration"]["name"];

$id_users_session=$_SESSION['id'];

$query="INSERT INTO messages (id_users,titre,texte,illustration) VALUES ('$id_users_session','$titre','$texte','$name_image');";

mysql_query($query);

espere avoir ete clair

Merci a tous pour vos reponses ...

-rolvug-
Modifié en dernier par rolvug le 08 juin 2005, 10:05, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

07 juin 2005, 15:15

Comment ça, il s'insere à la place de celui qui vient d'être supprimé ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 3 Messages

08 juin 2005, 09:22

D'abord merci de me répondre.

Mon problème :

J'ai une bdd en local (easyphp) nommé mabase
1 table nommé messages

J'ai 10 enregistrements id : 1 à 10.

Je supprime l'enregistrement id 6.

Je rajoute un enregistrement qui s'autoincrémente donc ici : 11

Mais quand je lis mes enregistrements sur mon site et sur ma base j'ai les enregistrements suivants :

1, 2, 3, 4, 5, 11, 7, 8, 9, 10

au lieu de :

1, 2, 3, 4, 5, 7, 8, 9, 10, 11

D'où vient donc le problème ?

Merci pour votre aide.

rolvug

Mammouth du PHP | 19672 Messages

08 juin 2005, 09:38

Je ne vois pas trop où est le problème, il te suffit de rajouter un ORDER BY id et le problème st réglé.
Quand tu supprimes un enregistrement, ça laisse une "case vide" que MySQL utilise si nécessaire.

Pour supprimer cet inconvénient (si c'en est un), il faut que tu exécutes une commande supplémentaire juste après avoir supprimé un enregistrement: OPTIMIZE TABLE nom_table : ça va en quelque sorte défragmenter ta table et les nouveau enregistrement se mettront à la suite au lieu de combler les trous.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 juin 2005, 09:42

J'avoue que je suis étonné !!!

Jamais MySQL ne m'a inseré un enregistrement au milieu des autres !!!!

Mais si tu as ce problème, comme le dit Cyrano, fait un ORDER BY dans ta requete et tu les auras dans l'ordre
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 3 Messages

08 juin 2005, 10:04

Un grand merci à Cyrano. Et je reste comme Zeus... très étonné de cela.

A+

rolvug


[RESOLU]