cs_youma85
Messages postés82Date d'inscriptiondimanche 18 février 2007StatutMembreDernière intervention28 avril 2011
-
25 juil. 2008 à 16:48
cs_youma85
Messages postés82Date d'inscriptiondimanche 18 février 2007StatutMembreDernière intervention28 avril 2011
-
26 juil. 2008 à 22:35
salut tous le monde j'ai un probléme avec la fonction mysqli, la connexion marche avec mysqli_connect(.....) mais le probléme se pose mysqli_free_result et mysqli_num_rows voila les erreurs:
Warning: mysqli_affected_rows() expects parameter 1 to be mysqli, boolean given in C:\WebPHP\site1\results.php on line 35
Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in C:\WebPHP\site1\results.php on line 48
<center> Book-O-Rama search result
</center>
<?php
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];
$searchterm=trim($searchterm);
if(!$searchterm||!$searchtype)
{
echo 'You have not enetered details, Please go back and try again.';
exit;
}
if(!get_magic_quotes_gpc())
{
$searchterm=addslashes($searchterm);
$searchtype=addslashes($searchtype);
}
@ $db=mysqli_connect('localhost','youma85','dragon','bookorama');
if(mysqli_connect_errno())
{
echo 'error: could not connect to database. Please try again later';
exit;
}
$result=mysqli_query($db,"select * from books where ".$searchtype."like %".$searchterm."%");
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 26 juil. 2008 à 21:53
Déjà, au lieu de t'embetter à ajouter une variable inutile, remplace
$num_result=$result->num_rows;
echo ' number of books found:'.$num_result.'
';
par
echo ' number of books found:'.$result->num_rows.'
';
Ensuite, essaye ca dans ton query :
'select * from books where '.$searchtype.' like "%'.$searchterm.'%"'
Es-tu sur que $searchtype à bien un espace à la fin, car dans ta requete, ca fait $searchtype.'like' ce qui aurait donnée valeur_de_search_typelike, ca va pas ! :p
Du coup c'est peut-être pour ca que tu as ces erreurs ensuite, la requete est invalide, donc $result n'est pas un objet, donc $result->num_rows te retourne cette erreur.
<center> Book-O-Rama search result
</center>
<?php
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];
$searchterm=trim($searchterm);
if(!$searchterm||!$searchtype)
{
echo 'You have not enetered details, Please go back and try again.';
exit;
}
if(!get_magic_quotes_gpc())
{
$searchterm=addslashes($searchterm);
$searchtype=addslashes($searchtype);
}
@ $db=new mysqli('localhost','youma85','','bookorama');
if(mysqli_connect_errno())
{
echo 'error: could not connect to database. Please try again later';
exit;
}
$result=$db->query('select * from books where '.$searchtype.'like \'%'.$searchterm.'%\'');
j'ai travaillé en poo les erreurs précédents ne se pose plus mais il 'y a d'autre.:
Notice: Trying to get property of non-object in C:\WebPHP\site1\a.php on line 35 number of books found:
Fatal error: Call to a member function free() on a non-object in C:\WebPHP\site1\a.php on line 48
MAIS SI DANS LA REQUETE J'ENLEVE LA PARTIE where '.$searchtype.'like \'%'.$searchterm.'%\' IL N'Y AURA PLUS D'ERREUR MAIS IL AFFICHE TOUS LES ENREGISTREMENTS DE LA TABLE MERCI