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 :

Requête qui ne fonctionne pas correctement


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 26
    Points : 14
    Points
    14
    Par défaut Requête qui ne fonctionne pas correctement
    Bonjour tout le monde, voila j'ai un petit problème sur une requête, j'ai un array en php qui contient les données d'un fichier CSV plus précisément il contient les données de la deuxième colonne. J'ai créé une fonction qui exécute des requêtes pour insérer les données dans ma base de données seulement cela ne marche pas correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $output4 = array_slice($description , 2);
    		var_dump($output4);
    Ici j'ai mon tableau de créé j'ai bien toutes valeurs créées en faisant un var_dump elle s'affichent bien. Voici ce que retourne mon tableau :

    array (size=14)
    0 => string '' (length=0)
    1 => string '80 grs Blanc' (length=12)
    2 => string '' (length=0)
    3 => string '80 grs brun' (length=11)
    4 => string '' (length=0)
    5 => string '90 grs Blanc' (length=12)
    6 => string '' (length=0)
    7 => string 'Poly' (length=4)
    8 => string '' (length=0)
    9 => string 'Blanc poly' (length=10)
    10 => string '' (length=0)
    11 => string 'tissé PP' (length=8)
    12 => string '' (length=0)
    13 => string 'tissé PP' (length=8)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	foreach($output4 as $key){
    			modifier_produit_prestashop($key);
    		}
    Ici c'est la boucle de mon tableau qui parcours chaque valeurs et appelle la fonction pour insérer les données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function modifier_produit_prestashop($key){
    		$sql3 = mysql_query("select MAX(last_insert_id(id_product)) from ps_product");
    		$resultat = mysql_result($sql3 ,0);
     
    		$sql4 = mysql_query("update ps_product_lang set description = '".$key."' where id_product = '$resultat'");
    	}
    Et voici ma fonction, la première requête sélectionne les derniers id créés et la deuxième requête modifie le champ de la table voulue en fonction des id récupérés seulement quand je lance ma requête, il n'insère que la dernière donnée à la dernière ligne, en gros sur 7 lignes il m’insère des données que sur la 7ème ligne et je ne vois pas pourquoi cela fait ça, car j'ai déjà créé une autre fonction de ce type qui cette fois marche correctement. Quelqu'un pourrait t'il m'aider s'il vous plait?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    deux choses,

    pourquoi utiliser la fonction MAX() sur la fonction last_insert_id ? last_insert_id retourne la dernière valeur auto_increment de la colonne passé en paramètre.

    ensuite tu fait une boucle pour chaque élément du tableau et envoi l'élément à la fonction modifier_produit_prestashop,

    dans cette fonction tu récupère le dernière ID de la table et fait une mise a jours de l'enregistrement ayant cette ID étant donnée que tu ne fait aucun insert dans cette table l'ID ne change donc pas, pour le vérifier fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FUNCTION modifier_produit_prestashop($key){
    		$sql3 = mysql_query("select MAX(last_insert_id(id_product)) from ps_product");
    		$resultat = mysql_result($sql3 ,0);
     
                    echo $resultat . ' -- '; 
     
    		$sql4 = mysql_query("update ps_product_lang set description = '".$key."' where id_product = '$resultat'");
    	}

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/08/2009, 14h30
  2. Filtrage au niveau de la requête qui ne fonctionne pas comme prévu
    Par hartecel dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/06/2008, 15h06
  3. Un test if qui ne fonctionne pas correctement
    Par Shinjuku dans le forum Langage
    Réponses: 6
    Dernier message: 26/02/2008, 11h52
  4. Requête qui ne fonctionne pas
    Par gregory.bts dans le forum JDBC
    Réponses: 1
    Dernier message: 10/06/2007, 02h11
  5. [SQL] requête qui ne fonctionne pas
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/03/2007, 17h47

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