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..


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 26
    Par défaut Requête qui ne fonctionne pas..
    Bonjour tout le monde,

    voila cela fait 2 semaines que je suis sur la même fonction et je n'ai toujours pas réussi à résoudre mon problème seulement je suis en stage et je termine vendredi et si je n'arrive pas à me débloquer je ne pourrai pas finir mon projet et cela me gêne énormément, si quelqu'un peut m'aider je le remercie du fond du coeur car je suis motivé pour finir ce projet et d'être bloqué comme ça me fait mal si je n'arrive pas à finir je serai très honteux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function modifier_produit_prestashop($key){
    		$sql3 =  mysql_query("SELECT(LAST_INSERT_ID( id_product ))FROM ps_product LIMIT 8");
    		while($r[] = mysql_fetch_assoc($sql3));
    				$sql5 = mysql_query("update ps_product_lang set name = '".$key."' where id_product = '$r'");
    	}
    Ci dessus voici ma fonction, ma première requête me permet de sélectionner un code (ou in id si vous préférez, ensuite je récupère les données dans un array_assoc ma deuxième requête fait un update dans une table en fonction des id que je récupère d'ou le where id _product = '$r' seulement quand je lance ma requête j'ai une erreur qui m'affiche Notice: Array to string conversion in C:\wamp\www\Nouveaudossier1\fonctions.php on line 41. Comment je pourrais faire pour que cette fonction puisse marcher sachant qu' avec ces lignes j'appel ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $output5 = array_slice($produit , 2);
    	$output5 = array_filter($output5);
    	foreach($output5 as $key){
    		modifier_produit_prestashop($key);
    	}

  2. #2
    Membre Expert
    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
    Par défaut
    Bonjour,

    Ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($r[] = mysql_fetch_assoc($sql3));
    Cette ligne va créer un tableau $r contenant un tableau (un enregistrement de la requête $sql3, je pense que tu voulais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($r = mysql_fetch_assoc($sql3));
    Dans ce cas $r est un tableau associatif de toutes les colonnes demandées dans la requête $sql3.

    Ensuite,

    l'erreur affiché ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql5 = mysql_query("update ps_product_lang set name = '".$key."' where id_product = '$r'");
    signifie que tu essaye d'assigner un tableau à une colonne ce qui n'est pas faisable, il faut que tu donne un alias à la colonne LAST_INSERT_ID dans la requête $sql3 pour ensuite pouvoir l'utiliser dans la requête en dessous, ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FUNCTION modifier_produit_prestashop($key){
    		$sql3 =  mysql_query("SELECT LAST_INSERT_ID( id_product ) lastId FROM ps_product LIMIT 8");
    		while($r = mysql_fetch_assoc($sql3));
    				$sql5 = mysql_query("update ps_product_lang set name = '".$key."' where id_product = '" . $r['lastId'] . "'");
    	}
    Mais sache que cette fonction va mettre à jour la colonne name des 8 dernière enregistrement avec la valeur reçus en paramètre.

Discussions similaires

  1. [MySQL] Requête qui ne fonctionne pas
    Par lelandais1 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 28/03/2010, 15h15
  2. Réponses: 3
    Dernier message: 28/08/2009, 13h30
  3. 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, 14h06
  4. Requête qui ne fonctionne pas
    Par gregory.bts dans le forum JDBC
    Réponses: 1
    Dernier message: 10/06/2007, 01h11
  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, 16h47

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