0

こんにちは、すでにこの質問をしましたが、残念ながら適切な回答が得られませんでした。以下のように、MySQL データベースに Items と Item という 2 つのテーブルがあります。

ここに画像の説明を入力

bwlow として 2 つの .php ファイルがあります。index.php と results.php index.php は次のようになります。

 <html>
 <head></head>
 <body>
 <?php
   $mysqli = new mysqli('localhost', 'root', '', 'moviedb');
    if ($mysqli->connect_errno) 
     {
      die('Unable to connect!');
     }
    else{
         $query = 'SELECT * FROM tblItems';
         if ($result = $mysqli->query($query)) {
            if ($result->num_rows > 0) {
   ?>  
    <p> Select a Genre
       <ul>
    <?php     
       while($row = $result->fetch_assoc()){
     ?>      
  <li><div class="selectGenre"><?php echo $row['item']; ?></div></li>     
  <?php           
    }
   ?>
        </ul>
</p>
<p id="result"></p>
<?php
}
else 
{
    echo 'No records found!';
}
$result->close();
}
else 
{
echo 'Error in query: $query. '.$mysqli->error;
 }
}
$mysqli->close();
?>
 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"           type="text/javascript"></script>
 <script type="text/javascript">
    $(document).ready(function()
    {
        $('.selectGenre').click(function()
        {
          if($(this).html() == '') return;
            $.get(
                'results.php',
                { id : $(this).html() },
                function(data)
                {
                    $('#result').html(data);
                }
            );
        });
    });
   </script>
  </body>
  </html>

そしてresults.phpは次のとおりです。

<?php
  $mysqli = new mysqli('localhost', 'root', '', 'moviedb');
  $resultStr = '';
   $query = 'SELECT type FROM tblItem where id='.$_GET['id'];
   if ($result = $mysqli->query($query)) 
   {
    if ($result->num_rows > 0) 
   {
    $resultStr.='<ul>';
     while($row = $result->fetch_assoc())
     {
    $resultStr.= '<li><strong>'.$row['id'].'</strong> - '.$row['type'];
   '</li>';
  }
   $resultStr.= '</ul>';
  }
  else
  {
$resultStr = 'Nothing found';
  }
 }
echo $resultStr;
?>

最初の部分 (index.php) は、tblItems テーブルに基づいてリストを作成していますが、リストをクリックしても、results.php ファイルからページに値が返されず、エラー メッセージさえも返されません。ここで私が間違っていることを教えてください。

4

3 に答える 3

1

これはあなたにとってより簡単になります:これを試してください、私はあなたのindex.phpコードを編集します:

 <html>
 <head></head>
 <body>
 <?php
   $mysqli = new mysqli('localhost', 'root', '', 'moviedb');
    if ($mysqli->connect_errno) 
     {
      die('Unable to connect!');
     }
    else{
         $query = 'SELECT * FROM tblItems';
         if ($result = $mysqli->query($query)) {
            if ($result->num_rows > 0) {
   ?>  
    <p> Select a Genre
       <ul>
    <?php     
       while($row = $result->fetch_assoc()){
     ?>      
  <li><div class="selectGenre" onclick="return printSearch('<?php echo $row['id']; ?>');"><?php echo $row['item']; ?></div></li>     
  <?php           
    }
   ?>
        </ul>
</p>
<p id="result"></p>
<?php
}
else 
{
    echo 'No records found!';
}
$result->close();
}
else 
{
echo 'Error in query: $query. '.$mysqli->error;
 }
}
$mysqli->close();
?>
 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"           type="text/javascript"></script>
 <script type="text/javascript">
    function printSearch(idVal)
    {

            $.get(
                'results.php',
                { id : idVal },
                function(data)
                {
                    $('#result').html(data);
                }
            );
    }
   </script>
  </body>
  </html>

ここにresult.phpがあります

<?php

$mysqli = new mysqli('localhost', 'root', '', 'moviedb');
$resultStr = '';
 $query = 'SELECT * FROM tblItem where id='.$_GET['id'];
if ($result = $mysqli->query($query)) 
{
    if ($result->num_rows > 0) 
    {
        $resultStr.='<ul>';
        while($row = $result->fetch_assoc())
        {
            $resultStr.= '<li><strong>'.$row['id'].'</strong> - '.$row['Name'].
                            '</li>';
        }
        $resultStr.= '</ul>';
    }
    else
    {
        $resultStr = 'Nothing found';
    }
 }
echo $resultStr;
?>
于 2012-11-14T03:35:05.477 に答える
0

results.php で以下のクエリを試してください。

$sql  = "SELECT tblItem.* FROM tblItems 
  INNER JOIN tblItem USING(id)
  WHERE tblItems.item = '".$mysqli->real_escape_string($_GET['id'])."'";

$row['type']にも変更$row['Name']

于 2012-11-14T03:22:05.063 に答える
0

あなたの問題は次のとおりです。

$query = 'SELECT type FROM tblItem where id='.$_GET['id'];

いつ

$_GET['id'] = 'Drama'; // Action, etc.
于 2012-11-14T03:00:59.857 に答える