Incrémentation champs VARCHAR MYSQL
Résolu/Fermé
t671
Messages postés
1471
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
10 mars 2025
-
Modifié par t671 le 8/12/2011 à 19:05
t671 Messages postés 1471 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 10 mars 2025 - 9 déc. 2011 à 13:10
t671 Messages postés 1471 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 10 mars 2025 - 9 déc. 2011 à 13:10
A voir également:
- Incrémentation champs VARCHAR MYSQL
- Mysql community server - Télécharger - Bases de données
- Word mettre à jour tous les champs - Forum Word
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
- Excel copier formule sans incrémentation - Forum Excel
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
13 réponses
Anoen
Messages postés
196
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
11 septembre 2013
25
8 déc. 2011 à 23:29
8 déc. 2011 à 23:29
Et pourquoi mettre "I" si tu l'enlève après ? En INT ça passerait sans problème.
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
9 déc. 2011 à 00:15
9 déc. 2011 à 00:15
Bonsoir,
Effectivement, le choix d'Anoen est sans doute le meilleur. Sinon tu devrais modifier ton champ VARCHAR avec une valeur plus grande, comme VARCHAR(10), et ça devrait aller pour un moment :
ALTER TABLE 'ville_bis' CHANGE 'num_indiv' 'num_indiv' VARCHAR( 10 )
Effectivement, le choix d'Anoen est sans doute le meilleur. Sinon tu devrais modifier ton champ VARCHAR avec une valeur plus grande, comme VARCHAR(10), et ça devrait aller pour un moment :
ALTER TABLE 'ville_bis' CHANGE 'num_indiv' 'num_indiv' VARCHAR( 10 )
t671
Messages postés
1471
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
10 mars 2025
11
9 déc. 2011 à 11:03
9 déc. 2011 à 11:03
Autumn'Tears : j'avais essayé avec VARCHAR(10), mais le problème reste entier.
Et effectivement, j'avais pensé à la solution d'Anoen. Ce qui me permettrait d'incrémenter plus facilement le champs.
Par contre, je ne pourrais le mettre en INT avec auto-incrément, car j'ai repris une base existante, et le n° 1 dans ce champs n'existe pas, ou plus. Puis des relation de ce champs existe avec d'autres champs de la base, et je ne voudrais pas tout casser ....
Par contre, pour faire uine moulinette et enlever les "I" aux champs num_indiv, j'ai écrit :
Mais ça marche pô !!!!!!
Vous pouvez m'aider ?
Et effectivement, j'avais pensé à la solution d'Anoen. Ce qui me permettrait d'incrémenter plus facilement le champs.
Par contre, je ne pourrais le mettre en INT avec auto-incrément, car j'ai repris une base existante, et le n° 1 dans ce champs n'existe pas, ou plus. Puis des relation de ce champs existe avec d'autres champs de la base, et je ne voudrais pas tout casser ....
Par contre, pour faire uine moulinette et enlever les "I" aux champs num_indiv, j'ai écrit :
$select = "SELECT * FROM ville_bis WHERE num_indiv='%I%'"; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); while($row = mysql_fetch_array($result)) { $chaine = substr($result,1); $sql = "UPDATE ville_bis SET num_indiv = '$chaine' WHERE num_indiv = '%I%'"; }
Mais ça marche pô !!!!!!
Vous pouvez m'aider ?
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
Modifié par tito23 le 9/12/2011 à 11:24
Modifié par tito23 le 9/12/2011 à 11:24
il faut utiliser SELECT num_indiv FROM ville_bis WHERE num_indiv= 'I%'
Bon courage.
--
Merci de changer le problème en résolu quand vous trouvez une solution
Bon courage.
--
Merci de changer le problème en résolu quand vous trouvez une solution
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
9 déc. 2011 à 11:31
9 déc. 2011 à 11:31
çà ne dois pas marcher car tu veux modifier un enregistrement mais ton where fais reference au meme enregestriment, du coup, il n'aime pas et ne modfie pas
quel est le mesage d'erreur que tu obtient ?
quel est le mesage d'erreur que tu obtient ?
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
9 déc. 2011 à 12:09
9 déc. 2011 à 12:09
Pourquoi, c pa juste que vous dites, $sql = "UPDATE ville_bis SET num_indiv = '$chaine' WHERE num_indiv = '%I%'";
l'instruction est correcte
l'instruction est correcte
t671
Messages postés
1471
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
10 mars 2025
11
9 déc. 2011 à 11:38
9 déc. 2011 à 11:38
Ca fonctionne pas, et je n'ai pas de message d'erreur :
$select = "SELECT * FROM ville_bis"; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); while($row = mysql_fetch_array($result)) { $chaine = substr($result,1); $sql = "UPDATE ville_bis SET num_indiv = '$chaine' WHERE date_naissance = 'I%'"; }
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
9 déc. 2011 à 12:00
9 déc. 2011 à 12:00
$chaine = substr($result,1);
çà sera mieux avec :
substr($row['....'],1);
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
9 déc. 2011 à 12:05
9 déc. 2011 à 12:05
oui comme a indiqué maka54 il faut utiliser $row['num_indiv']
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
9 déc. 2011 à 12:12
9 déc. 2011 à 12:12
et ajouter $result = mysql_query($sql,$link);
t671
Messages postés
1471
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
10 mars 2025
11
Modifié par t671 le 9/12/2011 à 12:07
Modifié par t671 le 9/12/2011 à 12:07
Ben non, c'est pareil ..............
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
9 déc. 2011 à 12:09
9 déc. 2011 à 12:09
essaye cette requete pour tout modifier d'un coup
UPDATE ville_bis SET num_indiv = SUBSTR(num_indiv, 1)
t671
Messages postés
1471
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
10 mars 2025
11
9 déc. 2011 à 12:19
9 déc. 2011 à 12:19
La solution de maka54 j'y ai cru ............. car c'est le résultat escompté !
Mais rien !!!! Même pas de message d'erreur ....... pffffffffff
Mais rien !!!! Même pas de message d'erreur ....... pffffffffff
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
9 déc. 2011 à 12:22
9 déc. 2011 à 12:22
fais ta requete direct dans la base, tu auras une message
t671
Messages postés
1471
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
10 mars 2025
11
9 déc. 2011 à 12:33
9 déc. 2011 à 12:33
Effectivement, j'avais pas pensé à faire mes requêtes directes dans la base.
Là, avec ta requête, il me dit :
0 enregistrement(s) affecté(s).
Bizarre ..................
Voici un cham^ps num_indiv : I12
Là, avec ta requête, il me dit :
0 enregistrement(s) affecté(s).
Bizarre ..................
Voici un cham^ps num_indiv : I12
t671
Messages postés
1471
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
10 mars 2025
11
9 déc. 2011 à 13:10
9 déc. 2011 à 13:10
J'ai réussi :
UPDATE nom_de_ta_table SET nom_de_la_colonne = replace(nom_de_la_colonne, 'I', '');
Merci à tous !
A +
UPDATE nom_de_ta_table SET nom_de_la_colonne = replace(nom_de_la_colonne, 'I', '');
Merci à tous !
A +