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 :

conseil pour l'intégration d'un prix depuis la bdd [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut conseil pour l'intégration d'un prix depuis la bdd
    Bonjour,
    Pour mon site de vente de produits, je veux afficher le prix minimum du produit sur la vignette du produit de la page d'accueil, sachant qu'un produit peut avoir plusieurs prix. Donc je veux afficher "à partir de: LE PLUS PETIT PRIX"
    Le prix du produit est enregistré dans la BDD dans la table $perk sous le nom $perk_amount. Chaque prix à son id qui est $perk_id lui même lié aux produit $project_id.

    Il s agit d un site en cms. Je suis débutant donc un peu d'indulgence. J'ai essayé ce code mais il affiche toujours le prix le plus élevé et je vois pas du tout comment faire. Merci d'avance pour votre aide

    Pour l'instant voilà ce que j ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $result = mysql_query("SELECT perk_amount, perk_id FROM perk WHERE project_id='".$rs->project_id."' ORDER BY perk_id ASC");
    if(!$result) {
        die("Database query failed: " . mysql_error());
    }
     
    $perk_amount = "";
     
    while ($row = mysql_fetch_array($result)) {
        $perk_amount = $row["perk_amount"];
    }
     
    echo $perk_amount; //use this wherever you want
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $result = mysql_query("SELECT MIN(perk_amount) FROM perk WHERE project_id=".$rs->project_id);
     
    $row = mysql_fetch_row($result);
    $perk_amount = $row[0];
     
     
    echo $perk_amount; //use this wherever you want
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Merci Sabotage pour ta réponse. En effet de cette manière ça fonctionne. En revanche j'aurai voulu garder la condition si un prix est disponible alors le prix s'affiche car il peut y avoir des produits annoncé mais pas encore en vente donc pas de prix encore entré dans la bdd.

    Est ce ton code marche aussi s'il n y a pas de prix dans la bdd ? merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comme ça alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $row = mysql_fetch_row($result);
    if ($row[0] === NULL) {
        $perk_amount = '';
    }
    else {
        $perk_amount = $row[0];
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Merci.
    En revanche je m'aperçois que pour certain produit il affiche bien le prix minimum et pour d autres produits ce n est pas le prix minium qu il affiche mais le prix maximum.

    Je comprends pas pourquoi....

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quand tu testes cette requête dans phpmyadmin elle fonctionne ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Je ne sais pas comment tester la requête dans phpmyadmin.
    Là je suis dans phpmyadmin dans la table "perk" et tout semble normal entre les produit qui affcihe le prix minimum ou maximum. Chaque tarif "perk_amount" a bien son id propre "perk_id" qui est différent pour chaque tarif rentré. Le tout est lié au même produit "project_id"

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dans phpmyadmin depuis ta table perk, tu vas dans l'onglet "SQL" et tu saisis
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MIN(perk_amount) FROM perk WHERE project_id= 13215
    13215 est evidemment un exemple
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    ok, j ai pris justement un produit dont le tarif maximum est affiché sur le site.

    J'ai saisi le script dans SQL comme tu me l as dit en désignant le id du produit concerné et après exécution il affiche le tarif maximum parmi les 3 tarifs du produit

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux nous fournir un export de cette table ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    le lien vers l export de la table.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as utilisé des types textuels (varchar) pour stocker des chiffres donc le classement n'est pas bon.
    Utilise un type numérique comme INT (ou plus petit selon tes besoins)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Je ne suis pas à l origine de la bdd. Donc voilà j ai modifié le varchar en INT(11) comme pour les autres tables numériques. Et en effet cette fois les tarifs sont bien affichés par le plus petit.
    Merci pour ton aide, j'aurai jamais trouvé l'origine du problème tout seul.

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

Discussions similaires

  1. conseil pour l'intégration d'une fonction
    Par cedrus dans le forum Langage
    Réponses: 12
    Dernier message: 08/10/2013, 18h48
  2. Conseils pour intégrations de patch sur x3
    Par emballeur dans le forum SAGE
    Réponses: 5
    Dernier message: 25/05/2012, 15h17
  3. Conseil pour remplir un tableau excel depuis USF
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/10/2006, 11h15
  4. Réponses: 8
    Dernier message: 27/07/2006, 09h40
  5. [web] Cherche un conseil pour un livre perl-tk
    Par Anonymous dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/04/2002, 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