MySQL - probleme avec INSERT INTO.

MySQL - probleme avec INSERT INTO. - Programmation

Marsh Posté le 25-01-2002 à 00:49:47    

Bonjour,  
 
j'ai un petit probleme avec cette commande MySQL.
Je suis en train de creer un chat et j'ai creer une commande /clear + mot qui efface les lignes qui contenait ce mot. juske la tout va bien.
 
on a par exemple dans la table main_chat
 
les champ :
 
[ id ]- en clé primaire ( auto_increment )  
[ ligne_inseree ] - champ TEXT
 
le fait est ke lorskon efface une des ligne la suite des id est coupee
 
par exemple jai effacer la ligne 4 ca donne ca :  
 
id | ligne_inseree
---------------------
1  | blabla  |
3  | blablablalba |
5  | etc
6  | .
.    .
.    .
 
le prob qse pose lors de l'insertion d'une nouvelle ligne.
 
INSERT INTO nomdetable VALUE ('','text';)
 
ca va se mettre en 4eme position et non a la fin de la table :(
ce ki fait ke les nouvelle ligne ne se mette pas a la fin mais la ou les ligne ont ete effacee et c tres chiant.
 
Si il faut utiliser une autre commande que INSERT INTO ou la paramettrer d'une certaine facon ou encore de changer le type du champ dite le moi.
 
j'espere que j'ai ete tres clair parce que c difficile a expliquer :)
 
 
Merci d'avance a tous !!!  
 
SquiD

Reply

Marsh Posté le 25-01-2002 à 00:49:47   

Reply

Marsh Posté le 25-01-2002 à 00:57:50    

normalement si tu as mis ton id en auto_increment, il doit continuer la numérotation et pas reprendre les numéros libres.
m'étonne ton truc  :ouch:

Reply

Marsh Posté le 25-01-2002 à 00:59:09    

J'aimerais tellement que ce que tu dis soit vrai ben non il reprend la ou il manque un num :(((
qqun d'autre peut etre??? :(  
a+ merci d'avoir repondu kan meme

Reply

Marsh Posté le 25-01-2002 à 01:04:23    

non pas d'accord, un INSERT ne cherche pas les id manquant pour les remplir car il utilise le nombre du dernier ID inséré + 1 pour rajouter une nouvelle ligne ... donc a la suite .
 
suffit de faire un insert ou tu nommes pas le ID et c'est tout bon :
INSERT into table set col='toto' -> utilise ce genre de requete, c'est + lisible, tu risques pas de te planter et SURTOUT tu peux te permettre de rajouter des colonnes sans avoir a modifier toutes tes requetes !
 
j'ai l'impression que ton probleme vient bien de ta requete a cause du INSERT INTO nomdetable VALUE ('','text';) ..
 
si tu nommais pas le ID alors verifie que ta table est bien au format MyISAM car je sais que j'avais eu un probleme dans ce genre avec un autre format si j'ai bonne memoire ..

 

[edtdd]--Message édité par potiron--[/edtdd]

Reply

Marsh Posté le 25-01-2002 à 01:07:30    

Je te remercie, je v tester ca !

Reply

Marsh Posté le 25-01-2002 à 01:13:38    

encore moi !
 
est ce qeu ej peux mettre deux set l'un acote de l'autre???
 
INSERT INTO table set col1='toto' set col2='lulu';
par exemple?
 
ou autrement?
 
merci !

Reply

Marsh Posté le 25-01-2002 à 01:16:15    

NON!! c bon ! ja irien dis!!
 
ton systeme fonctionne !!!
Super ! merci bcp pr ton aide !! :)
 
ce forum est trop cool a+ tlm merci !
 
MAISje n'arrive tjrs pas a faure un SET sur deuxchamp en meme temps!

 

[edtdd]--Message édité par SquiiiD--[/edtdd]

Reply

Marsh Posté le 25-01-2002 à 01:28:32    

[#0ef000]ca marche masi avec un seul champ =(
 
si je fais
 
INSERT INTO table set champ1='12345'; ca marche mais si je fais:
INSERT INTO table set champ1='12345' set champ2='6789';
a va pu :(

Reply

Marsh Posté le 25-01-2002 à 01:44:22    

tu rajoutes un champ datetime dans ta table, tu insère la date + l'heure avec ton message, pour afficher tu tries par la date (select * from ... order by messagedate)

Reply

Marsh Posté le 25-01-2002 à 01:49:25    

SquiiiD a écrit a écrit :

ca marche masi avec un seul champ =(
 
si je fais
 
INSERT INTO table set champ1='12345'; ca marche mais si je fais:
INSERT INTO table set champ1='12345' set champ2='6789';
a va pu :(  




 
faut faire ca avec plusieurs valeurs :
INSERT INTO table set champ1='12345', champ2='6789';
 
une petite (,) virgule entre chaque et zouuuuuu  :D

 

[edtdd]--Message édité par potiron--[/edtdd]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed