我的数据库中有一个包含 53 行的表。行中的变量是 INT id、VARCHAR var 和 INT votes。我不知道如何将表中的所有行查询到数组中。我希望能够在引用 id 时获取“var”变量。这是我到目前为止所拥有的,它确实只会查询第一行。 (因此 id = '1')。
<?php
include_once "code.php";
$new_array = array();
$sql = mysql_query("SELECT * FROM Variables WHERE id='1'");
while ($row = mysql_fetch_array($sql)) {
$new_array[$row['id']] = $row;
};
我尝试使用 for 循环并将变量粘贴在“1”所在的位置,但这也不起作用。如果可以的话,请告诉我如何通过引用任何很棒的 id 来获取 var 变量。谢谢
最佳答案
为每一行声明$new_array
。您应该将其移到 while
循环之外。另外,尽量不要使用 mysql_* 函数,因为它们已被弃用。尝试 mysqli_* 甚至更好的 PDO。
include_once "code.php";
$sql = mysql_query("SELECT * FROM Variables");
$new_array = array(); //This array should be not inside while
while($row = mysql_fetch_array($sql)){
$new_array[$row['id']] = $row;
//Do something else here if you want
};
使用 PDO
try {
$link= new PDO("mysql:host=$hostname;dbname=mysql", $username, $password);
echo "PDO connection object created";
}
catch(PDOException $e) {
echo $e->getMessage();
die();
}
$sql = "SELECT * FROM users";
//Prepare your query
$stmt = $link->prepare($sql);
//Execute your query binding variables
$result = $stmt->execute(array());
$result = $stmt->fetchAll();
$new_array = array();
foreach ($result as $row) {
$new_array[$row['id']] = $row;
}
评论后编辑:
从查询中删除 WHERE id = '1'
,您将获得所有行。然后你可以使用 id 引用的 var:
echo $new_array[1]['var'];
echo $new_array[2]['var'];
关于php - php根据Id查询表中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373086/