0

データベースからデータ フィルタリングを実行したいと考えています。フィルタリング後、セッション変数が失われ、次のエラーが発生します。

警告: mysql_num_rows(): 指定された引数は、34 行目の ..\test.php にある有効な MySQL 結果リソースではありません。

誰か助けてくれませんか?

形:

<form action= "test.php" method='get'>
    <select name="Type">
            <option value="winter" name="winter">winter</option>
    </select>

    <input type='submit' value = 'filter'>
 </form>

コード:

<?php
 session_start();
 $_SESSION['winter'] = $_GET['Type'];
 $type =    $_SESSION['winter'] ;

 include "mysqlConnect.php";
  //check for a page number. If not, set it to page 1
  if (!(isset($_GET['pagenum']))){
   $pagenum = 1;
   }else{
    $pagenum = $_GET['pagenum'];
   }
   //query for record count to setup pagination

   $data = mysql_query("SELECT * FROM tblPhotos WHERE  Type='$type'  ");
   $rows = mysql_num_rows($data);
  //number of photos per page
   $page_rows = 16;
  //get the last page number
    $last = ceil($rows/$page_rows);
   //make sure the page number isn't below one, or more than last page num
    if ($pagenum < 1){
     $pagenum = 1;
    }elseif ($pagenum > $last){
     $pagenum = $last;
    }
   //Set the range to display in query
    $max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;
   //get all of the photos

    $dynamicList = "";
    $sql = mysql_query("SELECT * FROM tblPhotos WHERE  Type='$type' $max  ");
     //check for photos
      $photoCount = mysql_num_rows($sql); //LINE 34
     echo $photoCount;
    if ($photoCount > 0){
     while($row = mysql_fetch_array($sql)){
        $photoID = $row["PhotoID"];
        $photoName = $row["photoName"];
        $category = $row["category"];
        $dynamicList .= '
                             <div class="thumb">
                                  <a href="photo.php?id=' . $photoID . '"><img class="clip"   src="galleryPhotos/' . $photoID . '.jpg" alt="' . $photoName . '" width="175" border="0" /></a>
                            </div>
                        ';
       }
    }else{
     $dynamicList = "There are no photos at this time!";
      }

     mysql_close();

       echo '<p style="text-align:center; font-weight:bold;">Page ' . $pagenum . ' of ' . $last . '</p>';
       if ($pagenum == 1){
        echo '<div class="pagination" align="center"><ul>';
      }else{
          echo '<div class="pagination" align="center"><ul><li><a href="' . $_SERVER['PHP_SELF']  . '?pagenum=1">« first</a></li>';
         $previous = $pagenum-1;
    }
      //check if number of pages is higher than 1
      if($last != 1){
        //Loop from 1 to last page to create page number links
        for($i = 1; $i <= $last; $i++){
            echo '<li><a href="' . $_SERVER['PHP_SELF'] .'?pagenum=' . $i . '">' . $i . '</a></li>';
        }
    }
    if ($pagenum == $last){
        echo '</div>';
    }else{
        $next = $pagenum+1;
        echo '<li><a href="' . $_SERVER['PHP_SELF'] . '?pagenum=' . $last . '">last »</a></li></ul></div>';

 }
  echo $dynamicList;
?>
4

1 に答える 1

0
Your Code: mysql_query("SELECT * FROM tblPhotos WHERE  Type='$type' $max  ");

エラーメッセージを読んでください。クエリに何か問題があることを示しています。クエリを見た。私は同意する傾向があります。

于 2013-02-06T10:10:30.167 に答える