2016-11-23 108 views
-2
<?php 

$db = new mysqli('localhost', 'root', '', 'cheapbook') or die('Error connecting to MySQL server.'); 
mysqli_set_charset($db, 'utf8'); 

if (!(is_null(isset($_REQUEST['SearchByBookTitle']) ? $_REQUEST['SearchByBookTitle'] : null))) { 

    $Title = $_REQUEST['SearchByBookTitle']; 


    $query = "SELECT A.ISBN,title,year,price,publisher,number 
    FROM Book A, Stocks B 
    WHERE title='%$Title%' and 
    A.ISBN=B.ISBN"; 

    mysqli_query($db, $query) or die('Error querying database.'); 
    $result = mysqli_query($db, $query); 
    $row = mysqli_fetch_array($result) 


    while ($row = mysqli_fetch_array($result)) { 
     echo $row['ISBN']; 
     echo $row['title']; 
     echo $row['year']; 
     echo $row['price']; 
     echo $row['publisher']; 
     echo $row['number']; 
    } 

} 
?> 

无法在while循环中获取数据。查询工作正常。我正在尝试使用while循环获取每行的所有属性数据。但是,它不起作用。感谢任何帮助。提前致谢!在php中从mysql获取多行

+2

为什么你需要取两次的结果? – Irvin

+0

你为什么要调用'mysqli_query()'两次?你为什么在循环之外调用'mysqli_fetch_row()',然后循环呢?你期望有多少结果?如果只有一个,则在循环外部调用'mysqli_fetch_row()'消耗该结果;你的循环没有进一步的结果。 – Chris

+0

这是多余的..让我删除它!但仍然没有区别 – Chandra

回答

-2

改变这样的:如果返回的数据

while ($row = mysqli_fetch_array($result)) { 
    var_dump($row); 
    ...... 

我希望这有助于

$result = mysqli_query($db, $query); 
if (!$result) { 
    die('Error querying database.'); 
} 

然后验证