Non, je me suis trompé, dans ma table mysql j'ai une colonne "genre" où viennent s'inscrire les boutons radio cochés, et une colonne "autre_genre" où viennent s'inscrire les valeurs entrées par le champ de saisie du formulaire. Le type de ces 2 champs mysql est VARCHAR. Le formulaire possède une liste de boutons radio qui liste différents genres de livres (ex :roman, cuisine, photo, bd, etc) et en-dessous un champ de type="text" pour entrer un genre qui n'est pas dans cette liste (ex : poésie, sport...). L'insertion des données dans la table mysql se fait bien dans les bonnes colonnes. Mais la sortie, quand on veut retrouver une référence pose problème. Si l'utilisateur cherche tous ses livres de cuisine ou de photo, pas de problème ça les renvoie : c'est ce qui correspond à la liste des boutons radio. Mais s'il veut ses livres de sport ou de poésie, là ça ne renvoie rien (page blanche) : c'est ce qui correspond aux entrées dans le champ texte du formulaire. Et pourtant il y a bien des livres de sport ou de poésie dans la base de données.
L'affichage de mes données se fait dans un tableau html avec une colonne par champ de la table mysql (titre, auteur, éditeur, genre, résumé). Mais je n'ai pas fait de colonne spécifique dans le tableau html pour la rubrique "autre_genre" car je veux que les données "genre" et "autre_genre" s'affichent dans la même colonne du tableau html. L'utilisateur n'a pas besoin de connaître la "cuisine" qui est derrière : qu'il ait entré le genre de son livre en cochant un bouton ou en l'écrivant en toutes lettres, pour lui c'est pareil, et le tableau doit seulement dire : "Vous avez demandé tel genre, voici tous les livres qui correspondent", quellle que soit la façon dont le genre a été entré dans la base de données. Et donc c'est ça qui ne fonctionne pas comme je veux.
Effectivement, je n'avais pas pensé à la possibilité qu'on coche un bouton ET qu'on remplisse un champ. Je viens d'essayer : mes 2 colonnes "genre" et "autre_genre" de la base de données sont remplies... Mais ça je ne sais pas faire.
Voici mon script php pour l'extraction des données :
<html>
<head>
<link rel="stylesheet" type="text/css" href="./styles.css">
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="../projet/contenu.html"><img src="../projet/ressources/bouton-page_daccueil.jpeg" alt="bouton" ></td>
<td><a href="../projet/enregistrement.html"><img src="../projet/ressources/bouton-enregistrement.jpeg" alt="bouton" ></td>
<td><a href="../projet/consultation.html"><img src="../projet/ressources/bouton-consultation.jpeg" alt="bouton" ></td>
<td><a href="../projet/suppression.html"><img src="../projet/ressources/bouton-suppression.jpeg" alt="bouton" ></td>
</tr>
</table>
</body>
</html>
<?php
/*Connexion au serveur :*/
$id_sql=mysql_connect("127.0.0.1","user","password") OR die ('Erreur de connexion'.mysql_error());
/*Connexion à la base de données "bibliotheque" :*/
$ok=mysql_select_db("bibliotheque",$id_sql) OR die ('Erreur de sélection'.mysql_error());
/*Si le champ "auteur" est rempli :*/
if(isset($_POST['auteur']) && !empty($_POST['auteur']))
{
$sql='SELECT titre,genre,editeur,resume FROM livres WHERE auteur="'.$_POST['auteur'].'"';
$req=mysql_query($sql) OR die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
if(mysql_num_rows($req)>0)
{
echo '<body bgcolor="#ffeecc"><br><br>
<h2><center>Auteur demandé : <i>'.$_POST['auteur'].'</i></center></h2>
<table border="1" cellpadding="10" cellspacing="0" width="90%" align="center" style="border-collapse:collapse; border:solid black 2px;">
<tr bgcolor="#f15609">
<th width="500">Titre</th>
<th width="150">Genre</th>
<th width="500">Editeur</th>
<th width="500">Résumé</th>
</tr>';
while($tableau=mysql_fetch_array($req))
{
echo '<tr>
<td align="center" style="font-size:11pt; font-weight:bold">"'.$tableau['titre'].'"</td>
<td align="center" style="font-size:11pt; font-weight:normal"> '.$tableau['genre'].$tableau['autre_genre'].'</td>
<td align="center" style="font-size:11pt; font-weight:normal"> '.$tableau['editeur'].'</td>
<td align="justify" style="font-size:11pt; font-weight:normal"> '.$tableau['resume'].'</td>
</tr>';
}
echo '</table>';
}
}
/*Si le champ "titre" est rempli :*/
if(isset($_POST['titre']) && !empty($_POST['titre']))
{
$sql='SELECT * FROM livres WHERE titre="'.$_POST['titre'].'"';
$req=mysql_query($sql) OR die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
if(mysql_num_rows($req)>0)
{
echo '<body bgcolor="#ffeecc"><br><br>
<table border="0" cellpadding="0" cellspacing="0">
<h2><center>Livres demandés :</center></h2>
<table border="1" cellpadding="10" cellspacing="0" width="90%" align="center" style="border-collapse:collapse; border:solid black 2px;">
<tr bgcolor="#f15609">
<th width="500">Titre</th>
<th width="500">Auteur</th>
<th width="500">Editeur</th>
<th width="150">Genre</th>
<th width="500">Résumé</th>
</tr>';
while($tableau=mysql_fetch_array($req))
{
echo '<tr>
<td align="center" style="font-size:11pt; font-weight:bold">"'.$_POST['titre'].'"</td>
<td align="center" style="font-size:11pt; font-weight:normal">'.$tableau['auteur'].'</td>
<td align="center" style="font-size:11pt; font-weight:normal">'.$tableau['editeur'].'</td>
<td align="center" style="font-size:11pt; font-weight:normal">'.$tableau['genre'].$tableau['autre_genre'].'</td>
<td align="justify" style="font-size:11pt; font-weight:normal"> '.$tableau['resume'].'</td>
</tr>';
}
echo '</table>';
}
}
/*Si le champ "éditeur" est rempli :*/
if(isset($_POST['editeur']) && !empty($_POST['editeur']))
{
$sql='SELECT titre,auteur,genre,resume FROM livres WHERE editeur="'.$_POST['editeur'].'"';
$req=mysql_query($sql) OR die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
if(mysql_num_rows($req)>0)
{
echo '<body bgcolor="#ffeecc"><br><br>
<h2><center>Editeur demandé : <i>'.$_POST['editeur'].'</i></center></h2>
<table border="1" cellpadding="10" cellspacing="0" width="90%" align="center" style="border-collapse:collapse; border:solid black 2px;">
<tr bgcolor="#f15609">
<th width="500">Titre</th>
<th width="500">Auteur</th>
<th width="150">Genre</th>
<th width="500">Résumé</th>
</tr>';
while($tableau=mysql_fetch_array($req))
{
echo '<tr>
<td align="center" style="font-size:11pt; font-weight:bold">"'.$tableau['titre'].'"</td>
<td align="center" style="font-size:11pt; font-weight:normal">'.$tableau['auteur'].'</td>
<td align="center" style="font-size:11pt; font-weight:normal"> '.$tableau['genre'].$tableau['autre_genre'].'</td>
<td align="justify" style="font-size:11pt; font-weight:normal"> '.$tableau['resume'].'</td>
</tr>';
}
echo '</table>';
}
}
/*Si le champ "genre" est rempli :*/
if(isset($_POST['genre']) && !empty($_POST['genre']))
{
$sql='SELECT titre,auteur,editeur,resume FROM livres WHERE genre="'.$_POST['genre'].'"';
$req=mysql_query($sql) OR die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
if(mysql_num_rows($req)>0)
{
echo '<body bgcolor="#ffeecc"><br><br>
<h2><center>Genre demandé : <i>'.$_POST['genre'].'</i></center></h2>
<table border="1" cellpadding="10" cellspacing="0" width="90%" align="center" style="border-collapse:collapse; border:solid black 2px;">
<tr bgcolor="#f15609">
<th width="500">Titre</th>
<th width="500">Auteur</th>
<th width="500">Editeur</th>
<th width="500">Résumé</th>
</tr>';
while($tableau=mysql_fetch_array($req))
{
echo '<tr>
<td align="center" style="font-size:11pt; font-weight:bold">"'.$tableau['titre'].'"</td>
<td align="center" style="font-size:11pt; font-weight:normal">'.$tableau['auteur'].'</td>
<td align="center" style="font-size:11pt; font-weight:normal"> '.$tableau['editeur'].'</td>
<td align="justify" style="font-size:11pt; font-weight:normal"> '.$tableau['resume'].'</td>
</tr>';
}
echo '</table>';
}
}
/*Fermeture de la connexion :*/
mysql_close();
?>
Et le formulaire html :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Page enregistrement</title>
<link rel="stylesheet" type="text/css" href="./styles.css">
<script type="text/javascript" >
/*Teste les champs de saisie texte :*/
<!--
function test()
{
var ok=0;
if (document.formulaire1.titre.value=='')
{
document.formulaire1.titre.value=prompt('Veuillez remplir le champ "Titre" :');
ok=1;
}
if (document.formulaire1.auteur.value=='')
{
document.formulaire1.auteur.value=prompt('Veuillez remplir le champ "Auteur" :');
ok=1;
}
if (document.formulaire1.editeur.value=='')
{
document.formulaire1.editeur.value=prompt('Veuillez remplir le champ "Editeur" :');
ok=1;
}
if (ok==0)
{
return true;
}
else
{
return false;
}
}
-->
</script>
<script type="text/javascript" >
/*Teste les boutons radio :*/
<!--
function verifRadio()
{
var radio=document.formulaire1.genre;
var rlength=radio.length;
var oui=false;
var champ="";
for (var i=0; i<rlength; i++)
{
if (radio[i].checked || champ !="")
{
oui=true;
}
}
if (oui)
{
return true;
}
else
{
if (document.getElementById('autre_genre').value != "")
{
return true;
}
else
{
window.alert("Veuillez indiquer le genre du livre");
return false;
}
}
}
-->
</script>
<script type="text/javascript" >
/*Script pour contrôler l'affichage du formulaire si JavaScript n'est pas activé :*/
<!--
function displayJsElements(parent)
{
parent=(parent ? parent:document.body);
var nodes=parent.childNodes;
for (var i=0;i<nodes.length;i++)
{
if(nodes[i].tagName)
{
//On supprime l'éventuelle présence de "jsactif" :
if(nodes[i].className)
{
var class_list=nodes[i].className.split(' ');
nodes[i].className='';
for (var j=0;j<class_list.length;j++)
{
if (class_list[j] != 'jsactif')
{
nodes[i].className += class_list[j];
}
}
}
displayJsElements(nodes[i]);
}
}
}
-->
</script>
</head>
<body onload="displayJsElements();">
<div class="jsactif">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="../projet/contenu.html"><img src="../projet//ressources/bouton-page_daccueil.jpeg" alt="bouton" ></td>
<td><a href="../projet/consultation.html"><img src="../projet/ressources/bouton-consultation.jpeg" alt="bouton" ></td>
<td><a href="../projet/suppression.html"><img src="../projet/ressources/bouton-suppression.jpeg" alt="bouton" ></td>
</tr>
</table>
<form method="post" action="./insertion_table.php" name="formulaire1" onsubmit="return verifRadio();">
<table class="table_form" cellpadding="0" cellspacing="0">
<caption class="gros_titre">Nouveau livre</caption>
<tr>
<td class="chapo">
Vous pouvez enregistrer sur cette page tous les livres de votre bibliothèque, et par la suite tous les nouveaux livres que vous acquerrez.<br>
Attention : tous les champs sont OBLIGATOIRES, sauf le résumé de livre qui, bien que facultatif, est fortement recommandé.
</td>
</tr>
<tr>
<td height="60"> </td>
</tr>
<tr>
<td>
<fieldset>
<legend class="texte_fieldset">Références du livre</legend>
<table border="0" cellpadding="0" cellspacing="10">
<tr>
<td class="legende"><label for="titre">Titre : </label></td>
<td><input name="titre" id="titre" type="text" size="40" class="champ"></td>
</tr>
<tr>
<td class="legende"><label for="auteur">Auteur : </label></td>
<td><input name="auteur" id="auteur" type="text" size="30" class="champ"></td>
</tr>
<tr>
<td class="legende"><label for="editeur">Éditeur : </label></td>
<td><input name="editeur" id="editeur" type="text" size="30" class="champ"></td>
</tr>
<tr>
<td height="5"> </td>
</tr>
<tr>
<td><input type="reset" name="reset" value=" Recommencer " class="bouton_simple"></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend class="texte_fieldset">Genre</legend>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<input type="radio" name="genre" id="roman" value="roman"><label for="roman" class="legende">Roman</label><br>
<input type="radio" name="genre" id="informatique" value="informatique"><label for="informatique" class="legende">Informatique</label><br>
<input type="radio" name="genre" id="sante" value="sante"><label for="sante" class="legende">Santé</label><br>
<input type="radio" name="genre" id="spiritualite" value="spiritualite"><label for="spiritualite" class="legende">Spiritualité</label><br>
<input type="radio" name="genre" id="cuisine" value="cuisine"><label for="cuisine" class="legende">Cuisine</label><br>
<input type="radio" name="genre" id="bricolage" value="bricolage"><label for="bricolage" class="bricolage">Bricolage</label><br>
<input type="radio" name="genre" id="nature" value="nature"><label for="nature" class="legende">Nature</label><br>
<input type="radio" name="genre" id="photo" value="photo"><label for="photo" class="legende">Photo</label><br>
<input type="radio" name="genre" id="bd" value="bd"><label for="bd" class="legende">Bande dessinée</label><br>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td class="legende">
<label for="autre_genre">Autre genre : </label><input type="text" name="autre_genre" id="autre_genre" size="30" class="champ">
</td>
</table>
</fieldset>
<fieldset>
<legend class="texte_fieldset">Fiche résumé</legend>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><i><font size="2">Faites ici un court résumé de votre livre :</font></i></td>
</tr>
<tr>
<td><textarea name="resume" id="resume" rows="20" cols="110" class="champ"></textarea></td>
</tr>
</table>
</fieldset>
</td>
</tr>
</tr>
<td>
<input type="reset" name="reset" value=" Tout recommencer " class="bouton_simple2">
<input type="submit" name="submit" value=" Valider " class="bouton_simple" onclick="test();">
</td>
<tr>
</table>
</form>
</div>
<script type="text/javascript" >
document.formulaire1.titre.focus();
</script>
<noscript>
<div>
<table bgcolor="red" border="0" cellpadding="0" cellspacing="0" width="100%" height="250">
<tr bgcolor="#ffeecc" >
<td> </td>
</tr>
<tr>
<td align="center">
<h1>ERREUR</h1>
JavaScript n'est pas activé sur votre navigateur.
<h2>Activez-le pour pouvoir faire fonctionner cette page correctement</h2><br>
(Menu "Édition"=>"Préférences"=>onglet "Contenu")
</td>
</tr>
</table>
</div>
</noscript>
</body>
</html>
Voilà. Merci pour ton aide.[/i][/i][/i][/i][/i][/i][/i]