fattal error

دوستان سلام یه پیام خطایی هست که من عاصی کرم می شه بگین مشکل کدم چیه
ابتدا با این کد عنوان مورو جستجو رو به صفحه دیگم می فرستم که با متن خطا رو ببرو می شوم
متنhtml
کد:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Book-O-Rama Catalog Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Book-O-Rama Catalog Search</h1>
<form action="Result.php" method="post">
Choose Search Type:
<br>
<select name="searchtype">
<option value="author">Author</option>
<option value="title">Title</option>
<option value="isbn">ISBN</option>
</select>
<br>
Enter Search Term:<br>
<input name="searchterm" type="text" size="25"><br>
<input name="" type="submit" value="Search">
</form>
</body>
</html>
متن php
کد:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Book-O-Rama Catalog Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Book-O-Rama Catalog Search</h1>
<?php
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];
$searchterm=trim($searchterm);
if(!$searchtype || !$searchterm)
 {
  echo'You have not enterd search ditails. Please go back and try again.';
  exit();
 }
if(!get_magic_quotes_gpc())
 {
  $searchtype=addslashes($searchtype);
  $searchterm=addslashes($searchterm);
 } 
@ $db=new mysqli('localhost','root','','bookorama');
if(mysqli_connect_errno())
{
 echo'Error:Coud not Connect to database. please try again later.';
 exit(); 
}
$query="select * from books where ".$searchtype."like'%".$searchterm."%'";
$result=$db->query($query);
$num_results=$result->num_rows;
echo('<p>Number of Books found: '.$num_results.'</p>');
for($i=0 ; $i<$num_results ; $i++)
{
    $row=$result->FETCH_ASSOC();
    echo '<p><strong>'.($i+1).'.Title: ';
    echo htmlspecialchars(stripslashes($row['title']));
    echo '</strong><br/>Author: ';
    echo stripslashes($row['author']);
    echo '<br/>ISBN: ';
    echo stripslashes($row['isbn']);
    echo '<br/>Price: ';
    echo stripslashes($row['price']);
    echo '</p>';
}
$result->free();
//mysqli_free_result($result);
$db->close();
//mysqli_close($db);
?>
</body>
</html>
متن خطا:Book-O-Rama Catalog SearchFatal error: Call to a member function free() on a non-object in E:\wamp\www\Order\Result.php on line 46
لازم به توضیح که شماره خطا تو خط 46 صفحه php هست
 
آخرین ویرایش:
سلام این خط و حذف کردم ولی جواب select نشون نداد
در ضممن بجای خط 46 از خط زیر استفاده کردم
mysqli_free_result($result);
که خطا بصورت زیرهستش
Book-O-Rama Catalog SearcWarning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in E:\wamp\www\Order\Result.php on line 47
 

P.H.P

Member
من چک کردم مشکلی نداشت

query رو کامل بگیر، احتمالا مشکل از ورودی هایی که انجام دادی هست

کد:
select * from books

free result هم مشکلی نداره، اگه خطا داد کلا حذفش کن

موفق
 
سلام و مرسی من دیتا بیس و میزام ببین چک کن ببین مشکلی نداره
در ضمن ممکنه از وب سرور مشکل داشته باشه
تشکر.............
 

P.H.P

Member
شما از این آموزش استفاده میکنید؟

کد:
http://www.informit.com/articles/article.aspx?p=1248325

مشکلی نداره، خروجی درست دریافت میشه

به جای WAMP از xampp استفاده کن

موفق
 
نه از این آموزش استفاده می کنم
"PHP.&.MySQL.Web.Development.pdf"
میشه لینک axampp رو بزارین
 

Masoud1365

مدیر انجمن
Book-O-Rama Catalog SearchFatal error: Call to a member function free() on a non-object in E:\wamp\www\Order\Result.php on line 46
این مربوط به دیتا بیست هست . کوئری رو توی خط 46 چک کن احتمالا جدولی به این نام نداری یا املاشو اشتباه نوشتی .
 

P.H.P

Member
نه از این آموزش استفاده می کنم
"PHP.&.MySQL.Web.Development.pdf"
میشه لینک axampp رو بزارین

دریافت آخرین نسخه برای لینوکس
کد:
http://www.apachefriends.org/en/xampp-linux.html

دریافت آخرین نسخه برای ویندوز
کد:
http://www.apachefriends.org/en/xampp-windows.html
 

P.H.P

Member
Book-O-Rama Catalog SearchFatal error: Call to a member function free() on a non-object in E:\wamp\www\Order\Result.php on line 46
این مربوط به دیتا بیست هست . کوئری رو توی خط 46 چک کن احتمالا جدولی به این نام نداری یا املاشو اشتباه نوشتی .

این خطا به دیتابیس و query مربوط نمیشه

تابع mysqli_free_result برای آزاد سازی حافظه مصرف شده از query گرفته شده استفاده میشه

اگر queryی گرفته شده حافظه زیادی رو اشغال کرده باشه با این کار در واقع query رو رها میکنه، فشار رو پایین میاره

بعضی وقتا موقع آزاد سازی خطا به وجود میاد، در نسخه های جدید و کانفیگ مناسب این مشکل بوجود نماید

در این مواقع استفاده نشده بهتره و مشکلی پیش نمیاد

موفق
 
ممکنه از عدم پیکربندی extension=php_mysqli.php وextension=php_mysql.php در فایل php.ini باشه یه نه من واقعن گیج شدم تنها فایل php رو اجرا می کنکم درست کار می کنه ولی وقتی پارامتری می فرستم خطا می ده
 

P.H.P

Member
اینو تست کن

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Book-O-Rama Catalog Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Book-O-Rama Catalog Search</h1>
<?php
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];
$searchterm=trim($searchterm);
if(!$searchtype || !$searchterm)
 {
  echo'You have not enterd search ditails. Please go back and try again.';
  exit();
 }

 $searchtype=mysql_real_escape_string($searchtype);
$searchterm=mysql_real_escape_string($searchterm);

$db = mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("bookorama", $db) or die(mysql_error());

$query="SELECT * FROM books WHERE ".$searchtype." LIKE '%".$searchterm."%'";
$result = mysql_query($query);
$num_results=mysql_numrows($result);
echo('<p>Number of Books found: '.$num_results.'</p>');
$i = 0;
while($row=mysql_fetch_array($result))
{
    echo '<p><strong>'.($i+1).'.Title: ';
    echo htmlspecialchars(stripslashes($row['title']));
    echo '</strong><br/>Author: ';
    echo stripslashes($row['author']);
    echo '<br/>ISBN: ';
    echo stripslashes($row['isbn']);
    echo '<br/>Price: ';
    echo stripslashes($row['price']);
    echo '</p>';
    $i++;
}

?>
</body>
</html>

متغیر های ارسالی:
searchtype اسم فیلدت

searchterm جستجویی که انجام دادی

پس باید اینارو درست طبق داده های بانک اطلاعاتی وارد کنی

موفق
 

جدیدترین ارسال ها

بالا