Page 1 sur 1

Problème de sélection dans un table

Posté : 24 mars 2014, 19:45
par Ezixel
Bonjour,
étant étudiant je dois faire un site fictif de vente en ligne. Mon problème est le suivant :
Il faut faire une page "Petit Budget" pour permettre à l'utilisateur de rentrer son budget , voici le code du formlaire :
"<div id="form">
<h2>Pour les petits budget...</h2>
<p>Tapez ci-dessous votre budget :</p>
<form method="POST" action="budget_art.php>
Budget :&nbsp<input type="text" name="primax">€<br/><br/>
<input type="submit" name="ok" value="Valider"><br/>
</form>"

Dans ce formulaire, je fais appelle à un fichier php et l'utilisateur rendre une donnée dans la variable primax,
le problème est dans le fichier php qui est le suivant :
"<?php
$db=new mysqli(localhost,id,mdp,basededonnée);
$req="SELECT *
FROM dutaf_article
WHERE prix_art<=$_POST.['primax'].
INNER JOIN dutaf_fournisseur
ON dutaf_article.num_four = dutaf_fournisseur.num_four";
$tous=$db->query($req);
echo "<table border='1'>";
while ($unarticle=$tous->fetch_object()){
echo"<tr>";
echo"<td>";
echo $unarticle->num_art.'<br/>';
echo "</td>";

echo"<td>";
echo $unarticle->desig_art.'<br/>';
echo "</td>";

echo"<td>";
echo $unarticle->desc_art.'<br/>';
echo "</td>";

echo"<td>";
echo $unarticle->prix_art.'<br/>';
echo "</td>";

echo"<td>";
echo $unarticle->qte_art.'<br/>';
echo "</td>";

echo"<td>";
echo $unarticle->nom_four.'<br/>';
echo "</td>";

echo "</tr>";
}
echo "</table>";"

Lorsque je tape un nombre dans le formulaire, le fichier php m'indique une erreur (Call to a member function fetch_object() on a non-object ) , si j'ai bien compris la raison de cette erreur , cela veut dire que dans ma requête il y a une variable non-définie, j'ai chercher sur le web une solution mais sans résultat, je sais juste que le problème vient de la condition WHERE et de la méthode POST, j'aurai besoin d'être éclaircis sur ce point. Merci d'avance pour vos réponses.

Re: Problème de sélection dans un table

Posté : 24 mars 2014, 20:32
par sirakawa
Bsr,

$db=new mysqli(localhost,id,mdp,basededonnée);
$req="SELECT * FROM dutaf_article WHERE prix_art<=$_POST.['primax']. INNER JOIN dutaf_fournisseur
ON dutaf_article.num_four = dutaf_fournisseur.num_four";
//ajout
print "<br>$req<br>"; //et teste avec phpmyadmin ou equiv
$tous=$db->query($req);
//si la requete fonctionne correctement
$nb_result = $tous->num_rows; // et exploite $nb_result
echo "<table border='1'>";
while ($unarticle=$tous->fetch_object()){

Re: Problème de sélection dans un table

Posté : 24 mars 2014, 20:41
par niuxe
Salut,

Désolé si je vais être dur mais c'est pour ton bien. C'est quoi ce code html pourrie ?

Call to a member function fetch_object() on a non-object ;)

Après, as tu essayé ta requête en dur dans la base ?
Est ce que tu contrôles les données venant du formulaire ?

De toute évidence, tu brûles des étapes.

Re: Problème de sélection dans un table

Posté : 01 avr. 2014, 08:10
par Ezixel
Bonjour, désolé pour cette réponse tardive,
le code html est donné par le professeur et je ne vois pas en quoi il est pourrie,
pour l'erreur call to a member function fetch_objetct() on a non-object, j'ai eut juste supprimer les espaces dans le code et renommer mes variables.
Merci en tout cas pour vos réponses =)

Re: Problème de sélection dans un table

Posté : 01 avr. 2014, 08:47
par sirakawa
Voici quelques raisons de dire que le code est merdique:
On espère qu'il y a bien
<html>
<head>
</head>
<body>

"<div id="form"><!-- à quoi sert l'id ? de plus donner comme id un marqueur de html !!!-->
 <h2>Pour les petits budget...</h2>
 <p>Tapez ci-dessous votre budget :</p>
 <form method="POST" action="budget_art.php>
 Budget :&nbsp<input type="text" name="primax">€<br/><br/> <!-- input est mal codé : : <input type="text" name="primax"  /> -->
 <input type="submit" name="ok" value="Valider"><br/><!-- à quoi sert ce <br/> ? qui est mal codé : <br /> --> <!-- input est mal codé : : <input type="submit" name="ok"  value = "Valider" /> -->
 </form>"
<!--Où est le </div> ?-->
<!-- où est </body> </html> ?-->