您好,我正在尝试查询我的数据库以获取共享相同“ITEMID”的所有记录,该表是对数据库中的项目执行的操作的事务列表。
我已经检查了phpmyadmin中的SQL查询,它运行正常,但是当我运行php代码时,它每次都会忽略第一条记录。这是我的代码
<?php
// Get the quantity of each item
$sql1 = 'SELECT `IDPENTERED` , `ITEMID` , `QTY` , `VALUE` FROM `tblpieceentered`
WHERE `ITEMID` =307 ' ;
echo $sql1."<br>";
// Retrieve all the data from the table
$result1 = mysql_query($sql1)
or die(mysql_error());
// store the record of the table into $row1
$row1 = mysql_fetch_array( $result1 );
$i = 1;
$num = mysql_num_rows ($result1);
echo "Num rows: $num <br>";
while ($row1 = mysql_fetch_assoc ( $result1)) {
$data_array[$i] = $row1;
$i++;
}
echo "<pre>";
print_r ($data_array);
echo "</pre>";
?>
结果是:
SELECT `IDPENTERED` , `ITEMID` , `QTY` , `VALUE` FROM `tblpieceentered` WHERE `ITEMID` =307
Num rows: 5
Array
(
[1] => Array
(
[IDPENTERED] => 1999
[ITEMID] => 307
[QTY] => -1
[VALUE] => -0.21
)
[2] => Array
(
[IDPENTERED] => 2507
[ITEMID] => 307
[QTY] => -10
[VALUE] => -2.1
)
[3] => Array
(
[IDPENTERED] => 3039
[ITEMID] => 307
[QTY] => 1
[VALUE] => 0.21
)
[4] => Array
(
[IDPENTERED] => 3040
[ITEMID] => 307
[QTY] => -1
[VALUE] => -0.21
)
)
任何想法?
由于 肖恩
答案 0 :(得分:1)
mysql_fetch_array已经获取第一行。您不在数组中添加此行。 while循环继续第二行。
答案 1 :(得分:1)
你的第一张唱片:
$row1 = mysql_fetch_array( $result1 );
循环从下一个(第二个)记录开始:
while ($row1 = mysql_fetch_assoc ( $result1))
答案 2 :(得分:1)
这是因为您在之前>>获取第一个项目。
删除$row1 = mysql_fetch_array( $result1 );
行,你应该很好。
或者,如果您希望在循环之前访问第一行,则可以改为使用do-while
循环:
// store the record of the table into $row1
$row1 = mysql_fetch_array( $result1 );
$i = 1;
$num = mysql_num_rows ($result1);
echo "Num rows: $num <br>";
do {
$data_array[$i] = $row1;
$i++;
} while ($row1 = mysql_fetch_assoc ( $result1));
答案 3 :(得分:1)
使用mysqli和fetch_all会更有效率: