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 :

PHP et requetes SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut PHP et requetes SQL
    Bonjour,

    J'ai un petit soucis en PHP. Je m'explique :

    Je suis en train de réaliser une page qui à partir d'une date et de deux requetes affiche ou non des checkbox.

    CONTEXTE : TYPE = type de matériel (ex : video projecteur / pc portable)
    MATERIEL = PC portable HP Pavillon ...
    Après avoir choisit une date sur un calendrier l'utilisateur tombe sur ma fameuse page.

    J'aimerais afficher les différents types avec une case à cocher a coté (libre si il est présent au moin une fois dans la 1ere requete (la grande requete :p) et grisée si le type n'est pas dans la grande requete)

    Mais là je suis perdu dans mes while .. etc. si quelqu'un peut me donner un coup de main a decrypter celà je serais ravi.

    Merci d'avance à vous.

    Cordialement,

    Emmanuel.

    Code php : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    <?php
    #################################################
    #                                               #
    #			 PHASE DE RESERVATION    	        #
    #                DE MATERIEL   		            #
    #                                               #
    #################################################
     
    include ('../connect/connexion.php');
     
    $c_jour = $_GET['c_jour'];
    $c_mois = $_GET['c_mois'];
    $c_annee = $_GET['c_annee'];
     
    if($c_jour<10) {$c_jour = "0".$c_jour;}
    if($c_mois<10) {$c_mois = "0".$c_mois;}
    if($c_annee<10) {$c_annee = "0".$c_annee;}
     
    // Date au format JJ/MM/AAAA pour l'utilisateur
    $datedebut = "$c_jour/$c_mois/$c_annee";
     
    // Dates au format de la BDD
    $datedeb_BDD = "$c_annee$c_mois$c_jour";
    $datefin_BDD = "$c_annee$c_mois$c_jour";
     
    $connexion = mysql_connect($serveur,$user,$pass);
    mysql_select_db($base,$connexion);
     
    // Requete qui affiche les materiels qui ne sont pas empruntes	
     
    	$requeteP = "SELECT MATERIEL.NUM_MAT, MATERIEL.DESC_MAT, TYPE.LIB_TYPE 
    				 FROM MATERIEL, TYPE 
    				 WHERE MATERIEL.DISPO_MAT = 1 
    				 AND MATERIEL.NUM_TYPE = TYPE.NUM_TYPE
    				 AND MATERIEL.NUM_MAT NOT IN ( 
    												SELECT MATERIEL.NUM_MAT
    												FROM PRET, EMPRUNT, MATERIEL 
    												WHERE PRET.DATEDEB_PRET <='$datedeb_BDD' AND PRET.DATEFIN_PRET >='$datefin_BDD' 
    												AND PRET.NUM_PRET = EMPRUNT.NUM_PRET 
    												AND EMPRUNT.NUM_MAT = MATERIEL.NUM_MAT 
    												AND MATERIEL.DISPO_MAT = 1 
    											  )
    				 ORDER BY TYPE.LIB_TYPE";		
     
     
    $requeteT = "SELECT DISTINCT TYPE.num_type, lib_type FROM `TYPE`, `MATERIEL` WHERE MATERIEL.num_type = TYPE.num_type AND MATERIEL.dispo_mat = 1 GROUP BY TYPE.lib_type ORDER BY num_type";
     
     
    $result = mysql_query($requeteP, $connexion);
    $resT = mysql_query($requeteT, $connexion);
     
    while($rowT = mysql_fetch_array($resT))
    {
    while($row = mysql_fetch_array($result)) 
     
    		{
     
    				if($row[2] == $rowT[2])
    				{
    				echo '<input type="checkbox" name="'.$rowT["num_type"].'" value="checkbox"/>'.$rowT["lib_type"].'<br /><br />';
    				}
     
    		}	
    }			  
    ?>

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Euh... je dois avouer que j'ai rien compris (ça doit être la fatigue...)
    Tu veux bien ré-expliquer ce qui te pose problème ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Celira Voir le message
    Euh... je dois avouer que j'ai rien compris (ça doit être la fatigue...)
    Tu veux bien ré-expliquer ce qui te pose problème ?
    1°) Concretement je veux afficher tous les types accompagnés d'un checkbox grisé par défaut. (requeteT)

    2°) Ensuite, vérifier grâce à la requeteP si ces types existent dans la requeteP si c'est le cas dégrisés les checkbox des types concernés.

    J'ai du mal à m'expliquer car je ne sais pas concretement comment faire.

    j'espere que tu as compris à peu près

    En tout cas merci de m'accorder un peu de ton temps

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    D'abord, par "griser" tu veux dire la case existe toujours mais on ne peut pas la cocher, c'est bien ça ?

    *réflexion en cours*
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Celira Voir le message
    D'abord, par "griser" tu veux dire la case existe toujours mais on ne peut pas la cocher, c'est bien ça ?

    *réflexion en cours*
    Exacte qu'elle soit en disabled quoi Merci d'avance

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Alors j'ai bien une proposition mais c'est un peu tordu...
    Tu récupère tous les types que tu veux autoriser dans un tableau à partir de ta requêteP. Puis tu crées ta série de checkbox à partir de ta requeteT et à chaque tour tu testes pour savoir si le type courant est dans le tableau.
    L'inconvénient, si tu veux faire autre chose avec ta requeteP...

    Bon j'ai pas touché aux requêtes
    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
     $resP = mysql_query($requeteP, $connexion) or die ('erreur sur '.$requeteP.'<br/>'.mysql_error());
    $types_OK = array();
    while ($rowP = mysql_fetch_array($resP) )
    {
      $types_OK[] = $rowP['lib_type'];
    }
     
    $resT = mysql_query($requeteT, $connexion) or die ('erreur sur '.$requeteT.'<br/>'.mysql_error());
     
    while($rowT = mysql_fetch_array($resT))
    {
      echo '<input type="checkbox" name="'.$rowT["num_type"].'" value="checkbox"';
      echo (in_array($rowT['lib_type'], $types_OK))?'':' disabled="disabled" ';
      echo '/>'.$rowT["lib_type"].'<br /><br />';
    }
    Au fait, la valeur que tu envoie c'est checkbox ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Celira Voir le message
    Alors j'ai bien une proposition mais c'est un peu tordu...
    Tu récupère tous les types que tu veux autoriser dans un tableau à partir de ta requêteP. Puis tu crées ta série de checkbox à partir de ta requeteT et à chaque tour tu testes pour savoir si le type courant est dans le tableau.
    L'inconvénient, si tu veux faire autre chose avec ta requeteP...

    Bon j'ai pas touché aux requêtes
    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
     $resP = mysql_query($requeteP, $connexion) or die ('erreur sur '.$requeteP.'<br/>'.mysql_error());
    $types_OK = array();
    while ($rowP = mysql_fetch_array($resP) )
    {
      $types_OK[] = $rowP['lib_type'];
    }
     
    $resT = mysql_query($requeteT, $connexion) or die ('erreur sur '.$requeteT.'<br/>'.mysql_error());
     
    while($rowT = mysql_fetch_array($resT))
    {
      echo '<input type="checkbox" name="'.$rowT["num_type"].'" value="checkbox"';
      echo (in_array($rowT['lib_type'], $types_OK))?'':' disabled="disabled" ';
      echo '/>'.$rowT["lib_type"].'<br /><br />';
    }
    Au fait, la valeur que tu envoie c'est checkbox ?
    La valeur ? je n'ai pas compris

    >> Je test ça et je te dis merci en tout cas

  8. #8
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Aie aie aie celà me desactive toutes mes checkbox

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Oups ! doit y avoir un loupé dans mes condtions alors...
    Est-ce que tu peux faire un print_r($types_OK) enter les deux whles et me dire si il y a quelque chose dedans ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  10. #10
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    Citation Envoyé par Celira Voir le message
    Oups ! doit y avoir un loupé dans mes condtions alors...
    Est-ce que tu peux faire un print_r($types_OK) enter les deux whles et me dire si il y a quelque chose dedans ?
    Voila ce que celà m'affiche :

    Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => )


    Et quand je fais ça :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $resP = mysql_query($requeteP, $connexion) or die ('erreur sur '.$requeteP.'<br/>'.mysql_error());
    $types_OK = array();
    $i = 0;
    while ($rowP = mysql_fetch_array($resP) )
    {
      $types_OK[$i] = $rowP['lib_type'];
    $i++;
    }
    echo $types_OK[1];

    Celà ne me marque rien je pense que le problème vient du tableau non ?

  11. #11
    Membre confirmé Avatar de mjs21
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Par défaut
    J'ai trouvé la faille ! Merci beaucoup en tout cas !

    C'etait tout bête, je ne comprend pas pourquoi ça bloquait j'ai remplacé

    ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $types_OK[] = $rowP['lib_type'];
    par ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $types_OK[] = $rowP[2];
    et c'est nikel !

    Merci beaucoup encore !

    Cordialement,

    Emmanuel

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    En gros l'idée était bonne, mais on ne récupérait pas le bon champ ...
    Un 'tit ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. [MySQL] PHP et requete Sql
    Par guillaume007 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/08/2011, 21h41
  2. [MySQL] recuperation variable php pour requete sql
    Par noche29 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/03/2011, 14h36
  3. [SQL] Menu deroulant PHP dynamique requete SQL
    Par pit2121 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/12/2007, 16h16
  4. [MySQL] php et requete sql mal executée
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/04/2007, 12h16
  5. [Tableaux] affichage tableau php apres requete sql count
    Par heteroclite dans le forum Langage
    Réponses: 1
    Dernier message: 13/09/2006, 20h53

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