我有这段代码:
include('config.php');
$result = mysql_query("SELECT * FROM system");
while($row = mysql_fetch_array( $result )) {
$name_system = $row['name'];
$value_system = $row['value'];
if($name_system=='website_register' AND $value_system==1)
{$register_system = 1;}
else
{$register_system = 0;}
if($name_system=='website_offline' AND $value_system==1)
{$offline_system = 1;}
else
{$offline_system = 0;}
}
我的问题是循环只显示“system”表中的最后一条记录。
答案 0 :(得分:1)
我的问题是,循环只显示
中的最后一条记录
不,问题在于循环显示 nothing 。显示在之后发生,在循环外部的代码中,因此当光标浏览整个表并且只有最后一行保留在$row
中时,只执行一次。
移动执行echo
或print
或 循环的代码,它将起作用。
答案 1 :(得分:0)
这很草率,但它会告诉你在循环过程中发生了什么:
include('config.php');
$result = mysql_query("SELECT * FROM system");
while ($row = mysql_fetch_array($result)) {
$name_system = $row['name'];
$value_system = $row['value'];
if($name_system=='website_register' AND $value_system==1)
{$register_system = 1;}
else
{$register_system = 0;}
if($name_system=='website_offline' AND $value_system==1)
{$offline_system = 1;}
else
{$offline_system = 0;}
print "$name_system, $value_system, $register_system, $offline_system<br />";
}
答案 2 :(得分:0)
您的问题是您每次都在同一个变量上覆盖最后一个值。而是将其添加为数组中的新单元格。例如每个地方而不是做
$register_system = 1;
待办事项
$register_system[] = 1;
最后,你可以print_r($register_system)
查看所有价值。您会注意到数组的键是0,1,...您可以考虑使用$row['name']
作为键,如下所示:
$register_system[$row['name']] = 1
假设当然这些是不同的值。
答案 3 :(得分:0)
echo/print
需要在循环中。
答案 4 :(得分:0)
尽量在任何需要的地方使用休息......
使用flag变量的逻辑...
答案 5 :(得分:0)
您可能希望将商品存储到数组中。
$result = mysql_query("SELECT * FROM system");
while($row = mysql_fetch_array( $result )) {
$name_system[] = $row['name'];
$value_system[] = $row['value'];
if($row['name']=='website_register' AND $row['value']==1)
{$register_system[] = 1;}
else
{$register_system[] = 0;}
if($row['name']=='website_offline' AND $row['value']==1)
{$offline_systemp[] = 1;}
else
{$offline_system[] = 0;}
}
通过这样做,您可以打印出每个值:
for ($i = 0; $i < count($name_system); $i++) {
echo 'Name system is: '.$name_system[$i];
}