majid-chamran

mysql_fetch_assoc()

10 پست در این موضوع

سلام

من در آموزش های آقای طالبی به یک مشکل برخوردم

نکته اینجاست تمامی کدها رو با کدهای موجود در کلیپ آموزشی چند بار چک کردم و تفاوتی نداره اما با پیغام خطای زیر روبرو میشم. ممنون میشم دوستان راهنمایی کنند.

 Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\project\categorietsmanagement.php on line 48

 

لینک زیر رو هم ببینید شاید کمکی کنه بهتون .

http://www.php.net/function.mysql-fetch-assoc

با تشکر از دوستان

Share this post


Link to post
Share on other sites

درود

دوستان بنده مشکلم هنوز پا برجاست

بنده از آموزش های آقای طالبی استفاده میکنم و در کلیپ شماره 25 موندم با این مشکل

ممنون میشم راهنمایی فرمایید

Share this post


Link to post
Share on other sites

شما چک کنید ببینید نتیجه ای که از دیتابیستون میاد چی هست اگر مقدار داشت بیاد از تابع mysql_fetch_assoc استفاده کنید در غیر اینصورت یا نتیجه خالی هست یا کوئری که نوشتید مشکلی داره

Share this post


Link to post
Share on other sites

سلام صابر جان

ممنون از راهنمایی تون. نتیجه باید دو تا سطر باشه از اطلاعات { عنوان ، آیدی ، تاریخ و....}

کد های زیر رو ببین

فایل functions.php

 

<?php
     require_once('config.php');
     @mysql_connect('LOCALHOST','DBUSER','') or die('DB Connection Error!');
     @mysql_select_db('DBNAME');
     mysql_query('SET NAMES UTF8');


function adminGetCategories()
    {
        $result = mysql_query('SELECT * FROM categories');
        return $result;
    }
?>

فایل categoriesmanagement

 

<?php
      include_once('header.php');
      include_once('logo.php');
      include_once('topmenu.php');
?>




            <div class="cleared reset-box"></div>
            <div class="art-content-layout">
                <div class="art-content-layout-row">
                    <div class="art-layout-cell art-content">
<div class="art-post">
    <div class="art-post-tl"></div>
    <div class="art-post-tr"></div>
    <div class="art-post-bl"></div>
    <div class="art-post-br"></div>
    <div class="art-post-tc"></div>
    <div class="art-post-bc"></div>
    <div class="art-post-cl"></div>
    <div class="art-post-cr"></div>
    <div class="art-post-cc"></div>
    <div class="art-post-body">
<div class="art-post-inner art-article">
                                <div class="art-postmetadataheader">
                                        <h2 class="art-postheader">
                          مدیریت مجموعه ها
                                        </h2>
                    <div class="cleared"></div>
                                                        </div>
                                <div class="art-postcontent">
<table border="2px;" width="100%">
    <tr>
        <td>عنوان</td>
        <td>شناسه</td>
        <td>وضعیت</td>
        <td>ویرایش</td>
        <td>حذف</td>
    </tr>



<?php

$result = adminGetCategories();
//$result = mysql_query('SELECT * FROM categories');
while ($row = mysql_fetch_assoc($result))
{
 ?>

     <tr>
        <td><?php echo $row['id']?></td>
        <td><?php echo $row['title']?></td>
        <td><?php echo $row['active']?></td>
        <td><?php echo $row['date']?></td>
        <td>ویرایش</td>
        <td>حذف</td>
    </tr>
       </table>
<?php

}



 ?>



                </div>
                <div class="cleared"></div>
                </div>

        <div class="cleared"></div>
    </div>
</div>




<?php
      include_once('sidebar.php');
      include_once('usersmodule.php');
      include_once('peymentmodule.php');
      include_once('footer.php');
?>

یه نکته این که حتی اگر من تابع رو هم کامنت کنم و بخوام به صورت مستقیم خود کوئری رو بهش بدم بازم همین خطا رو دارم ! کد زیر رو ببین لطفا

 


<?php

//$result = adminGetCategories();
$result = mysql_query('SELECT * FROM categories');
while ($row = mysql_fetch_assoc($result))
{

     <tr>
        <td><?php echo $row['id']?></td>
        <td><?php echo $row['title']?></td>
        <td><?php echo $row['active']?></td>
        <td><?php echo $row['date']?></td>
        <td>ویرایش</td>
        <td>حذف</td>
    </tr>
    
}

 ?>

 

Share this post


Link to post
Share on other sites

حتی با روش هایی زیر هم جواب نمیده !!!!

 

<?php
    $result = adminGetCategories();
    while($row = mysql_fetch_assoc($result))
    {
        echo $row['id'];
    }
?> 

یا اینکه

 

<?php
     $result = mysql_query('SELECT * FROM categories');
     while($row = mysql_fetch_assoc($result))
     {
       echo $row['title'].'<hr/>';

     }
 ?>

 

Share this post


Link to post
Share on other sites
در 2 دقیقه قبل، majid-chamran گفته است :

حتی با روش هایی زیر هم جواب نمیده !!!!

 


<?php
    $result = adminGetCategories();
    while($row = mysql_fetch_assoc($result))
    {
        echo $row['id'];
    }
?> 

یا اینکه

 


<?php
     $result = mysql_query('SELECT * FROM categories');
     while($row = mysql_fetch_assoc($result))
     {
       echo $row['title'].'<hr/>';

     }
 ?>

 

عذر خواهی میکنم در صورتی که از تابع استفاده نکنم مشکلی نیست . و به درستی خروجی نشون میده

اما با استفاده از تابع خیر

 

کاش قابلیت ویرایش پست در انجمن فعال بود. به هر حال عذر میخوام

Share this post


Link to post
Share on other sites

شما بهتره برای کوئری های دیتابیس از روشهای mysqli یا pdo استفاده کنید روش mysql قدیمی شده و ممکنه یه سری از توابع رو نسخه php شما پشتیبانی نکنه و نتیجه نگیرید

1 کاربر پسند دیده است

Share this post


Link to post
Share on other sites

درود

ممنونم که پیگیری و راهنمایی می فرمایید. من پروژه رو به حالت زیر بهینه کردم . اما متاسفانه هنوز مشکلم پا برجاست .

من با استفاده از فایل های متعدد و ارتباط بین انها میخوام در صفحه مدیریت مجموعه هام یه کوئری ساده رو چاپ کنم .

محتویات فایل های من به شرح ذیل است :

index.php

<?php
    include_once('header.php');
    include_once('topmenu.php');
    include_once('logo.php');
    include_once('body.php');
    include_once('vmenu.php');
    include_once('peyment.php');
    include_once('profile-module.php');
    include_once('footer.php');
?>

header.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[]>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en">
<head>
    <!--
    Created by Artisteer v3.0.0.45570
    Base template (without user's data) checked by http://validator.w3.org : "This page is valid XHTML 1.0 Transitional"
    -->
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>New Project</title>
    <meta name="description" content="Description" />
    <meta name="keywords" content="Keywords" />


    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    <!--[if IE 6]><link rel="stylesheet" href="style.ie6.css" type="text/css" media="screen" /><![endif]-->
    <!--[if IE 7]><link rel="stylesheet" href="style.ie7.css" type="text/css" media="screen" /><![endif]-->

    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="script.js"></script>
</head>
<body>
<div id="art-page-background-middle-texture">
<div id="art-page-background-glare">
    <div id="art-page-background-glare-image"> </div>
</div>
<div id="art-main">
    <div class="cleared reset-box"></div>

<?php

    require_once('functions.php');
    require_once('config.php');

 ?>

functions.php

<?php

    @mysqli_connect('LOCALHOST','DBUSER','') or die ('Error connect DB!!!');
    mysqli_select_db('DBNAME');
    mysqli_query('SET NAMES UTF8');



    function adminGetCategories()
    {
      $result = mysqli_query('SELECT * FROM categories');
      return $result;
    }
?>

config.php

<?php
    define('LOCALHOST','localhost');
    define('DBUSER','root');
    define('DBPASSWORD','');
    define('DBNAME','projectdb');
?>

categoriesmanagment.php

<?php
    include_once('header.php');
    include_once('topmenu.php');
    include_once('logo.php');
    include_once('functions.php');
    include_once('config.php');
?>
<div class="art-content-layout">
<div class="art-content-layout-row">
<div class="art-layout-cell art-content">
                    <div class="art-post">
                        <div class="art-post-tl"></div>
                        <div class="art-post-tr"></div>
                        <div class="art-post-bl"></div>
                        <div class="art-post-br"></div>
                        <div class="art-post-tc"></div>
                        <div class="art-post-bc"></div>
                        <div class="art-post-cl"></div>
                        <div class="art-post-cr"></div>
                        <div class="art-post-cc"></div>
                        <div class="art-post-body">
                    <div class="art-post-inner art-article">
<div class="art-postmetadataheader">
   <h2 class="art-postheader">
                                      مدیریت مجموعه ها
   </h2>
<div class="cleared"></div>
</div>
<div class="art-postcontent">


<?php

    $result = adminGetCategories();
    while ($row = mysqli_fetch_assoc($result))
    {
        echo $row['title'].'<hr/>';
    }

?>

</div>
<div class="cleared"></div>


<?php
    include_once('vmenu.php');
    include_once('peyment.php');
    include_once('profile-module.php');
    include_once('footer.php');
?>

فایل functions و config رو در فایل header الزامی کردم تا در همه جای پروژه بهشون دسترسی داشته باشم . دستور require_once

ممنون میشم راهنمایی کنید

Share this post


Link to post
Share on other sites

کوئری رو که نوشتید کانکشن رو توی mysqli پاس ندادید و دیتابیس رو هم  توی پارامترها ارسال کنید مثل مثال زیر:

$con =  mysqli_connect($servername, $username, $password,$db);
$result = mysqli_query($con,"SELECT * FROM `database_table` ");

 

1 کاربر پسند دیده است

Share this post


Link to post
Share on other sites

درود

من پروژه رو یکی دو قدم جلوتر بردم .

اما نمی تونم توابعی که در فایل functions.php نوشتم رو صدا بزنم :(

محتویات فایل ها رو الان ببینید و بگید اشتباهم کجاست . ممنونم

functions

<?php

    function adminGetCategories()
    {
        $result = mysqli_query($connection,'SELECT * FROM categories');
        return $result;
    }


    function submitcategories($title)
    {
       $date = time();
       $sql = mysqli_query($connection,"INSERT INTO categories VALUES(NULL,'$title',1,$date)");
       return $sql;
    }
?>

 

categoriesmanagement

<?php
    include_once('header.php');
    include_once('topmenu.php');
    include_once('logo.php');

$edit_img       = "<img src='images/edit.png'   />";
$delete_img     = "<img src='images/delete.png' />";

  if(isset($_POST['title']) AND !empty($_POST['title']))
    {
    // $title = $_POST['title'];
    //$sql = submitcategories($title);
      $title = $_POST['title'];
      $time = time();
      $title = mysqli_query($connection,"INSERT INTO categories VALUES(NULL,'$title',1,'$time')");
    }
?>

<div class="art-content-layout">
<div class="art-content-layout-row">
<div class="art-layout-cell art-content">
                    <div class="art-post">
                        <div class="art-post-tl"></div>
                        <div class="art-post-tr"></div>
                        <div class="art-post-bl"></div>
                        <div class="art-post-br"></div>
                        <div class="art-post-tc"></div>
                        <div class="art-post-bc"></div>
                        <div class="art-post-cl"></div>
                        <div class="art-post-cr"></div>
                        <div class="art-post-cc"></div>
                        <div class="art-post-body">
                    <div class="art-post-inner art-article">
<div class="art-postmetadataheader">
   <h2 class="art-postheader">
                                      مدیریت مجموعه ها
   </h2>
<div class="cleared"></div>
</div>
<div class="art-postcontent">
<br/>
<table border="2" width="100%">

    <tr>
        <td>شماره</td>
        <td>عنوان</td>
        <td>تاریخ</td>
        <td>وضعیت</td>
        <td> ویرایش</td>
        <td>حذف</td>
    </tr>

<?php

//     $result = adminGetCategories();
      $result = mysqli_query($connection,'SELECT * FROM categories');
       while ($row = mysqli_fetch_assoc($result))
        {

//        تبدیل تاریخ میلادی
          $date = date('Y-m-d',$row['date']);

?>

    <tr>
            <td> <?php echo $row['id'];?> </td>
            <td> <?php echo $row['title'];?> </td>
            <td> <?php echo $date;?> </td>
            <td> <?php echo $row['active'];?> </td>

            <td>
                <a href="#">     <?php echo $edit_img;      ?>  </a>
            </td>
            <td>
                <a href="#">    <?php  echo $delete_img;    ?>  </a>
            </td>
    </tr>

<?php

         }

 ?>

</table>

<br/>

<form name="formcategories" method="post">

    <input type="submit" value="ایجاد مجموعه">
    <input type="text" name="title">

</form>


</div>
<div class="cleared"></div>


<?php
    include_once('vmenu.php');
    include_once('peyment.php');
    include_once('profile-module.php');
    include_once('footer.php');
?>

z

 

config.php

<?php

    define('LOCALHOST','localhost');
    define('DBUSER','root');
    define('DBPASSWORD','');
    define('DBNAME','projectdb');
    $connection = mysqli_connect(LOCALHOST,DBUSER,DBPASSWORD,DBNAME);

?>

فایل header.php هم علاوه بر کدهای مربوط به خودش کد زیر نیز بهش اضافه کردم که جهت جلوگیری از شلوغی این پست قسمت مربوطه رو فقط ذکر کردم:

header.php

<?php
    include('functions.php');
    include('config.php');
 ?>

ممنون از لطفت

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری