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 :

requete de mise a jour


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Etudiant du Genie Logiciel
    Inscrit en
    Juillet 2011
    Messages
    397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Etudiant du Genie Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 397
    Par défaut requete de mise a jour
    salut,est-il possible de visualiser le résultat (les différentes lignes impactées par la requête ) d'une requête de mise a jour.

    je voudrais agir sur un tableau cote PHP en fonction des lignes impactées. phpMyAdmin me renvoi une table de ma requête ci-dessous. c'est cette table que je voudrais avoir cote php.

    voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $update_gs_data = "UPDATE gs_object_yyy_" . xxx . " SET   
                                   `name_nearest_place`='" . $nearest_gs_data_['name'] . "',
                                   `distance_nearest_place`='" . $nearest_gs_data_['distance'] . "'";
                       $update_gs_data .= " WHERE `dt_tracker` LIKE '%".gmdate('Y-d-m H-i',strtotime($dt_tracker_gs_data))."%'";
     $res_update_gs_data = mysqli_query($ms, $update_gs_data) or die(mysqli_error($ms));
    merci. comment agir sur les lignes impactées par cette requête cote PHP

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 499
    Par défaut
    Salut,

    Si je comprends bien, tu veux sélectionner les lignes qui vient d'être modifiés par la requête.

    Méthode 1 :

    Tu peux par exemple les sélectionner d'abord, puis après les stocker dans un tableau :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $lignes=array();
    $result=mysqli_query($ms,"select id_nearest,name_nearest_place,distance_nearest_place from gs_object_yyy_" . xxx 
              . " where `dt_tracker` LIKE '%".gmdate('Y-d-m H-i',strtotime($dt_tracker_gs_data))."%'");
    while($data=mysqli_fetch_assoc($result)){
       $lignes[]=["id"=>$data["id_nearest"],"name"=>$data["name_nearest_place"],"distance"=>$data["distance_nearest_place "]];//stockage du résultat dans $lignes
       /* Comme il est possible aussi de mettre la requête d'update ici en utilisant $data["id_nearest"] */
    }

    Méthode 2 :

    Ou bien avec LAST_INSERT_ID() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    $lignes=array();
    $result=mysqli_query($ms,"select id_nearest,name_nearest_place,distance_nearest_place from gs_object_yyy_".xxx." 
                                    where `dt_tracker` LIKE '%".gmdate('Y-d-m H-i',strtotime($dt_tracker_gs_data))."%' ");
    while($data=mysqli_fetch_assoc($result)){
    	$reqUpdate="update gs_object_yyy_".xxx." SET id_nearset = LAST_INSERT_ID(id_nearset),
                                   name_nearest_place='" . $nearest_gs_data_['name'] . "',
                                   name_nearest_place='" . $nearest_gs_data_['distance'] . "' 
    				where id_nearest=".$data["id_nearest"];
            $update=mysqli_query($ms,$reqUpdate);
     
    	$reqLastId="SELECT LAST_INSERT_ID() as last_id from gs_object_yyy_".xxx;/* sélectionner les derniers id qui ont été modifiés (réinséré) */
    	$resLastId=mysqli_query($ms,$reqLastId);
    	$resultLastId=mysqli_fetch_assoc($resLastId);
    	$lignes[]=$resultLastId["last_id"];//stockage du résultat dans $lignes
    }
    var_dump($lignes);//affichage des id_nearest modifiés.
    Sachant que id_nearest est la clé primaire de la table qui est en auto-incrémente.

  3. #3
    Membre éclairé
    Homme Profil pro
    Etudiant du Genie Logiciel
    Inscrit en
    Juillet 2011
    Messages
    397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Etudiant du Genie Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 397
    Par défaut
    salut,tout d'abord merci pour la réponse. la seconde approche me semble plus juste

  4. #4
    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
    Alternative à la 2e approche : tu peux aussi utiliser la fonction mysqli_insert_id()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $reqUpdate="update gs_object_yyy_".xxx." SET id_nearset = LAST_INSERT_ID(id_nearset),
                                   name_nearest_place='" . $nearest_gs_data_['name'] . "',
                                   name_nearest_place='" . $nearest_gs_data_['distance'] . "' 
    				where id_nearest=".$data["id_nearest"];
    $update=mysqli_query($ms,$reqUpdate);
    $lignes[]=mysqli_insert_id($ms);//stockage du résultat dans $lignes
    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]

Discussions similaires

  1. Requete de mise a jour
    Par el_quincho dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/06/2006, 14h15
  2. Requete De Mise A Jour Inseree Dans Une Macro
    Par tereda dans le forum Access
    Réponses: 1
    Dernier message: 10/05/2006, 12h34
  3. probleme avec des calculs et une requete de mise a jour
    Par el_quincho dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 10h06
  4. Réponses: 5
    Dernier message: 25/11/2005, 12h42
  5. Plantage SQL Server sur requete de mise a jour
    Par Laurent_75000 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/09/2005, 10h00

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