Problème PHP

Fermé
Kro - 12 sept. 2009 à 18:14
toine512 Messages postés 137 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 3 décembre 2011 - 12 sept. 2009 à 18:42
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 =)
A voir également:

9 réponses

toine512 Messages postés 137 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 3 décembre 2011 11
12 sept. 2009 à 18:20
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 !

@+
0
Ca ne marche toujours pas :s merci d'avoir essayé toine !
0
toine512 Messages postés 137 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 3 décembre 2011 11
12 sept. 2009 à 18:27
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 ?
0
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 =)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22
12 sept. 2009 à 18:30
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 ...
0
toine512 Messages postés 137 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 3 décembre 2011 11
12 sept. 2009 à 18:32
Quand tu as beaucoup de caractères spéciaux genre ' c'est plus simple de fermer la balise PHP et de continuer en HTML.
0
fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009 22 > toine512 Messages postés 137 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 3 décembre 2011
12 sept. 2009 à 18:34
je sais bien.
Mais c'est une question d'habitude. Je préfère utiliser ' et " et \" et \' que <? et ?> à tout bout de champ
mais ce n'était pas l'objet de la question, il est vrai ...
0
toine512 Messages postés 137 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 3 décembre 2011 11 > fred_bgt Messages postés 153 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 12 septembre 2009
12 sept. 2009 à 18:34
C'est ton choix ;)
0
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!
0
toine512 Messages postés 137 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 3 décembre 2011 11
12 sept. 2009 à 18:36
<?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 ?
0
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 !
0
toine512 Messages postés 137 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 3 décembre 2011 11
12 sept. 2009 à 18:42
Oulah c'est tordu ça ! Ca provient peut-être plus de la base MySQL que de ton code si ça fonctionnais ...

Enfin c'est pas normal !
0