Problème PHP
Kro
-
toine512 Messages postés 137 Date d'inscription Statut Membre Dernière intervention -
toine512 Messages postés 137 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'espère que tout le monde va bien et passe un bon week end ! Pour ma part j'essaie désespérément de trouver une (fichue) erreur, et comme ça fait quelques heures que je suis dessus et qu'à force (vous savez ce que c'est) je vois toujours le même code lol! Donc je me dis que peut être vous qui n'avez jamais vu mon code l'erreur va vous sauter aux yeux !
Alors le code que j'ai écris est censé faire une recherche par catégorie.
Dans ma base de données j'ai donc une table catégorie et une table objet (qui représente des images).
J'ai donc un formulaire avec un menu déroulant, dont voici le code (je suppose que l'erreur est là dedans) :
<form action="BionaticsAccueil.php" method="post" >
<table>
<tr>
<td><b><font color='black'>Rechercher par categorie :</font></b></td>
<tr><td>
<select name="motcledl">
<?php
$index = mysql_query ("SELECT * FROM categorie");
while($boucle = mysql_fetch_array($index))
{
?>
<option value="<?php echo $boucle['motcledl'] ;?>" >
<?php
echo $boucle['motcledl'] ;?></option>
<?php
}
?>
</select>
<input type='submit' value='Rechercher'>
</td></tr>
</table>
</form>
Puis voici mon code php qui lance la recherche avec une requête et qui affiche le résultat dans un tableau :
<?php
if (isset($_POST['motcledl']))
{
if (empty($_POST['motcledl'])) // Si c'est vide alors un message apparait a l'utilisateur
echo "Veuillez selectionner une categorie";
else
{
$sql = "SELECT * FROM objets WHERE numeroObjet='".$_POST['motcledl']."'";
$rs = mysql_query($sql); // execution de la requête
while ($row = mysql_fetch_array($rs)) // parcours des résultats
{
// debut d'une ligne
if ($cpt%$nbCols==0) // on divise le nb d'element par le nb de colonnes. Si le reste est de 0 ...
echo '<tr>'; // ..., alors on est sur le premier element d'une ligne
// On place chaque element dans une cellule du tableau
echo '<td>';
echo "<a href='BionaticsImageSelect.php?id=".$row['numeroObjet']."'<img src='".$row['lienimage']."'WIDTH=160 HEIGHT=140 border=0 >"; // affichage de tout ce qu'on veut dans la cellule
echo '</td>';
if ($cpt%$nbCols==($nbCols-1)) // on divise le nb d'element par le nb de colonnes. Si le reste est de ($nbCols-1) ...
echo '</tr>'; // ..., on est sur le dernier element d'une ligne
$cpt++;
echo $row;
}
}
}
?>
Voilà j'espère vraiment que vous pourrez m'aider, et je vous remercie d'avance !!
Caroline =)
Alors le code que j'ai écris est censé faire une recherche par catégorie.
Dans ma base de données j'ai donc une table catégorie et une table objet (qui représente des images).
J'ai donc un formulaire avec un menu déroulant, dont voici le code (je suppose que l'erreur est là dedans) :
<form action="BionaticsAccueil.php" method="post" >
<table>
<tr>
<td><b><font color='black'>Rechercher par categorie :</font></b></td>
<tr><td>
<select name="motcledl">
<?php
$index = mysql_query ("SELECT * FROM categorie");
while($boucle = mysql_fetch_array($index))
{
?>
<option value="<?php echo $boucle['motcledl'] ;?>" >
<?php
echo $boucle['motcledl'] ;?></option>
<?php
}
?>
</select>
<input type='submit' value='Rechercher'>
</td></tr>
</table>
</form>
Puis voici mon code php qui lance la recherche avec une requête et qui affiche le résultat dans un tableau :
<?php
if (isset($_POST['motcledl']))
{
if (empty($_POST['motcledl'])) // Si c'est vide alors un message apparait a l'utilisateur
echo "Veuillez selectionner une categorie";
else
{
$sql = "SELECT * FROM objets WHERE numeroObjet='".$_POST['motcledl']."'";
$rs = mysql_query($sql); // execution de la requête
while ($row = mysql_fetch_array($rs)) // parcours des résultats
{
// debut d'une ligne
if ($cpt%$nbCols==0) // on divise le nb d'element par le nb de colonnes. Si le reste est de 0 ...
echo '<tr>'; // ..., alors on est sur le premier element d'une ligne
// On place chaque element dans une cellule du tableau
echo '<td>';
echo "<a href='BionaticsImageSelect.php?id=".$row['numeroObjet']."'<img src='".$row['lienimage']."'WIDTH=160 HEIGHT=140 border=0 >"; // affichage de tout ce qu'on veut dans la cellule
echo '</td>';
if ($cpt%$nbCols==($nbCols-1)) // on divise le nb d'element par le nb de colonnes. Si le reste est de ($nbCols-1) ...
echo '</tr>'; // ..., on est sur le dernier element d'une ligne
$cpt++;
echo $row;
}
}
}
?>
Voilà j'espère vraiment que vous pourrez m'aider, et je vous remercie d'avance !!
Caroline =)
A voir également:
- Problème PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
9 réponses
Boujour,
$sql = "SELECT * FROM objets WHERE numeroObjet='".$_POST['motcledl']."'";
D'après ma propre expèrience les variables superglobales sont pas les bienvenues dans les requêtes SQL.
Essaye de la transformer en une variable "normale" avant :
$autrevariable = $_POST['motcledl']
$sql = ("SELECT * FROM objets WHERE numeroObjet='$autrevariable'"); // requête corrigée ;) sans les paranthèses et les "" ca fonctionne pas !
@+
$sql = "SELECT * FROM objets WHERE numeroObjet='".$_POST['motcledl']."'";
D'après ma propre expèrience les variables superglobales sont pas les bienvenues dans les requêtes SQL.
Essaye de la transformer en une variable "normale" avant :
$autrevariable = $_POST['motcledl']
$sql = ("SELECT * FROM objets WHERE numeroObjet='$autrevariable'"); // requête corrigée ;) sans les paranthèses et les "" ca fonctionne pas !
@+
Euh ptite question idiote comme ça ... tu te connectes a la base MySQL ? :D (pas de mysql_connect)
Pourrais tu faire un copié/collé de l'erreur renvoyée ?
Pourrais tu faire un copié/collé de l'erreur renvoyée ?
oui oui plus haut car je fais aussi une rechercher par mot clé et celle-ci marche très bien donc ce n'est pas un souci de base à priori =)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
slt,
peux-tu nous dire quelle type d'erreur tu rencontres exactement ? Ca ira + vite.
y a-t-il un code erreur renvoyé par le serveur ? ou est-ce un pb d'affichage des données qui n'est pas conforme à tes attentes ?
par ailleurs, je te conseille une écriture de ton code un peu plus facile lorsque tu écris en PHP/HTML, exemple :
je prends ton code :
<?php
$index = mysql_query ("SELECT * FROM categorie");
while($boucle = mysql_fetch_array($index))
{
?>
<option value="<?php echo $boucle['motcledl'] ;?>" >
<?php
echo $boucle['motcledl'] ;?></option>
<?php
}
?>
Pas toujours évident à lire car beaucoup de <? et ?> ce qui rend a lecture difficile et augmente le risque d'erreurs
je te conseille (c'est comme cela que je fais) de coder tout en PHP :
<?php
$index = mysql_query ("SELECT * FROM categorie");
while($boucle = mysql_fetch_array($index))
echo "<option value='".$boucle['motcledl']."'>".$boucle['motcledl']."</option>";
echo " </select>
<input type='submit' value='Rechercher'>
</td></tr>
</table>
</form> ";
J'attends ta réponse pour le type d'erreur que tu rencontres ...
peux-tu nous dire quelle type d'erreur tu rencontres exactement ? Ca ira + vite.
y a-t-il un code erreur renvoyé par le serveur ? ou est-ce un pb d'affichage des données qui n'est pas conforme à tes attentes ?
par ailleurs, je te conseille une écriture de ton code un peu plus facile lorsque tu écris en PHP/HTML, exemple :
je prends ton code :
<?php
$index = mysql_query ("SELECT * FROM categorie");
while($boucle = mysql_fetch_array($index))
{
?>
<option value="<?php echo $boucle['motcledl'] ;?>" >
<?php
echo $boucle['motcledl'] ;?></option>
<?php
}
?>
Pas toujours évident à lire car beaucoup de <? et ?> ce qui rend a lecture difficile et augmente le risque d'erreurs
je te conseille (c'est comme cela que je fais) de coder tout en PHP :
<?php
$index = mysql_query ("SELECT * FROM categorie");
while($boucle = mysql_fetch_array($index))
echo "<option value='".$boucle['motcledl']."'>".$boucle['motcledl']."</option>";
echo " </select>
<input type='submit' value='Rechercher'>
</td></tr>
</table>
</form> ";
J'attends ta réponse pour le type d'erreur que tu rencontres ...
J'ai oublié la moitié de ta question dsl, ça n'affiche aucune erreur, ça n'affiche rien en fait, ça doit être une toute petite erreur mais alors... elle m'ennuie!
<?php
if (isset($_POST['motcledl']))
{
if (empty($_POST['motcledl'])) // Si c'est vide alors un message apparait a l'utilisateur
echo "Veuillez selectionner une categorie";
else
{
$sql = "SELECT * FROM objets WHERE numeroObjet='".$_POST['motcledl']."'";
$rs = mysql_query($sql); // execution de la requête
while ($row = mysql_fetch_array($rs)) // parcours des résultats
{
// debut d'une ligne
if ($cpt%$nbCols==0) // on divise le nb d'element par le nb de colonnes. Si le reste est de 0 ...
echo '<tr>'; // ..., alors on est sur le premier element d'une ligne
// On place chaque element dans une cellule du tableau
Je suis loin d'être un professionel mais là ya un problème !!!
Les conditions ne sont ni ouvertes .. ni fermées ... euh on peut faire ça ?
if (isset($_POST['motcledl']))
{
if (empty($_POST['motcledl'])) // Si c'est vide alors un message apparait a l'utilisateur
echo "Veuillez selectionner une categorie";
else
{
$sql = "SELECT * FROM objets WHERE numeroObjet='".$_POST['motcledl']."'";
$rs = mysql_query($sql); // execution de la requête
while ($row = mysql_fetch_array($rs)) // parcours des résultats
{
// debut d'une ligne
if ($cpt%$nbCols==0) // on divise le nb d'element par le nb de colonnes. Si le reste est de 0 ...
echo '<tr>'; // ..., alors on est sur le premier element d'une ligne
// On place chaque element dans une cellule du tableau
Je suis loin d'être un professionel mais là ya un problème !!!
Les conditions ne sont ni ouvertes .. ni fermées ... euh on peut faire ça ?
Je ne suis pas non plus professionnelle à vrai dire. Mais j'ai montré mon code à mon prof de prog et il ne m'a rien dit là-dessus... ni mon maître de stage, en fait quand j'étais en stage à la fin mon site marchait niquel, et là sans avoir rien touché il bug, c'est ça que je ne comprends pas... je vais tenter de revoir mon prof lundi pour qu'il se penche bien sur la question. Merci pour votre aide c'est très gentil !