如何在准备好的select语句后显示单行

时间:2015-02-13 11:52:46

标签: php mysqli

我准备了以下Select语句:

$category = "Acoustic Guitars"; //product id

//create a prepared statement
$query = "SELECT id, Category, Manufacturer, Model, Color, LargeImage1, AM_price, RRP, Featured FROM products WHERE Category = ?";
$statement = $GuitarDB->prepare($query);

   $statement->bind_param('s', $category);


$statement->execute()
    $statement->bind_result($id, $Category, $Manufacturer, $Model, $Color, $LargeImage1, $AM_price, $RRP, $Featured);

当我执行以下操作时显示结果正常:

print '<table border="1">';

    //fetch records
    while($statement->fetch()) {
        print '<tr>';
        print '<td>'.$id.'</td>';
        print '<td>'.$Category.'</td>';
        print '<td>'. $Manufacturer.'</td>';
        print '<td>'.$Model.'</td>';
        print '</tr>';

    }   
    print '</table>';

    //close connection
    $statement->close();

但是我只想显示1行,我将如何处理,因为:print $id例如我0 这可能很容易,但我真的很挣扎。欢迎任何帮助。

2 个答案:

答案 0 :(得分:2)

试试这个..你可以使用 break 在打印第一条记录后退出while循环..不需要使用另一个变量..

print '<table border="1">';
while($statement->fetch()) {     
    print '<tr>';
    print '<td>'.$id.'</td>';
    print '<td>'.$Category.'</td>';
    print '<td>'. $Manufacturer.'</td>';
    print '<td>'.$Model.'</td>';
    print '</tr>';
    //you can use break to get out this while loop after printing first data
    break;
}   
print '</table>';

//close connection
$statement->close();

答案 1 :(得分:0)

更新代码以仅从数组中打印一行。

print '<table border="1">';
        $row = null;
        //fetch records
        while($statement->fetch()) {

            if($row == null) {      
            print '<tr>';
            print '<td>'.$id.'</td>';
            print '<td>'.$Category.'</td>';
            print '<td>'. $Manufacturer.'</td>';
            print '<td>'.$Model.'</td>';
            print '</tr>';
            }
          $row++;
        }   
        print '</table>';

        //close connection
        $statement->close();

如果您只想显示一行,那么为什么要从DB获取所有结果。请更新您的查询,如下所示。

$query = "SELECT id, Category, Manufacturer, Model, Color, LargeImage1, AM_price, RRP, Featured FROM products WHERE Category = ? limit 1";