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

Fermé
lonewolf - 24 janv. 2012 à 08:42
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 - 24 janv. 2012 à 13:43
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>






A voir également:

4 réponses

AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
24 janv. 2012 à 10:03
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
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
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
Modifié par AssassinTourist le 24/01/2012 à 11:20
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
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
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
24 janv. 2012 à 11:22
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
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
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
24 janv. 2012 à 13:43
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