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 :

Probleme d'affichage avec des checkbox


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut Probleme d'affichage avec des checkbox
    voila mon script
    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
    18
    19
    20
    21
    22
    23
    24
    <?php 
     
    if (isset($_POST['titre'])){
     
        for ($i = 0, $c = count($_POST['titre']); $i < $c; $i++) {
    	echo $_POST['titre'][$i].'<br/>';
    	}
        $chaine=implode ("','",$_POST['titre']);
     
     
     mysql_select_db($database_test, $test);
    $query_tarif = "SELECT SUM(".$_POST['select'].") as masomme  FROM tarifs WHERE titre IN ('".$chaine."')";
    $tarif = mysql_query($query_tarif, $test) or die(mysql_error());
    $totalRows_tarif = mysql_num_rows($tarif);
    $row_tarif = mysql_fetch_assoc($tarif);
     
    $somme=$row_tarif['masomme'];
     
    $nbr=$_POST['select2'];
    $devis=$somme*$nbr;
    $devis_format=number_format($devis);
    echo '<b>'.$devis_format.'.00 da </b>';
        } 
    ?>
    mon probleme c'est que je veux afficher le nom complet des titres ,donc y aurat il un moyen d'assigné chaque resultat du POST a une variable qui va avec.
    heuuu!! j'ésper que mon explication du probleme est claire

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Moi j'ai pas tout compris...Là ca affiche bien le titre non ?

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut
    ouep sa affiche bien le titre , mais j c'est pa trop genial d'avoire,

    soire
    est
    quotedien

    ce que j'aimerai c'est assigné des chaines de caractere au resultat du POST, et doneera un resultat du genr


    le soire
    l'est
    le quotedien

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Mais à la base tes checkbox sont comment ? (Ca c'est la bonne question )
    SUrtout la valeur contenu....

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input name="titre[]" type="checkbox"  value="soire"/>
    bein comme ça !!

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ben comment veux tu avoir un titre comme tu le souhaites si tu donnes juste un mot ?

    Tu souhaites le faire en php (dans un style dictionnaire), c'est à dire il le trouve tout seul l'article à mettre devant (çe qui peut être long à réaliser).

    Moi je te conselle de tout mettre directement dans le value comme ça tu aurais tout ton titre

  7. #7
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    $chaine=implode ("','",$_POST['titre']);
     
     
     mysql_select_db($database_test, $test);
    $query_tarif = "SELECT SUM(".$_POST['select'].") as masomme  FROM tarifs WHERE titre IN ('".$chaine."')";
    $tarif = mysql_query($query_tarif, $test) or die(mysql_error());
    la reside le probleme, si change je doit changer la base,

    et j trouve pas assé bon de metre des champs de 40 carac dans ma base,

  8. #8
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut
    ahh oui j vien de me souvenire pourquoi je pouvai pas metre le titre complet, pour le titre (l'est) j'aurai un conflit de quote dans ma requete sql

  9. #9
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    tu as donc deux possibilités :
    1. Comment ajouter/supprimer les antislashes surnuméraires ?
    2. mysql_real_escape_string (dans le cas MySQL)
    Après ca tu auras plus de problème d'insertion quelque soit la phrase

  10. #10
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur de syntaxe près de '\'Le soire d\'Algerie\',\'L\'est républicain\')' à la ligne 1
    avec les deux methode mysql peut pas lire la requete !!
    avec addslashes sa donne ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d\'Algerie\',\'L\'est républicain


    idem pour mysql_real_escape_string ça donne ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(demipage) as masomme FROM tarifs WHERE titre IN (\'Le soire d\'Algerie\',\'L\'est républicain\')
    ils parlent aussi des magic quotes mais j crois que c'est autre chose ça ??!

  11. #11
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je crois que tu as pas bien compris comment l'utiliser
    Avec addslashes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $titre = addslashes("Le soir d'Algérie");
    "SELECT SUM(demipage) as masomme FROM tarifs WHERE titre = '$titre'"
    Avec l'autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $titre =  "Le soir d'Algérie";
    "SELECT SUM(demipage) as masomme FROM tarifs WHERE titre = '".mysql_real_escape_string($titre)."'"
    En gros c'est pas sur la requete que tu l'utilises mais plutot sur la chaine de caractères

  12. #12
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut
    THX kerod , ça marche impec, vous m'avez donné l'ocasion de metre mon premier resolu

  13. #13
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut un script plus propre
    mon code consiste a calculer le devis d'une selection qui a etati faite a partir d'un formulaire
    -titre sont des case a cocher des journaux
    -select et l espace choisi dans les journaux
    -select 2 c le nombre d'apparition dans les journaux
    les champs de la table tarifs sont


    titre
    page
    demipage
    quarpage
    huitpage
    seizpage
    etc...



    voila mon code finale pour calculer le devis

    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
    for ($i = 0, $c = count($_POST['titre']); $i < $c; $i++) {
    	 echo $_POST['titre'][$i].'.<br/>';
    	 $_POST['titre'][$i]=addslashes($_POST['titre'][$i]);
    	}
        $chaine=implode ("','",$_POST['titre']);
     
     mysql_select_db($database_connexion, $connexion);
    $query_tarif = "SELECT SUM(".$_POST['select'].") as masomme  FROM tarifs WHERE titre IN ('". $chaine."')";
    $tarif = mysql_query($query_tarif, $connexion) or die(mysql_error());
    $totalRows_tarif = mysql_num_rows($tarif);
    $row_tarif = mysql_fetch_assoc($tarif);
     
    $somme=$row_tarif['masomme'];
     
    $nbr=$_POST['select2'];
    $devis=$somme*$nbr;
    $devis_format=number_format($devis);
    est que je pourai faire plus propre surtout que je veu que les resultat vont etre ajouté a un panier ou caddy

  14. #14
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    $_POST est en lecture, pas en écriture donc la première boucle ça serait plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach ($_POST['titre'] as $titre)
      echo "$titre<br />";
    pour le IN $chaine dans ta requête, j'ai jamais eu besoin de faire ça, je sais pas si ça marche, Kerod pourra te dire ça mieux que moi (pis comme ça j'aurai la réponse aussi )
    Dia [ Page DVP ] [ Site pro ]

  15. #15
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut
    merci Dia_FR pour ta répence , ça commence devnir plus potable, est ce que je pourai faire une function avec les argument titre espace et nbr d'apparition avec ce code ??!

  16. #16
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    $totalRows_tarif n'est pas utilisé dans ce que tu montres, possibilité de le virer ?

    tu fais un tab assoc juste pour une colonne, pas besoin :
    $row_tarif = mysql_fetch_assoc($tarif);
    $somme=$row_tarif['masomme'];
    =>
    $somme = mysql_result($tarif, 0);

    si tu veux faire une fonction te retournant le devis il faut lui filer en paramètre le titre, la valeur du select et celle du select2

    pense aussi dans ce cas à faire la connexion/déconnexion à la base de données dans la fonction, ou alors faudra aussi passer le handle de connexion en paramètre
    Dia [ Page DVP ] [ Site pro ]

Discussions similaires

  1. Réponses: 11
    Dernier message: 26/12/2009, 17h29
  2. [Dates] Probleme d'affichage avec les checkbox
    Par Maria1505 dans le forum Langage
    Réponses: 8
    Dernier message: 07/12/2006, 15h45
  3. Probleme de boucle avec des processus sous UNIX
    Par sebastieng dans le forum POSIX
    Réponses: 6
    Dernier message: 15/10/2005, 18h57
  4. Réponses: 6
    Dernier message: 19/10/2004, 13h46
  5. Réponses: 6
    Dernier message: 04/04/2003, 15h28

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