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 :

Mise à jour de requête


Sujet :

Langage SQL

Vue hybride

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Par défaut Mise à jour de requête
    Bonjour,

    j'ai un copié mon site web sur un nouveau serveur. Mais maintenant, j'ai un problème avec plusieurs requêtes sql, dont celle ci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    $sql="Select p.produit_id,  IF(produit_statut_id=2 or produit_attribut_statut_id=2,CONCAT('<font color=\"red\">',produit_nom,'</font>'),CONCAT('<font color=\"green\">',produit_nom,'</font>')), produit_ref_frs, IF(produit_attribut_id IS NOT NULL,CONCAT(produit_ref,' ',produit_attribut_ref),produit_ref) AS produit_ref, produit_option_valeur_nom";
    $sql.=" , IF(produit_attribut_quantite IS NOT NULL,produit_attribut_quantite,produit_quantite) as stock";
    $sql.=" , IF(produit_attribut_alerte IS NOT NULL,produit_attribut_alerte,produit_alerte) as alerte";
    $sql.=" FROM produit p";
    $sql.=" LEFT JOIN fournisseur f ON (f.fournisseur_id = p.fournisseur_id)";
    $sql.=" LEFT JOIN produit_attribut pa ON (pa.produit_id = p.produit_id AND produit_attribut_quantite <= produit_attribut_alerte)";
    $sql.=" LEFT JOIN produit_option_valeur pov ON (pov.produit_option_valeur_id = pa.produit_option_valeur_id)";
    $sql.=" WHERE (produit_quantite <= produit_alerte OR produit_attribut_quantite <= produit_attribut_alerte)";
    //$sql.=" Group by p.produit_id HAVING stock <= alerte";
     
    if(!empty($_GET['nom'])) $sql.=" AND produit_ref LIKE '%".$_GET['nom']."%'";
    if(!empty($_GET['frs'])) $sql.=" AND fournisseur_nom LIKE '%".$_GET['frs']."%'";

    qui me renvoit à son execution, l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Unknown column 'p.produit_id' in 'on clause'

    j'ai un élément de réponse ici mais je ne sais pas comment changer ma requête.

    Quelqu'un pourrait m'aider ? je suis un noob en SQL


    EDIT :
    j'ai essaye ça mais c'est encore pire, y a plus rien qui s'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql.=" FROM produit p, taxe t";
    $sql.=" LEFT JOIN (produit_categorie pc, produit_attribut pa, produit_image pi, note n, produit_gamme pg, produit_assoc pas, promotion pr) "
    $sql.="ON (pc.produit_id = p.produit_id AND pa.produit_id = p.produit_id AND pi.produit_id = p.produit_id AND n.produit_id = p.produit_id AND pg.produit_id = p.produit_id AND pas.produit_id = p.produit_id AND (pr.produit_id = p.produit_id OR pr.fournisseur_id = p.fournisseur_id OR pr.categorie_id = pc.categorie_id))";

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    IF n'existe pas en SQL dans une requête ...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Par défaut
    j'ai aussi été étonné en voyant le if (le code n'est pas de moi) mais y a la librairie DB de Pear derrière alors peut être qu'elle gère ce genre de chose...

    En tout cas, ça marche très bien avec le if sur le serveur d'origine

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    En langage SQL normalisé, utilisez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN condition THEN valeur_vrai ELSE valeur_faux END
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. mise à jour par requête spatiale
    Par amelo dans le forum PL/SQL
    Réponses: 0
    Dernier message: 25/03/2011, 10h35
  2. Mises à jour dans Requête UNION
    Par Daniela dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/06/2009, 15h15
  3. Réponses: 1
    Dernier message: 10/04/2008, 16h53
  4. Mise à jour de requête
    Par nellynew dans le forum Access
    Réponses: 2
    Dernier message: 22/09/2006, 15h35

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