Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQL数组_Php_Mysql_Arrays_Sql Order By_Row - Fatal编程技术网

PHP MySQL数组

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(

我不确定我是否理解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(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))