我在SQL服务器上有24个数据。当我的网页启动时,它会从服务器一次拉出所有这些数据并显示它。看起来像这样:
$sql = "SELECT `$dateName` FROM `$user` WHERE hour=2";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$hour2 = $row[$dateName];
}
}
$sql = "SELECT `$dateName` FROM `$user` WHERE hour=3";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$hour3 = $row[$dateName];
}
}
等......直到24小时。
但我觉得for循环更好。像这样:
for ($x = 1; $x <= 24; $x++) {
$sql = "SELECT `$dateName` FROM `$user` WHERE hour=`$x`";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$hour.$x = $row[$dateName];
}
}
}
我想拨打$ hour1,$ hour2,$ hour3。通过添加$ x到$小时。我该怎么做呢?非常感谢你!
答案 0 :(得分:3)
我建议创建$ hours的数组,而不是生成动态变量。
$hour = array();
for ($x = 1; $x <= 24; $x++) {
$sql = "SELECT `$dateName` FROM `$user` WHERE hour=`$x`";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$hour[$x][] = $row[$dateName];
}
}
}
这样你就可以访问$ hour [1],$ hour [2] ......等......
答案 1 :(得分:2)
将它们包装到${'hour'.$x} = $row[$dateName]
答案 2 :(得分:1)
您可以使用Variable variables执行此操作:
${"hour" . $x} = $row[$dateName];
答案 3 :(得分:1)
您可以创建$ hour作为数组,使用$ x作为键并为键设置适当的值。
EG:
$hours = array();
for ($x = 1; $x <= 24; $x++) {
$sql = "SELECT `$dateName` FROM `$user` WHERE hour=`$x`";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$hour[$x] = $row[$dateName];
}
}
}
echo $hour[1];
注意:
您应该考虑使用一种更有效的方法,在这种情况下,您不必每小时24次连接数据库。
EG:
$sql = "SELECT `$dateName` FROM `$user` ORDER BY hour ASC";
这将在一个查询中返回所有24行,然后您可以使用PHP操作数据。
答案 4 :(得分:1)
function pullRequest($dateName,$user,$x){
//Define $conn here
$sql = "SELECT `$dateName` FROM `$user` WHERE hour=`$x`";
$result = $conn->query($sql);
$hour = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$hour[$x] = $row[$dateName];
}
}
return $hour[$x];
}
Then you can call it like this
$dateName ="DATENAME";
$user="USER";
for ($x = 1; $x <= 24; $x++) {
pullRequest($dateName,$user,$x);
}
&#13;