Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2011, 12h11   #1
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
Par défaut Liste deroulante PHP et MySQL

Bonjour,
Bonjour, je dois faire une page surlaquelle on accède à un formulaire (un champs) à compléter, ensuite on doit pouvoir afficher les dates correspondantes (à ce champs) dans un menu (elles sont dans une BDD).
J'ai donc créer le formulaire, la connexion au serveur MySQL fonctionne (je vous mets uniquement la partie PHP, il manque juste la creation du formulaire HTML surlequel on tape le numbers) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// On récupère les valeurs de nos variables :
$numbers = $_POST['numbers'];
?>
<?php
$recherche = mysql_query("SELECT date FROM ntable WHERE numbers='$numbers'" ) ;
$result = mysql_query($recherche) ?>
 
<p> Date: <select size="1" name="date">
 
<?php
while ($row=mysql_fetch_array($result))
{
?>
<OPTION><?php echo $row['date']; ?></OPTION>
<?php
}
--> Ce code fonctionne, j'ai bien les dates proposés dans la liste.
Maintenant, je voudrais afficher d'autre champs de ma BDD en fonction de la date choisie. Je dois donc récupérer la date dans un 1er temps, je propose le code suivant (j'ai déjà renseigner les paramètres form (post ...) au début du formulaire).
Code :
1
2
3
4
5
6
7
8
9
<p>
<INPUT type="submit" value="Envoyer">
</p>
 
<?
$date=$_POST['date'];  
?>
<p> Date <? echo $date; ?> </p>
<?
Merci
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 22h24   #2
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
personne ne peut m'aider ?
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 11/12/2011, 14h28   #3
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
Je reformule le problème :
Code :
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
 
<FORM method=post action="site.php">
<h3><u>Choisir la réference afin d'afficher les dates des tests réalisés : :</u></h3>
<TABLE BORDER=5>
<TR>
	<TD>Entrez la réference</TD>
	<TD>
	<INPUT type=int name="reference">
	</TD>
</TR>
 
<TR>
	<TD COLSPAN=2>
	<INPUT type="submit" value="Envoyer">
	</TD>
</TR>
</TABLE>
</FORM>
 
<?php
// Connexion à la BDD :
$db = mysql_connect('127.0.0.1', 'root', '1234');  // 1
mysql_select_db('bdd',$db); 
?>
 
<?php
// On récupère la valeur de la reference :
$reference = $_POST['reference'];
?>
 
<?php
// On lance la requete SQL suivante afin d'afficher les dates correspondantes dans une liste déroulante aux tests réalisés :
$recherche = "SELECT date FROM tableref WHERE reference='$reference'";
$result = mysql_query($recherche) ?>
 Date: <select size="1" name="date">
 
<?php
// On affiche les dates dans une liste déroulante :
while ($row=mysql_fetch_array($result))
{
?>
<OPTION><?php echo $row['date']; ?></OPTION>
<?php
}
?>
 
<?
$date=$_post['date']; 
?>
<? echo $date; ?> 
 
 
<?
// On ferme la BDD :
mysql_close($db); 
?>
Tout fonctionne jusqu'à la ligne 46 (j'ai bien les dates correspondantes au champs reference dans une liste déroulante).
Je voudrais cependant extraire la date choisie pour exécuter une autre requête sql. Le problème est que je n'arrive pas à l'extraire (j'ai penser au bouton envoyer mais ça ne marche pas).
Merci beaucoup !!!
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 20h40   #4
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
j'ai essayer ça mais ca me donne rien (dans la liste j'ai qu'une ligne ou sont affichés toutes la dates, la condition sql est cependant respectée).
Je voudrais que les dates soient affichés sur plusieurs ligne et pouvoir récupérer la date sélectionnée.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    // On récupère les valeurs de nos variables :
    $dut_serialnumber = $_POST['dut_serialnumber'];
    ?>
    <?php
    $recherche = ("SELECT date_start FROM dut_test_data WHERE dut_serialnumber='$dut_serialnumber'" ) ;
    $result = mysql_query($recherche) ?>
    <FORM method=post action="site2.php">
    Date: <select size="1" name="date_start" >
    <OPTION><?php
    while ($row=mysql_fetch_array($result))
    {
    echo $row['date_start'];} ?>
    </OPTION>
    </select>
    <INPUT type="submit" value="Envoyer2">
    </FORM>
Merci beaucoup de votre aide !!!
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 21h09   #5
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonsoir,

Tu as une erreur de syntaxe les <option></option> sont mal positionnés : essaies avec ça :
Code :
1
2
3
4
5
<?php 
while($row = mysql_fetch_array($result)) {
   echo '<option>', $row['date_start'], '</option>';
}
?>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 21h43   #6
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
Oui merci c'est ça.
Lorsque je demande le 1er champs (serial_numbers) et j'appuie sur envoyer j'ai bien la date correspondante dans la liste.
Je veux sélectionner la date et appuyer sur envoyer(2eme bouton), mais j'ai une erreur comme quoi la valeur serial_number n'est pas entré (elle n'est plus affiché après l'appuie sur le 1er envoie).
Merci de votre aide..
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 21h53   #7
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par SNY77 Voir le message
OJe veux sélectionner la date et appuyer sur envoyer(2eme bouton), mais j'ai une erreur comme quoi la valeur serial_number n'est pas entré (elle n'est plus affiché après l'appuie sur le 1er envoie).
C'est normal, lors de la première soumission il te faut renvoyer le 2ème formulaire avec un champ <input type="hidden" name="dut_serialnumber" value="$dut_serialnumber" /> contenant la valeur $_POST['dut_serialnumber'] récupéré lors de la première soumission
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 08h55   #8
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
Merci, mais j'ai pas très bien compris, je dois les mettre où les commandes que tu a rajouter ?
Merci beaucoup !!!
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 10h11   #9
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// On récupère les valeurs de nos variables :
    $dut_serialnumber = $_POST['dut_serialnumber'];
    ?>
    <?php
    $recherche = ("SELECT date_start FROM dut_test_data WHERE dut_serialnumber='$dut_serialnumber'" ) ;
    $result = mysql_query($recherche) ?>
    <FORM method=post action="site2.php">
    <input type="hidden" name="dut_serialnumber" value="<?php echo $dut_serialnumber; ?>" />
    Date: <select size="1" name="date_start" >
    <OPTION><?php
    while ($row=mysql_fetch_array($result))
    {
    echo $row['date_start'];} ?>
    </OPTION>
    </select>
    <INPUT type="submit" value="Envoyer2">
    </FORM>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 10h17   #10
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
Lorsque je clique sur le 2ème bouton Envoyer, j'ai toujours une erreur comme quoi je n'ai pas renseigné le champs serial_number !
Merci.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$dut_serialnumber = $_POST['dut_serialnumber'];
    ?>
    <?php
    $recherche = ("SELECT date_start FROM dut_test_data WHERE dut_serialnumber='$dut_serialnumber'" ) ;
    $result = mysql_query($recherche) ?>
    <FORM method=post action="site2.php">
    <input type="hidden" name="dut_serialnumber" value="<?php echo $dut_serialnumber; ?>" />
    Date: <select size="1" name="date_start" >
    <OPTION><?php
    while ($row=mysql_fetch_array($result))
    {
    echo $row['date_start'];} ?>
    </OPTION>
    </select>
    <INPUT type="submit" value="Envoyer2">
</FORM>

<? echo $_GET['date_start']; ?>
ps : on m'a dit qu'il est mieux de rajouter les balises options dans la boucle WHILE;
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 10h20   #11
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bah, il faut garder le code source de ta page histoire de voir la valeur du <input type="hidden" />
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 10h21   #12
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
j'ai pas compris
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 10h25   #13
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
La page que tu vois dans le navigateur est basé sur un code source. Pour le voir, il te suffit de cliquer droit sur la page et sélectionner dans le menu déroulant quelque chose comme "Afficher la source", "Source"...
Copie toute le code et postes le.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 10h29   #14
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
Code :
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
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="site1.css" />
        <title>Demonstration N&#65533;2</title>
    </head>
 
    <body>
        <h1 style="border-width:12px; border-color:grey; border-style:inset; padding:5px;">
 
<center><b>Exploitation de la base de donnees TX_RACK</b></center></h1>
 
<FORM method=post action="site2.php">
<h3><u>Choisir le dut_serial_number afin d'afficher les dates des tests r&#65533;alis&#65533;s : :</u></h3>
<TABLE BORDER=5>
<TR>
	<TD>Entrez le dut_serialnumber</TD>
	<TD>
	<INPUT type=int name="dut_serialnumber">
	</TD>
 
</TR>
 
<TR>
	<TD COLSPAN=2>
	<INPUT type="submit" value="Envoyer">
	</TD>
</TR>
</TABLE>
</FORM>
 
 
<FORM method=post action="site2.php">
 Date: <select size="1" name="date_start">
 
<OPTION>2011-07-07 13:31:00</OPTION>
<OPTION>2011-07-07 15:25:02</OPTION>
<OPTION>2011-07-07 17:31:31</OPTION>
 
 
 
<INPUT type="submit" value="Envoyer2">
</FORM>
 
 
<?
$date_start=$_post['date_start']; 
?>
<? echo $date_start; ?> 
<?
$recherche2 = "SELECT test_name, test_description, test_frequency, test_octopack_slot, test_octopack_channel, 
test_phase, test_value, test_limitlow, test_limithigh, test_result, test_unit FROM dut_test_data d";
$result2 = mysql_query($recherche2)
 
 
 
// On ferme la BDD :
mysql_close($db); 
?> 
 
 
</body>
</html>
J'ai mis le code source après avoir taper la valeur du serial number, j'ai donc bien les dates des tests réalisés.
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 10h35   #15
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Je te conseille de lire d'abord ceci : tutoriel pour grand-débutant pressé. Sinon, tu vas finir par jeter l'éponge et moi aussi dans la foulée. Sans compter que ce fil va sacrément s'allonger.
Je vais reprendre ton code mais prends du temps à comprendre ce qui est expliqué dans le tutorial.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 11h15   #16
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
Lorsque j'appuie sur le 2eme ENVOYER je n'ai plus d'erreur comme quoi il manque la valeur au 1er champs.
Parcontre, je n'arrive pas à recuperer la date de la liste déroulante, je demande l'affichage de la variable date mais je n'ai rien ?
Merci.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<FORM method=post action="site2d.php">
<INPUT type="hidden" name="dut_serialnumber" value="<?php echo  $dut_serialnumber; ?>">   
Date: <select name='date_start'  >
<?php 
while($row = mysql_fetch_array($result)) {
   echo '<option>', $row['date_start'], '</option>';
}
?>
</select>
<INPUT type="submit" value="Envoyer2">
</FORM>
<?
$date_start = $_POST['date_start'];
 echo $date_start; ?>
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 12h35   #17
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
J'ai repris entièrement ton code :
Code :
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
 
// securité : échappement des caractères spéciaux
$hsc = function ($p) { return htmlspecialchars($p, ENT_QUOTES); };
 
$hasDut  = (isset($_POST['dut_serialnumber']) && ctype_digit($_POST['dut_serialnumber']));
$hasDate = (isset($_POST['date_start']) && ($date = date_create($_POST['date_start'])));
 
// par défaut on n'affiche rien
$hideData_dates = true;
$hideData_tests = true;
 
$selectedDut  = null;
$selectedDate = null;
 
// si hasDut et hasDate -> on renvoie le formulaire et la liste des tests effectués
// si hasDut -> on renvoie le formulaire et la liste des date disponibles
 
if ($hasDut) {
   $selectedDut = $_POST['dut_serialnumber'];
   $sql = 'SELECT date_start FROM dut_test_data WHERE dut_serialnumber='.$_POST['dut_serialnumber'];
   $dataDates = mysql_query($sql);
   $hideData_dates = ( ! $dataDates); // au cas où la requête planterait on n'affiche pas la zone de liste
}
 
if (( ! $hideData_dates) && $hasDate) {
   $selectedDate = $_POST['date_start'];
}
 
if ($selectedDut && $selectedDate) {
   $sql = <<<SQL
SELECT
   test_name,
   test_description,
   test_frequency,
   test_octopack_slot,
   test_octopack_channel,
   test_phase,
   test_value,
   test_limitlow,
   test_limithigh,
   test_result,
   test_unit
FROM
   dut_test_data
WHERE
   test_date = '$selectedDate'
SQL;
 
   $dataTests = mysql_query($ql);
   $hideData_tests = ( ! $dataTests); // au cas où la requête planterait on n'affiche pas la table
}
?>
<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <link rel="stylesheet" href="site1.css" />
   <title>Demonstration N&#65533;2</title>
</head>
<style type="text/css">
   h1 { text-align: center; font-weight: bold; border-width: 12px; border-color: grey; border-style: inset; padding: 5px; }
   h3 { text-decoration: underline; }
   table { border: 5px; }
</style>
 
<body>
   <h1>Exploitation de la base de donnees TX_RACK</h1>
   <h3>Choisir le dut_serial_number afin d'afficher les dates des tests r&#65533;alis&#65533;s :</h3>
   <form method="post" action="site2.php">
      <label for="dut_serialnumber">Entrez le dut_serialnumber : </label>
      <input id="dut_serialnumber" type="number" name="dut_serialnumber" required="required" value="<?php echo $selectedDut; ?>" />
      <?php if ( ! $hideData_dates): ?>
      <label for="listeDates">Dates : </label>
      <select id="listeDates" name="date_start">
         <?php while($row = mysql_fetch_assoc($dataDates)):
            $isSelected = ($row['date_start'] === $selectedDate) ? ' selected="selected"' : null; ?>
         <option value="<?php echo $hsc($row['date_start']); ?>"<?php echo $isSelected; ?>><?php echo $hsc($row['date_start']); ?></option>
         <?php endwhile; ?>
      </select>
      <?php endif; ?>
      <input type="submit" value="Envoyer" />
   </form>
   <?php if ( ! $hideData_tests): ?>
   <table>
      <thead>
         <tr>
            <th>Name</th>
            <th>Description</th>
            <th>Frequency</th>
            <th>Slot</th>
            <th>Channel</th>
            <th>Phase</th>
            <th>Value</th>
            <th>Limit low</th>
            <th>Limit high</th>
            <th>Result</th>
            <th>Unit</th>
         </tr>
      </thead>
      <tbody>
      <?php while($row = mysql_fetch_assoc($dataTests)): ?>
         <tr>
            <td><?php echo $hsc($row['test_name']); ?></td>
            <td><?php echo $hsc($row['test_description']); ?></td>
            <td><?php echo $hsc($row['test_frequency']); ?></td>
            <td><?php echo $hsc($row['test_octopack_slot']); ?></td>
            <td><?php echo $hsc($row['test_octopack_channel']); ?></td>
            <td><?php echo $hsc($row['test_phase']); ?></td>
            <td><?php echo $hsc($row['test_value']); ?></td>
            <td><?php echo $hsc($row['test_limitlow']); ?></td>
            <td><?php echo $hsc($row['test_limithigh']); ?></td>
            <td><?php echo $hsc($row['test_result']); ?></td>
            <td><?php echo $hsc($row['test_unit']); ?></td>
         </tr>
      <?php endwhile; ?>
      </tbody>
   </table>
   <?php endif; ?>
</body>
</html>
Tu verras qu'on ne fait appel qu'à un seul et unique bouton de soumission et que l'on paramètre l'affichage en fonction des paramètres reçus.
Bref, décortiques et inspires-toi en. Penses à toujours bien séparer le le traitement PHP du rendu HTML. Dans le rendu tu ne dois quasiment pas avoir de code PHP à part des boucles et un ou deux if pour les listes.

Comme toujours, je n'ai rien testé donc mes excuses pour une éventuelle boulette.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 13h36   #18
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
Merci, mais maintenant je n'ai même plus la date après la saisie du serial_number !
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 13h54   #19
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Oui j'ai fais une erreur ici : $selectedDate = $_POST['date_serial'];, il faut remplacer par $selectedDate = $_POST['date_start'];Ensuite j'ai testé mon code en le modifiant un peu :
Code :
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
 
// securité : echappement des caractères spéciaux
$hsc = function ($p) { return htmlspecialchars($p, ENT_QUOTES); };
 
$hasDut  = (isset($_POST['dut_serialnumber']) && ctype_digit($_POST['dut_serialnumber']));
$hasDate = (isset($_POST['date_start']) && date_create($_POST['date_start']));
 
$hideData_dates = true;
$hideData_tests = true;
 
$selectedDut  = null;
$selectedDate = null;
 
// si hasDut et hasDate -> on renvoie le formulaire et la liste des tests effectués
// si hasDut -> on renvoie le formulaire et la liste des date disponibles
 
if ($hasDut) {
   $selectedDut = $_POST['dut_serialnumber'];
   $dataDates = array('2011-12-01 17:54', '2011-11-01 10:00', '2011-10-01 07:54');
   //$sql = 'SELECT date_start FROM dut_test_data WHERE dut_serialnumber='.$_POST['dut_serialnumber'];
   //$dataDates = mysql_query($sql);
   $hideData_dates = ( ! $dataDates); // au cas oà la requête planterait on affiche pas la zone de liste
}
 
if (( ! $hideData_dates) && $hasDate) {
   $selectedDate = $_POST['date_start'];
}
 
if ($selectedDut && $selectedDate) {
   $sql = <<<SQL
SELECT
   test_name,
   test_description,
   test_frequency,
   test_octopack_slot,
   test_octopack_channel,
   test_phase,
   test_value,
   test_limitlow,
   test_limithigh,
   test_result,
   test_unit
FROM
   dut_test_data
WHERE
   test_date = '$selectedDate'
SQL;
 
   //$dataTests = mysql_query($ql);
   $dataTests = array(array_fill(0, 11, 'test1'), array_fill(0, 11, 'test2'), array_fill(0, 11, 'test3'));
   $hideData_tests = ( ! $dataTests); // au cas oà la requête planterait on affiche pas la table
}
?>
<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <link rel="stylesheet" href="site1.css" />
   <title>Demonstration N&#65533;2</title>
</head>
<style type="text/css">
   h1 { text-align: center; font-weight: bold; border-width: 12px; border-color: grey; border-style: inset; padding: 5px; }
   h3 { text-decoration: underline; }
   table { border: 5px; }
</style>
 
<body>
   <h1>Exploitation de la base de donnees TX_RACK</h1>
   <h3>Choisir le dut_serial_number afin d'afficher les dates des tests r&#65533;alis&#65533;s :</h3>
   <form method="post" action="test.php">
      <label for="dut_serialnumber">Entrez le dut_serialnumber : </label>
      <input id="dut_serialnumber" type="number" name="dut_serialnumber" required="required" value="<?php echo $selectedDut; ?>" />
      <?php if ( ! $hideData_dates): ?>
      <label for="listeDates">Dates : </label>
      <select id="listeDates" name="date_start">
         <?php foreach($dataDates as $row):
            $isSelected = ($row === $selectedDate) ? ' selected="selected"' : null; ?>
         <option value="<?php echo $hsc($row); ?>"<?php echo $isSelected; ?>><?php echo $hsc($row); ?></option>
         <?php endforeach; ?>
      </select>
      <?php endif; ?>
      <input type="submit" value="Envoyer" />
   </form>
   <?php if ( ! $hideData_tests): ?>
   <table>
      <thead>
         <tr>
            <th>Name</th>
            <th>Description</th>
            <th>Frequency</th>
            <th>Slot</th>
            <th>Channel</th>
            <th>Phase</th>
            <th>Value</th>
            <th>Limit low</th>
            <th>Limit high</th>
            <th>Result</th>
            <th>Unit</th>
         </tr>
      </thead>
      <tbody>
      <?php foreach($dataTests as $row): ?>
         <tr>
            <td><?php echo $hsc($row[0]); ?></td>
            <td><?php echo $hsc($row[1]); ?></td>
            <td><?php echo $hsc($row[2]); ?></td>
            <td><?php echo $hsc($row[3]); ?></td>
            <td><?php echo $hsc($row[4]); ?></td>
            <td><?php echo $hsc($row[5]); ?></td>
            <td><?php echo $hsc($row[6]); ?></td>
            <td><?php echo $hsc($row[7]); ?></td>
            <td><?php echo $hsc($row[8]); ?></td>
            <td><?php echo $hsc($row[9]); ?></td>
            <td><?php echo $hsc($row[10]); ?></td>
         </tr>
      <?php endforeach; ?>
      </tbody>
   </table>
   <?php endif; ?>
</body>
</html>
Et ça fonctionne sans problèmes.
Ton problème vient du fait je pense qu'il te manque un mysql_connect() au début du script.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 14h09   #20
 
Homme
Inscription : décembre 2011
Messages : 121
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 121
Points : -3
Points : -3
Toujours rien, il n'est pas possible de reprendre mon code initiale s'il te plait ?
Merci.
SNY77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h12.


 
 
 
 
Partenaires

Hébergement Web