PHP MySQL数组
我不确定我是否理解MySQL中的数组是如何工作的。 我有一个表,它有一个名为id的列,每一行都有一个id的随机数字值。这些行按它们放入表中的日期排列,另一个列称为TimeStamp 因此,我可能:PHP MySQL数组,php,mysql,arrays,sql-order-by,row,Php,Mysql,Arrays,Sql Order By,Row,我不确定我是否理解MySQL中的数组是如何工作的。 我有一个表,它有一个名为id的列,每一行都有一个id的随机数字值。这些行按它们放入表中的日期排列,另一个列称为TimeStamp 因此,我可能: //row#: id# row1: 5 row2: 17 row3: 2 row4: -54 row5: 18 现在我可以按顺序重新排列它们,并按id按升序排列 $table1 = mysql_query("SELECT * FROM table1 ORDER BY id ASC") or die(
//row#: id#
row1: 5
row2: 17
row3: 2
row4: -54
row5: 18
现在我可以按顺序重新排列它们,并按id按升序排列
$table1 = mysql_query("SELECT * FROM table1 ORDER BY id ASC") or die(mysql_error());
$orderedArray = mysql_fetch_array($table1);
现在我有了一个数组$orderedArray。。应该是这样的吧
row4: -54
row3: 2
row1: 5
row2: 17
row5: 18
id列现在是按顺序排列的,而不是行后的数字在我的示例中,您将看到postdatetimestamp而不是行1或行3,但我只是使用了行命名系统来简化示例
所以我有这个数组。。。现在让我们假设我想按主题数组打印订单的第三行,也就是原始表中id列中第三高值的行。。。我的代码是什么
我以为是这样的,但没用:
$row3id = $orderedArray['id', 3];
print $row3id;
有人知道吗?谢谢 试试看:
while ($row = mysql_fetch_array($table1)) {
$orderedArray[] = $row;
}
$row3id = $orderedArray[2];
PHP数组以0作为第一个索引开始
另外,mysql_fetch_数组有一个可选的参数result_type,可以让您决定如何返回结果。默认值是MYSQL_-eath,这是在您的案例中使用的,因为您没有标识结果类型,所以您有一个带有关联索引和编号索引的数组结果
有关更多信息,请参见此处:
mysql_fetch_数组将返回第一行。要获取所有这些,您应该首先执行while循环:
while($row = mysql_fetch_array($query)){
$id[] = $row['id'];
}
// Use
$result = $id[2];
在这种情况下,阵列将工作。如果你想得到第三个,我想你可以使用mysql获取行。我的解决方案:
您的选择位于数组$orderedArray中
如果您想要第三排:
$i=0
{
如果$i==2{echo$orderedaray[1];}
$i++
}
不是最好的,但适用于第三行:您可以使用MySQLs LIMIT只返回第三行,而不是从MySQL中检索所有行,然后忽略所有行,但第三行MySQL_fetch_数组将结果集上的第一行作为数组获取。不是作为数组的整个结果集。看我下面的回答。@Mark,谢谢!这会让事情变得更顺利!昨天我试着查看了limited,但现在我知道我在用它们做什么了,今天应该会容易得多!谢谢大家!应该是$id[]=$row['id'];以便回显$id[3];我正在考虑使用一个循环,然后抓住第三个,我只是不知道怎么做!谢谢但是其他答案也有一些很好的解决方案,你应该看看!
while($orderedArray=mysql_fetch_array($table1))