[php] Souci d'affichage données help svp

lonewolf -  
AssassinTourist Messages postés 409 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'essai de faire un script php qui dans un premier temps me permet d'afficher dans un widget radio les données d'une colonne d'une de mes tables et cela fonctionne.

Mais je voudrais pouvoir afficher la ligne correspondante de cette table en entier dans un tableau mais la j'ai l'impression que je ne recupere pas la variable de mon formulaire qui me permettrait d'etablir la condition de l'affichage de cette ligne.

J'espère etre clair.

Je vous transmet mon script en esperant que vous pourrez m'aider a pointer du doigt l'erreur que je dois faire.

Je vous remercie par avance de l'aide que vous voudrez bien m'apporter.
<HTML>
<body>

<?php
try
{
    // On se connecte à MySQL
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=****', '*****', '***', $pdo_options);
    
    // On récupère tout le contenu de la table Moulin Rouge
    $reponse = $bdd->query('SELECT * FROM Moulin_Rouge');
    
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
    {
    ?>
        <p>
		<form method="post">

		<?php echo $donnees['Type']; ?><input type="radio" name="Type" value=<?php echo $donnees['Type']; ?>  /><br>
		
            <?php
    }
		?>
	<input value="Valider" type="submit" style="background-color:rgb(92,168,10)" name="valide" />
	</form>
	<?php

    $reponse->closeCursor(); // Termine le traitement de la requête

}
catch(Exception $e)
{
    // En cas d'erreur précédemment, on affiche un message et on arrête tout
    die('Erreur : '.$e->getMessage());
}


?>

<center><table width="600" border="1" cellspacing="0" cellpadding="0">

  <tr>

	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">ID</div><span></font></td>
  
	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Type</div><span></font></td>
	
	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Numéro</div><span></font></td>

    <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Référence</div><span></font></td>

    <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Indice</div><span></font></td>

    <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Conservation</div><span></font></td>
	
	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Lieu</div><span></font></td>
	
	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Responsable</div><span></font></td>
	
	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Création</div><span></font></td>

    <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Diffusion</div><span></font></td>


 </tr>
<?php

//Connection Mysql
mysql_connect("localhost","*******","*******")or die("Problème avec la base de données");
mysql_select_db("intervaljoomla")or die ("pas de connection");
//Recup Variable
$Type=$_POST['donnees'];

$reponse = mysql_query("SELECT * FROM Moulin_Rouge WHERE Type='".Type."'"); // Requête SQL



// On fait une boucle pour lister tout ce que contient la table :
//***********************************************************************************************************************
if ($reponse)
{
//*************************************************************************************************************************
while ($donnees = mysql_fetch_array($reponse))

{

?>

  <tr>

	<td><center><font face="tahoma" size="2"><?php echo $donnees['id']; ?></font></center></td>
  
	<td><center><font face="tahoma" size="2"><?php echo $donnees['Type']; ?></font></center></td>
	
	<td><center><font face="tahoma" size="2"><?php echo $donnees['Numero']; ?></font></center></td>

        <td><center><font face="tahoma" size="2"><?php echo $donnees['Reference']; ?></font></center></td>

        <td><center><font face="tahoma" size="2"><?php echo $donnees['Indice']; ?></font></center></td>

        <td><center><font face="tahoma" size="2"><?php echo $donnees['Conservation']; ?></font></center></td>

        <td><center><font face="tahoma" size="2"><?php echo $donnees['Lieu']; ?></font></center></td>

        <td><center><font face="tahoma" size="2"><?php echo $donnees['Responsable']; ?></font></center></td>
	
	<td><center><font face="tahoma" size="2"><?php echo $donnees['Creation']; ?></font></center></td>
	
	<td><center><font face="tahoma" size="2"><?php echo $donnees['Diffusion']; ?></font></center></td>

   </tr>

<?php

}



//mysql_close(); // Déconnexion de MySQL
//****************************************************************************************************
}
else
{
echo 'Pas de champs!!!';
}
//****************************************************************************************************
?>
</table></center>

</body>
</HTML>


4 réponses

  1. AssassinTourist Messages postés 409 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    On est bien d'accord que pour ta première boucle, il y a un formulaire et un bouton submit pour chaque bouton radio ?

    Et c'est quoi à la fin ton $_POST['donnees'] ? Ca vient de quel formulaire ?
    0
  2. lonewolf
     
    Non, il ne doit y avoir qu'un bouton submit, c'est pour cela que j'ai mis le submit en dehors du php.

    Mon $_POST['donnees'] est la recupération des données du formulaire... du moins dans le principe car cela ne fonctionne pas

    Merci encore pour ton aide

    Amicalement
    0
    1. AssassinTourist Messages postés 409 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Il faut d'abord que tu décales ton <form method="post"> et le mettre hors de ta boucle while (sinon il est créé à chaque fois - je croyais que ton submit était aussi dans la boucle)

      $_POST['donnees'] ne fonctionnera pas, effectivement. Un petit exemple pour savoir quoi mettre entre crochet :

      <form method="post" action="page.php"> <!-- Déjà, il faut mettre une action pour qu'il envoie tes valeurs quelque part -->
      <input type="text" value="bidule" name="truc" />
      <input value="Valider" type="submit" />
      </form>

      if(isset($_POST['truc']) & $_POST['truc'] != null){
      echo $_POST['truc']; <!-- Ca donnera "bidule" -->
      }
      0
  3. lonewolf
     
    Ok, je comprend.

    Néanmoins même si j'utilise donc $POST['Type'], ca ne me donne rien de plus.

    Cela m'affiche :
    Notice: Undefined index: Type in C:\wamp\www\php\test3.php on line 74
    
    Notice: Use of undefined constant Type - assumed 'Type' in C:\wamp\www\php\test3.php on line 76


    Ligne 73, c'est la récupération de ma variable :
    //Recup Variable
    $Type=$_POST['Type'];
    


    et la ligne 76 ma requete :
    $reponse = mysql_query("SELECT * FROM Moulin_Rouge WHERE Type='".Type."'"); // Requête SQL


    Si je fais un choix et que je valide, il me reste en message d'erreur :
    Notice: Use of undefined constant Type - assumed 'Type' in C:\wamp\www\php\test3.php on line 76


    Merci encore pour ton aide
    0
    1. AssassinTourist Messages postés 409 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Si ton formulaire et le résultat de ton formulaire est sur la même page, tu es obligé de passer par un isset et un !=null comme dans l'exemple que je t'ai donné. Comme ça la première fois que tu charges ta page, il ne devrait pas te faire d'erreur avec $Type=$_POST['Type'];
      C'est peut-être à cause de ça qu'après, il a créé une constante "Type"...
      0
  4. lonewolf
     
    J'ai essayé comme tu me l'as proposé mais cette fois je n'ai meme plus l'affichage des données que j'avais
    <HTML>
    <body>
    <p>
    <form method="post">
    <?php
    try
    {
        // On se connecte à MySQL
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=*****', '****', '*****', $pdo_options);
        
        // On récupère tout le contenu de la table Moulin Rouge
        $reponse = $bdd->query('SELECT * FROM Moulin_Rouge');
    
        // On affiche chaque entrée une à une
        while ($donnees = $reponse->fetch())
        {
        ?>
    
    		<?php if(isset($_POST['Type']) & $_POST['Type'] != null)
    			{ 
    		echo $donnees['Type']; ?><input type="radio" name="Type" value=<?php echo $donnees['Type']; ?>  /><br>
    			<?php
    			}
    	}
    			?>
    	<input value="Valider" type="submit" style="background-color:rgb(92,168,10)" name="valide" />
    	</form>
    	<?php
    
        $reponse->closeCursor(); // Termine le traitement de la requête
    
    }
    catch(Exception $e)
    {
        // En cas d'erreur précédemment, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
    }
    
    
    ?>
    
    <center><table width="600" border="1" cellspacing="0" cellpadding="0">
    
      <tr>
    
    	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">ID</div><span></font></td>
      
    	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Type</div><span></font></td>
    	
    	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Numéro</div><span></font></td>
    
        <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Référence</div><span></font></td>
    
        <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Indice</div><span></font></td>
    
        <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Conservation</div><span></font></td>
    	
    	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Lieu</div><span></font></td>
    	
    	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Responsable</div><span></font></td>
    	
    	<td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Création</div><span></font></td>
    
        <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Diffusion</div><span></font></td>
    
    
     </tr>
    <?php
    
    //Connection Mysql
    mysql_connect("localhost","***","*****")or die("Problème avec la base de données");
    mysql_select_db("*****")or die ("pas de connection");
    //Recup Variable
    $Type=$_POST['Type'];
    
    $reponse = mysql_query("SELECT * FROM Moulin_Rouge WHERE Type='".Type."'"); // Requête SQL
    
    
    
    // On fait une boucle pour lister tout ce que contient la table :
    //***********************************************************************************************************************
    if ($reponse)
    {
    //*************************************************************************************************************************
    while ($donnees = mysql_fetch_array($reponse))
    
    {
    
    ?>
    
      <tr>
    
    	<td><center><font face="tahoma" size="2"><?php echo $donnees['id']; ?></font></center></td>
      
    	<td><center><font face="tahoma" size="2"><?php echo $donnees['Type']; ?></font></center></td>
    	
    	<td><center><font face="tahoma" size="2"><?php echo $donnees['Numero']; ?></font></center></td>
    
            <td><center><font face="tahoma" size="2"><?php echo $donnees['Reference']; ?></font></center></td>
    
            <td><center><font face="tahoma" size="2"><?php echo $donnees['Indice']; ?></font></center></td>
    
            <td><center><font face="tahoma" size="2"><?php echo $donnees['Conservation']; ?></font></center></td>
    
            <td><center><font face="tahoma" size="2"><?php echo $donnees['Lieu']; ?></font></center></td>
    
            <td><center><font face="tahoma" size="2"><?php echo $donnees['Responsable']; ?></font></center></td>
    	
    	<td><center><font face="tahoma" size="2"><?php echo $donnees['Creation']; ?></font></center></td>
    	
    	<td><center><font face="tahoma" size="2"><?php echo $donnees['Diffusion']; ?></font></center></td>
    
       </tr>
    
    <?php
    
    }
    
    
    
    //mysql_close(); // Déconnexion de MySQL
    //****************************************************************************************************
    }
    else
    {
    echo 'Pas de champs!!!';
    }
    //****************************************************************************************************
    ?>
    </table></center>
    
    </body>
    </HTML>
    


    Et maintenant j'ai ceci comme réponse :
    Notice: Undefined index: Type in C:\wamp\www\php\test3.php on line 20
    
    Notice: Undefined index: Type in C:\wamp\www\php\test3.php on line 20
    
    Notice: Undefined index: Type in C:\wamp\www\php\test3.php on line 20
    
    Notice: Undefined index: Type in C:\wamp\www\php\test3.php on line 20


    Ainsi que :
    Notice: Undefined index: Type in C:\wamp\www\php\test3.php on line 75
    
    Notice: Use of undefined constant Type - assumed 'Type' in C:\wamp\www\php\test3.php on line 77


    Je vais m'arracher les quelques cheveux qu'il me reste sur la tete.

    Amicalement
    0
    1. AssassinTourist Messages postés 409 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Non non ! Je me suis fait mal comprendre, c'est tout. Ta structure de page, ça doit être :

      <form method="post">
      <?php
      Boucle pour afficher les boutons radio comme tu avais fait en premier lieu
      ?>

      <table>
      <tr>En-têtes de ta table</tr>

      <?php
      if(isset($_POST['Type']) & $_POST['Type'] != null)
      {
      Boucle pour afficher tes valeurs avec $_POST['Type'] et non $donnees['Type'] !
      }

      Déconnexion
      ?>

      $donnees, c'est ta première table pour tes boutons radio
      $_POST, c'est une valeur envoyée par ton formulaire. Fais un echo $_POST['Type'] après le isset pour voir à quoi il ressemble
      0