如何从数据库表中获取下一行?
如何从数据库表中获取下一行?这样行可能会增加行,即如果结构有一个名为“id”的字段,那么该行可以是id ++或下一个增加的行,但也可以是任何其他包含行的id(NOT VERY NEXT),(因为ID可以从表中删除)。如何从数据库表中获取下一行?
我使用MySQL数据库下面 是我的代码..
mysql_select_db('pranav_test');
$seletaudit = mysql_query("SELECT * FROM jos_audittrail WHERE live = 0");
while($row2 = mysql_fetch_array($seletaudit))
{
$audit[] =$row2;
}
$trackid = array();
$tracktable = array();
$i = 0;
foreach($audit as $val)
{
$trackid[$i] = $val['trackid'];
$tracktable[$i] = $val['table_name'];
if($i!=0)
{
$prev_id = $trackid[$i-1];
$prev_valtab = $tracktable[$i-1];
}
if($val['operation'] == 'INSERT')
{
if($tracktable[$i]!=$prev_valtab)
{
$inserttable = "INSERT INTO '".$tracktable[$i]."' (";
}
if($tracktable[$i]==$prev_valtab)
{
$insertfield .= "'".$val['field']."', ";
}
if($tracktable[$i]==$prev_valtab)
{
$insertfield .= "]";
$insertfield = str_replace(", ]",")",$insertfield);
}
}
}
上文我需要知道什么将是我的下一个行的“表格名”字段包含... 我怎样才能做到这一点....? 请帮助获取for循环中的下一行以检查它。
UPDATE:
好了,现在你贴一些代码,这里更具体的答案:
如果你想进入到下一行数组中,我建议使用正常for
循环来访问索引:
for($i = 0; $i<count($audit); $i++) {
// $audit[$i] is current row
// $audit[$i+1] is next row
}
但是当你到达数组的末尾要小心,因为$i+1
将出界。
或者,如果你只是想知道为什么在当前的代码$i
无法正常运作: 你必须在你的foreach
循环的末尾增加它:
$i++;
UPDATE2:
更完整的例子说清楚(我适应你的方法,并检查以前的行)
for($i=0; $i<count($audit);$i++)
{
$curr = $audit[$i];
if($i>0) {
$prev = $audit[$i-1];
if($curr['operation'] == 'INSERT')
{
if($curr['table_name']!=$prev['table_name'])
{
$inserttable = "INSERT INTO '".$curr['table_name]."' (";
}
else {
// whereever $insertfield comes from
$insertfield .= "'".$curr['field']."', ";
$insertfield .= "]";
$insertfield = str_replace(", ]",")",$insertfield);
}
}
}
}
由于您没有在所有指定如何连接到数据库,这里是一个通用的答案:
指定您的查询命令的结果通过ID设置:
$query = "SELECT <columns here> FROM <table here> ORDER BY id";
然后得到的结果集(我们有一个虚构的数据库类):
$result = $db->query($query);
然后在结果集迭代:
while($row = $result->next()) {
// do something with row
}
请chk更新问题..你说什么呢? – 2010-04-28 11:33:14
@Parth:我的回答仍然有效(第一部分;))但是我更新了它... – 2010-04-28 11:34:14
没有菲利克斯U仍然没有让我正确,或者我再也没有指出,不管它可能是什么,在这里我想要说,在上面提到的循环中,我只需要下一行的列的值,对于每个迭代... – 2010-04-28 11:37:38
你能提供一些代码吗?你正在使用哪个数据库?你使用哪些功能/对象来连接它?等 – 2010-04-28 11:21:02