IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Limité la modification a une occurence


Sujet :

Langage SQL

  1. #1
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut Limité la modification a une occurence
    Bonjour,
    J'ai une liste de nom de ville inséré dans une table, plusieurs fois la même, du genre :
    1 paris
    2 paris
    3 paris
    4 marseille
    4 marseille

    voici mon bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $j=1;
    				for($j=1;$j<2;$j++)
    				{
    					$req2="update qualification set name = '$joueur' where n_tournoi='$donnee'";
    					$res2=mysql_query($req2);
    				}
    Je veux que quand il rencontre la ville paris il modifie le troisième champ qui est le nom d'un joueur. Mais je veux qu'il le modifie que à une seule occurence, avec ce bout de code il me met le nom du joueur a chaque qu'il rencontre la ville moi je ne veux le fasse que pour la première trouvé, je pensais qu'avec une boucle for çà oré marché.
    Merci d'avance

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    J'ai rien compris !

    Indique tes schémas de tables et un exemple de contenu de tes tables et ce que tu veux voir s'afficher.

  3. #3
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    CREATE TABLE `qualification` (
    `num_qualif` int(3) NOT NULL auto_increment,
    `n_tournoi` varchar(50) NOT NULL,
    `name` varchar(25) NOT NULL default '',
    `tour` varchar(50) NOT NULL default '',
    PRIMARY KEY (`num_qualif`)
    )

    voilà ma table qualification. Donc comme dans mon premier message j'ai par exemple ceci dams ma table :
    1 paris
    2 paris
    3 paris
    4 marseille
    4 marseille

    je veux que dès qu'il rencontre le nom paris par exemple il modifie le troisième champ, c'est à dire le nom du joueur. Je veux qu'il le fasse pour la 1ère occurrence trouvé mais pas pour les suivantes. Un truc du style limit 1...

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Le remplissage n'est pas complet et l'exemple pas clair, donne un exemple encore une fois !

  5. #5
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    Si il est complet dans ma table çà donne çà pour l'instant.
    1 paris
    2 paris
    3 paris
    4 marseille
    4 marseille

    Et dès qu'il rencontre marseille par exemple çà doit donnée çà :
    1 paris
    2 paris
    3 paris
    4 marseille Pierre
    4 marseille

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bon je vois...

    Je ne sais pas sur quel SGBD tu travailles mais sur Oracle, il existe une colonne cachée qui s'appelle ROWID, c'est le seul moyen de différencier deux doublons.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    UPDATE
       QUALIFICATION
    SET
       NAME = 'Pierre'
    WHERE
       ROWID = (SELECT
                   MIN(ROWID)
                FROM
                   QUALIFICATION
                WHERE
                   N_TOURNOI = 'marseille')

  7. #7
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    je suis sur mysql est ce que cette fonction marche ossi

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Le mieux étant de tester

  9. #9
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    rowid en mysql je pense pas

  10. #10
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Oui apparement, ca n'existe qu'en Oracle, SQL Server et Postgres. Peut-être que dans la dernière version de MySQL il y a quelque chose qui y ressemble, il y a tellement eu de choses ajoutées dans cette dernière version.

  11. #11
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    nan cette fonction ne fonctionnepas sous mysql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update qualification set name = '$joueur' where rowid = (select min(rowid) from qualification where n_tournoi='$donnee')
    çà ne m'a rien modifier

  12. #12
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    fait deja un select rowid,* from qualification pour voir si la colonne rowid existe.

  13. #13
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    nan çà me met que la colonne rowid n'existe pas

  14. #14
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 874
    Points : 53 048
    Points
    53 048
    Billets dans le blog
    6
    Par défaut
    Si vous n'avez pas d'identifiant dans votre table vous ne pourrez en aucun cas différencier les lignes des doublons. Votre demande est donc impossible à satisfaire.
    Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L5
    Une table n'a rien à voir avec un fichier...

    Il serait temps de vous former aux concept des SGBDR et du langage SQL.
    Mon site comme mes bouquins peuvent vous y aider !

    A +

Discussions similaires

  1. [Conception] Limiter l'insertion à une occurence
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 16/03/2006, 12h50
  2. update - modification d'une occurance
    Par starius dans le forum Langage SQL
    Réponses: 5
    Dernier message: 22/04/2004, 12h12
  3. Réponses: 1
    Dernier message: 08/03/2004, 11h35
  4. [JDialog] Modification dans une fenêtre
    Par cefabien dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 01/10/2003, 13h18
  5. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo