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 :

Tableau double entrée et requete sql


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut Tableau double entrée et requete sql
    bonjour!

    j'ai creé un tableau à simple entrée, jusqu'ici tout va bien

    mais je me suis rendu compte que la présentation n'allait pas vraiment et j'aurais aimé avoir un tableau à double entrée (date et soin)
    de plus j'aurais aimé avoir 2 résultats d'une même requête dans une même cellule (num_cage et pseudo)

    voici mon code :
    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
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
     
    <?                                                              
     
     echo "<b><p align = \"center\"><font face = \"comic sans ms\" color = \"green\" size = \"+1\">Liste des entretiens des cages de la base de données&#58;</p></font>";
     echo "<br>";
     echo "<br>";
     echo "<font face = \"comic sans ms\">";
     
     
     
     
    $db = mysql_connect&#40;'localhost', 'root', ''&#41;;
    mysql_select_db&#40;'bd2_rat',$db&#41;;
     
    // si envoi de formulaire 
    if&#40;isset&#40;$_POST&#91;'sub_form'&#93;&#41;&#41; &#123; 
     
     
       // si suppression 
       if&#40;$_POST&#91;'sub_form'&#93;=="supprimer"&#41; &#123; 
     
          $sql = "DELETE FROM entretenir WHERE id_volontaire= ".$_POST&#91;'idV'&#93; AND "'num_cage=".$_POST&#91;'num_cage'&#93;."";
          $res = mysql_query&#40;$sql&#41; or die &#40;mysql_error&#40;&#41;&#41;; 
     
       // si modification 
       &#125;elseif&#40;$_POST&#91;'sub_form'&#93;=="modifier"&#41; &#123; 
     
          $sql = "UPDATE entretenir SET ". 
                "num_cage= ".    $_POST&#91;'num'&#93;.",". 
                "id_volontaire=".   $_POST&#91;'id'&#93;.",".
                "pseudo=".   $_POST&#91;'pseudo'&#93;.",".
                "date_entretien= '".  $_POST&#91;'date'&#93;."' ". 
                "WHERE id_volontaire= ".$_POST&#91;'idV'&#93; AND "'num_cage=".$_POST&#91;'num_cage'&#93;."";
          $res = mysql_query&#40;$sql&#41; or die &#40;mysql_error&#40;&#41;&#41;;
       &#125; 
     
    &#125;
     
    // extraction des donnees 
    $sql = "SELECT * FROM entretenir";
    $res = mysql_query&#40;$sql&#41; or die&#40;mysql_error&#40;&#41;&#41;; 
     
    // formulaire
     
    //echo "<form method=\"post\" action=\"&#123;$_SERVER&#91;'PHP_SELF'&#93;&#125;\">";
    echo "<table border =\"0\" cellpadding=\"0\" cellspacing=\"1\" bordercolor=\"green\">\n";
    echo "\t<tr>\n";
    echo "\t\t<th>lundi</th>\n";
    echo "\t\t<th>mardi</th>\n";
    echo "\t\t<th>mercredi</th></tr>\n";
    echo "\t<tr>";
    echo "\t\t<td>Soin</th>\n";
    echo "\t</tr>\n";
     
    while&#40;$data = mysql_fetch_assoc&#40;$res&#41;&#41; &#123;
     
       echo "<form method=\"post\" action=\"&#123;$_SERVER&#91;'PHP_SELF'&#93;&#125;\">\n"; 
       echo "\t<tr>\n"; 
       echo "<input type=\"hidden\" name=\"num_cage\" value=\"".$data&#91;'num_cage'&#93;."\" />\n";
       echo "<input type=\"hidden\" name=\"idV\" value=\"".$data&#91;'id_volontaire'&#93;."\" />\n";
       echo "\t\t<td><input type=\"text\" name=\"num\" value=\"".$data&#91;'num_cage'&#93;."\"  /></td>\n";
       echo "<td><input type=\"text\" name=\"pseudo\" value=\"".$data&#91;'pseudo'&#93;."\" /></td>\n";
      // echo "\t\t<td><input type=\"text\" name=\"id\" value=\"".$data&#91;'id_volontaire'&#93;."\" /></td>\n";
       //echo "\t\t<td><input type=\"text\" name=\"date\" value=\"".$data&#91;'date_entretien'&#93;."\" /></td>\n";
     
       echo "\t\t<td><input type=\"submit\" name=\"sub_form\" value=\"modifier\" /></td>\n"; 
       echo "\t\t<td><input type=\"submit\" name=\"sub_form\" value=\"supprimer\" /></td>\n";
       echo "\t</tr>\n"; 
       echo "</form>\n"; 
     
    &#125; 
    echo "</table>\n";
    echo"<br>";
    echo "<center><i><a href = http&#58;//XXX/YYYY/PTI%201/selectionvolontaire2.htm>Informations consernant l'identifiant d'un volontaire</center></i></a><br>"; 
    echo "<a href = http&#58;//XXX/YYYY/PTI%201/nouveauentretien.php>ajout nouveau entretien de cage</a>";
    ?>

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Désolé je n'ai pas compris.

  3. #3
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    huummm
    je voudrais un tableau à double entrée : "date" et "soin"
    de plus, dans le code que j'ai mis, il y a un seule résultat de ma requete dans une seule cellule
    et ce que je voudrais c'est en mettre 2 par cellule, soit "num_cage" et "pseudo"

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    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
    25
    26
    27
    28
    29
    30
    31
    $sql = "SELECT * FROM entretenir"; 
    $res = mysql_query&#40;$sql&#41; or die&#40;mysql_error&#40;&#41;&#41;; 
    $nblignes = mysql_num_rows&#40;$res&#41;;
    // formulaire 
     
    //echo "<form method=\"post\" action=\"&#123;$_SERVER&#91;'PHP_SELF'&#93;&#125;\">"; 
    echo "<table border =\"0\" cellpadding=\"0\" cellspacing=\"1\" bordercolor=\"green\">\n"; 
    echo "\t<tr>\n"; 
    echo "\t\t<th>lundi</th>\n"; 
    echo "\t\t<th>mardi</th>\n"; 
    echo "\t\t<th>mercredi</th></tr>\n"; 
    echo "\t<tr>"; 
    echo "\t\t<th rowspan='".$nblignes."'>Soin</th>\n"; 
    echo "\t</tr>\n"; 
     
    while&#40;$data = mysql_fetch_assoc&#40;$res&#41;&#41; &#123; 
     
       echo "<form method=\"post\" action=\"&#123;$_SERVER&#91;'PHP_SELF'&#93;&#125;\">\n"; 
       echo "\t<tr>\n"; 
       echo "\t\t<td colspan='2'>";
       echo "<input type=\"hidden\" name=\"num_cage\" value=\"".$data&#91;'num_cage'&#93;."\" />\n"; 
       echo "<input type=\"hidden\" name=\"idV\" value=\"".$data&#91;'id_volontaire'&#93;."\" />\n"; 
       echo "<input type=\"text\" name=\"num\" value=\"".$data&#91;'num_cage'&#93;."\"  />";
       echo "&nbsp;<input type=\"text\" name=\"pseudo\" value=\"".$data&#91;'pseudo'&#93;."\" /></td>\n"; 
       echo "\t\t<td><input type=\"submit\" name=\"sub_form\" value=\"modifier\" /></td>\n"; 
       echo "\t\t<td><input type=\"submit\" name=\"sub_form\" value=\"supprimer\" /></td>\n"; 
       echo "\t</tr>\n"; 
       echo "</form>\n"; 
     
    &#125; 
    echo "</table>\n";
    comme ca :
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut

    Océane, Ton code est un peu pourri
    1. tu as des formulaires imbriqués, ce qui est MAL
    2. tu as des balises <form> entre table et tr, ce qui est MAL
    => il me semble que je t'avais proposé un code plus propre que ça dans un de tes précédents problèmes ... Je dit pas que ma solution était la panacée, mais en tout cas elle était bien plus propre que ce que tu viens de nous montrer.

    sinon pour faire un tableau à double entrée c'est comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //création du tableau
    $tablo = array&#40;&#41;;
     
    //Création d'une ligne pour une date $date et un soin $soin donnés
    if &#40;!isset&#40;$tablo&#91;$date&#93;&#41;&#41; &#123;
       $tablo&#91;$date&#93; = array&#40;'soin1' => array&#40;&#41;, 'soin2' => array&#40;&#41;, 'soin3' => array&#40;&#41;&#41;;
    &#125;
    $tablo&#91;$date&#93;&#91;$soin&#93;&#91;&#93; = array&#40;'num_cage' => 2, 'pseudo' => joe&#41;;
     
    //Ainsi pour résumé on a un tableau de date &#58; $tablo
    //Pour une date donnée, on a les soins correspondants &#58; $tablo&#91;$date&#93;
    //Pour une date et un soin donnée, on a l'ensemble des rats 
    //&#40;num_cage/pseudo&#41; qui ont subit ce soin &#58; $tablo&#91;$date&#93;&#91;$soin&#93;
    N'hésite pas si tu n'as pas compris ou si tu as besoin de plus d'explications...

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    vi clair que le code bof bof, j'en ai profité pour mettre des input hidden dans des td au lieu qu'ils soient dans le tr direct
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

Discussions similaires

  1. Transformer résultat requete en tableau double entrée
    Par Dhumkazaar dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/10/2013, 10h34
  2. [SQL] Tableau double entrée / Requête
    Par Sekigawa dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 19/03/2008, 13h59
  3. Requête SQL et tableau à double entrée
    Par Invité dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/06/2007, 21h51
  4. tableau double entrée et requete sql
    Par oceane751 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/11/2005, 15h25
  5. [XSLT]tableau double entrée avec cellule manquante
    Par nferay dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 08/03/2005, 16h07

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