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

PHP & Base de données Discussion :

[SQL] Problème de requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut [SQL] Problème de requête
    Bonjour,

    J'ai un petit souci avec un update sur une table. Le prob est que cette table n'a pas de champs id auto incrémenté. Donc foireux, je n'est pas réalisé cette base de donnée et elle est déjà en service avec blindé de donnée donc pas facile de faire un id de dedans.

    Donc il faut que je trouve une idée pour mettre à jour cette table.

    Voici le code et je vous explique ma démarche après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while(isset($_POST['newgrp'.$id]))
    		{
    		$idmon=$_POST['mon'.$id];
    		$idgrp=$_POST['grp'.$id];
    		$newgrp=$_POST['newgrp'.$id];
    		$sqllnk="UPDATE into lnk_users_grp SET grp_id='.$newgrp.' WHERE users_id='.$idmon.' AND grp_id='.$idgrp.'";
    		mysql_query ($sqllnk) or die (mysql_error());	
    		$id++;
    		}
    Donc pour faciliter le codage de la requête sql j'affecte mes post à des variables. Pas génial je sais mais je trouve cela plus facile,
    Le but est de modifier le champ grp_id avec une nouvelle valeur si les deux conditions suivante sont remplies. Donc si users_id=idmon et grp_id=idgrp.

    Sur le fond je pense que cela doit fonctionner mais en réaliter peut-être pas.
    Est-il possible de modifier un champs avec un ancienne valeur, et puis de le modifier en suite sur la même requête ?

    A l'aide je galère grave.

    Merci d'avance,

    Stu76

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Je sais qu'il est impossible de faire une sous-requête sur la table en cours de changement. En revanche, je pense que ta requête devrait fonctionner...
    mysql_error ne te renvoie pas d'erreur ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Bonjour Célira,

    Non rien, pourtant j'ai fait des tests mais rien ne ressort, pq ?

    je cherche toujours, pas encore trouvé la solution, sinon tu connais pas un autre moyen de réaliser l'update vu que je n'ai pas de champ id auto incrémenté.

    Merci,

    Stu76

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    as tu testé ta requête directement en sql ..

    affiche ta requête avant de l'envoyer aussi

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si ça nre renvoit pas d'erreur, c'est qu'il n'y a pas d'erreur au sens syntaxique du terme. Ce qui ne veut pas dire que ça fonctionne, malheureusement

    On peut faire deux choses pour essayer de voir ce qui cloche : faire un select aux même conditions avant l'update, pour voir si il trouve un enregistrement à modifier, et afficher la requête d'update pour voir si il n'y a pas un truc qui cloche dedans...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sqlverif="SELECT grp_id, users_id FROM lnk_users_grp WHERE users_id='.$idmon.' AND grp_id='.$idgrp.'";
    $verifres = mysql_query ($sqlverif) or die (mysql_error());	
    echo "enregistrement trouvé : ".mysql_num_rows($verifres);
    $sqllnk="UPDATE into lnk_users_grp SET grp_id='.$newgrp.' WHERE users_id='.$idmon.' AND grp_id='.$idgrp.'";
    echo "requete update : ".$sqllnk;
    mysql_query ($sqllnk) or die (mysql_error());
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Merci de vous penchez sur mon prob, je vais tester vos propositions et je vous dit quoi.

    Stu76

  7. #7
    Membre confirmé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Par défaut
    tu peux enlever le "into" apres le "update" et virer les '..' dans la requête qui ne servent à rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $sqlverif="SELECT grp_id, users_id FROM lnk_users_grp WHERE users_id= $idmon AND grp_id= $idgrp";
    $verifres = mysql_query ($sqlverif) or die (mysql_error());	
     
    $sqllnk="UPDATE lnk_users_grp SET grp_id= '$newgrp' WHERE users_id= '$idmon' AND grp_id= '$idgrp' ";
     
    mysql_query ($sqllnk) or die (mysql_error());

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Re,

    Quand j'exécute ma requête sql dans phpmyadmin effectivement il me retourne une erreur sql la #1064

    Voici exactement le contenu :

    #1064 - You have an error in your SQL syntax; check the manuel that corresponds to your MySQL server version for the right syntax to use near

    Le prob est que je regarde dans tout mes manuels SQL et la requête en principe est bonne mais bon, apparement mon serveur ne veut pas de elle.

    je vais encore creuser l'histoire. Je vais un peu voir avec ce que tu proposes Celira.

    Si vous voyez plus clair, vous pouvez me donner des pistes.

    Stu76

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Bonsoir,

    Un tout grand merci à Celira et ema*h pour leurs aides, j'ai enfin trouvé la solution. Mais je vous avoue que sans vous deux j'aurais encore galéré longtemps. Merci pour votre aide et a bientôt.

    Stu76

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Problème de requête et <tr>+<td>
    Par ruty dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 15/08/2006, 09h10
  2. [SQL] Problème bizarre requête date
    Par masseur dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/02/2006, 13h12
  3. [Oracle] [SQL] problème de requête
    Par joselito dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 25/01/2006, 12h55
  4. [SQL]problème de requête.
    Par shnouf dans le forum Oracle
    Réponses: 21
    Dernier message: 24/01/2006, 11h12
  5. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 15h07

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