数据库查询表选择从第二行开始,而不是第一行

时间:2017-05-15 14:50:38

标签: php html mysql smarty

基本上我使用的是html,php,Smarty。

当我将结果循环到显示数据库表行时,它会忽略我的数据库表的第一行。

因此,如果我有一个包含3行的表(product_id = 1,product_id = 2,product_id = 3),它只显示product_id' 2'和' 3'。

我希望能够显示第一行 - (product_id = 1)

.PHP

<?php

$new = ['product_id','product_category','product_price','product_quantity','product_about','product_color'];

//Database connection
 $db = mysqli_connect('xxx','xxx','xxx','xxx')
 or die('Error connecting to MySQL server.');

//access Smarty template engine
require_once('Smarty-3.1.30/libs/Smarty.class.php');

$smarty = new Smarty();
$smarty->template_dir = 'views';
$smarty->compile_dir = 'tmp';


//query product page
$query = "SELECT * FROM cs_shop";
mysqli_query($db, $query) or die('Error querying database.');

$result = mysqli_query($db, $query);
$row = mysqli_fetch_array($result);


//query an array of products
$rows = array();

 //loop start
 while ($row = mysqli_fetch_array($result)) {
    $rows[] = array(
        'product_id' => $row['product_id'],
        'product_category' => $row['product_category'],
        'product_price' => $row['product_price'],
        'product_quantity' => $row['product_quantity'],
        'product_about' => $row['product_about'],
        'product_color' => $row['product_color']
    );
}

//db collect data
$smarty->assign('row', $rows); 
//template
$smarty->display('index.tpl');

mysqli_close($db);

?>

.TPL

<div class="test divider">

<ul>
  {foreach from=$row item="item"}
  <li>{$item['product_id']}</li>
  {/foreach}
</ul>

</div>

结果

2
3

现在如何显示缺少ID ..我是新手,所以任何提示或帮助都非常感谢。提前致谢。

预期结果

1
2
3

1 个答案:

答案 0 :(得分:4)

在查询?后立即删除以下行:

$result = mysqli_query($db, $query);

它检索第一个结果,然后在进入$row = mysqli_fetch_array($result); // REMOVE ME 循环之前你不做任何事情并获得下一个结果。