我的数据库中有一个包含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'的位置,但这也不起作用。如果你还可以请告诉我如何让var变量引用任何非常好的id。感谢
答案 0 :(得分:0)
您为每一行声明$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'
,您将获得所有行。然后你可以使用:
echo $new_array[1]['var'];
echo $new_array[2]['var'];