Erreur :1054Unknown column in 'where clause'
Résolu
tintin88
-
tintin88 -
tintin88 -
Bonjour,
Débutant en php/mysql, je souhaite effectuer des tris successifs sur des plantes (Famille puis Genre) à partir d'une table Mysql de la façon suivante :
1°) Sélection de la Famille dans une liste déroulante (présente dans adet1.php) et envoi vers adet2.php
2°) Récupérération dans adet2.php et affichage d'une autre liste déroulante ne montrant que les plantes de cette famille, et en permettant cette fois-ci, la sélection du Genre. Même si je n'ai pas finalisé la fin de ce second fichier, je me heurte lors des tests au problème suivant:
Même si la sélection dans adet1.php semble transmettre la bonne famille sélectionnée, le message d'erreur suivant apparaît dans adet2.php Erreur :1054Unknown column 'ARACÉES' in 'where clause', et ce, alors que j'ai sélectionné ARACÉES dans adet1.php
******La table bota_foret comporte les champs suivants:******
id
NomCommun
NomLatin
Famille
Adresse
******adet1.php est ci-dessous********
<?php
// Inclusion du fichier de connexion à la base de données
include "mysql_conf.inc.php";
// Connexion à MySql
$link=mysql_connect($host,$login,$password) or die ('Erreur :'.mysql_error() );
// Sélection de la base
$base = mysql_select_db($base);
if (!$base)
{echo 'impossible d\'ouvrir la base.';
}
else
{echo '';
}
?>
<HTML>
<HEAD>
<TITLE>Botanique forestière : liste de plantes comprises dans la table bota_foret</TITLE>
</HEAD>
<body>
<?php
// Affichage des enregistrements
echo ("<form action='adet2.php' method='post'>");
echo ("<select name = 'ChoixF'>");
$SQL = "SELECT DISTINCT Famille FROM bota_foret ORDER by Famille ASC";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["Famille"]."</option>\n";
}
echo ("</select>");
echo "<input type = 'submit' value = 'Envoyer'>";
echo ("</form>");
mysql_close();
?>
</body>
</html>
*********** adet2.php est ci-après **********
<?php
// Inclusion du fichier de connexion à la base de données
include "mysql_conf.inc.php";
// Connexion à MySql
$link=mysql_connect($host,$login,$password) or die ('Erreur :'.mysql_error() );
// Sélection de la base
$base = mysql_select_db($base);
if (!$base)
{echo 'impossible d\'ouvrir la base.';
}
else
{echo '';
}
if (isset($_POST['Famille'])) {
// On aurait utilisé $_GET['Famille'] si on avait utilisé method="GET"
// on affiche nos résultats
echo 'La famille choisie est '.$_POST['Famille'];
}
else
{echo 'La famille choisie est '.$_POST['Famille'];
}
// Affichage des enregistrements
$select = "SELECT * FROM bota_foret WHERE Famille=".$_POST['ChoixF'];
$result =mysql_query($select,$link) or die ('Erreur :'.mysql_errno().mysql_error());
$rows = mysql_num_rows($result);
if ($rows) {
echo '<table>'."\n";
echo '<tr>';
// echo '<td><p align="center">Id : </td>';
echo '<td><p align="center">Nom commun : </td>';
echo '<td><p align="center">Nom latin : </td>';
echo '<td><p align="center">Genre : </td>';
echo '</tr>'."\n";
// Résultats
while ($rows=mysql_fetch_array($result)) {
echo '<tr>';
// echo '<td><p align="center">'.$rows['id'].'</td>';
echo '<td><p align="center">'.$rows['NomCommun'].'</td>';
echo '<td><p align="center">'.$rows['NomLatin'].'</td>';
echo '<td><p align="center">'.$rows['Genre'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
mysql_close();
?>
***********************************
Quelqu'un pourrait-il me venir en aide ?
Merci d'avance à toutes les bonnes volontés.
Débutant en php/mysql, je souhaite effectuer des tris successifs sur des plantes (Famille puis Genre) à partir d'une table Mysql de la façon suivante :
1°) Sélection de la Famille dans une liste déroulante (présente dans adet1.php) et envoi vers adet2.php
2°) Récupérération dans adet2.php et affichage d'une autre liste déroulante ne montrant que les plantes de cette famille, et en permettant cette fois-ci, la sélection du Genre. Même si je n'ai pas finalisé la fin de ce second fichier, je me heurte lors des tests au problème suivant:
Même si la sélection dans adet1.php semble transmettre la bonne famille sélectionnée, le message d'erreur suivant apparaît dans adet2.php Erreur :1054Unknown column 'ARACÉES' in 'where clause', et ce, alors que j'ai sélectionné ARACÉES dans adet1.php
******La table bota_foret comporte les champs suivants:******
id
NomCommun
NomLatin
Famille
Adresse
******adet1.php est ci-dessous********
<?php
// Inclusion du fichier de connexion à la base de données
include "mysql_conf.inc.php";
// Connexion à MySql
$link=mysql_connect($host,$login,$password) or die ('Erreur :'.mysql_error() );
// Sélection de la base
$base = mysql_select_db($base);
if (!$base)
{echo 'impossible d\'ouvrir la base.';
}
else
{echo '';
}
?>
<HTML>
<HEAD>
<TITLE>Botanique forestière : liste de plantes comprises dans la table bota_foret</TITLE>
</HEAD>
<body>
<?php
// Affichage des enregistrements
echo ("<form action='adet2.php' method='post'>");
echo ("<select name = 'ChoixF'>");
$SQL = "SELECT DISTINCT Famille FROM bota_foret ORDER by Famille ASC";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["Famille"]."</option>\n";
}
echo ("</select>");
echo "<input type = 'submit' value = 'Envoyer'>";
echo ("</form>");
mysql_close();
?>
</body>
</html>
*********** adet2.php est ci-après **********
<?php
// Inclusion du fichier de connexion à la base de données
include "mysql_conf.inc.php";
// Connexion à MySql
$link=mysql_connect($host,$login,$password) or die ('Erreur :'.mysql_error() );
// Sélection de la base
$base = mysql_select_db($base);
if (!$base)
{echo 'impossible d\'ouvrir la base.';
}
else
{echo '';
}
if (isset($_POST['Famille'])) {
// On aurait utilisé $_GET['Famille'] si on avait utilisé method="GET"
// on affiche nos résultats
echo 'La famille choisie est '.$_POST['Famille'];
}
else
{echo 'La famille choisie est '.$_POST['Famille'];
}
// Affichage des enregistrements
$select = "SELECT * FROM bota_foret WHERE Famille=".$_POST['ChoixF'];
$result =mysql_query($select,$link) or die ('Erreur :'.mysql_errno().mysql_error());
$rows = mysql_num_rows($result);
if ($rows) {
echo '<table>'."\n";
echo '<tr>';
// echo '<td><p align="center">Id : </td>';
echo '<td><p align="center">Nom commun : </td>';
echo '<td><p align="center">Nom latin : </td>';
echo '<td><p align="center">Genre : </td>';
echo '</tr>'."\n";
// Résultats
while ($rows=mysql_fetch_array($result)) {
echo '<tr>';
// echo '<td><p align="center">'.$rows['id'].'</td>';
echo '<td><p align="center">'.$rows['NomCommun'].'</td>';
echo '<td><p align="center">'.$rows['NomLatin'].'</td>';
echo '<td><p align="center">'.$rows['Genre'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
mysql_close();
?>
***********************************
Quelqu'un pourrait-il me venir en aide ?
Merci d'avance à toutes les bonnes volontés.
A voir également:
- Erreur :1054Unknown column in 'where clause'
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Comment recuperer whatsapp supprimé par erreur - Guide
3 réponses
Salut,
dans une liste déroulante il faut toujours une value dans <option sinon sur certains navigateurs ça ne marche pas
ex dans adet1.php:
echo "<option>".$val["Famille"]."</option>\n";
}
il faut:
rectifies partout
ensuite dans adet2.php:
mysql_num_rows() te retourne le nombre d'enr trouvés donc sera tjs vrai il faut tester si >0
dans une liste déroulante il faut toujours une value dans <option sinon sur certains navigateurs ça ne marche pas
ex dans adet1.php:
echo "<option>".$val["Famille"]."</option>\n";
}
il faut:
echo "<option value=\"".$val["Famille"]."\">".$val["Famille"]."</option>\n"; }
rectifies partout
ensuite dans adet2.php:
// Affichage des enregistrements $select = "SELECT * FROM bota_foret WHERE Famille='".$_POST['ChoixF']."'"; $result =mysql_query($select,$link) or die ('Erreur :'.mysql_errno().mysql_error()); $rows = mysql_num_rows($result); if ($rows > 0) { echo '<table>'."\n"; echo '<tr>'; ........
mysql_num_rows() te retourne le nombre d'enr trouvés donc sera tjs vrai il faut tester si >0