1

所以我想从mysql中获取一些数据,并用它来创造一些条件。这是我的代码,但它只显示了 mysql 的最后一条记录。

    $result = mysql_query("SELECT * FROM system") or die(mysql_error());
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;

然后,如果我试图在另一个页面中回显“$offline_system”或“$register_system”,它不会显示真实数据。

4

4 回答 4

2

您在 之后关闭了 while 循环$value_system。这意味着将获取并存储所有记录$name_system$value_system但循环将覆盖先前的变量,因此只有最后一条记录存储在该变量中。

这似乎是一个不完整的代码。您可以做的是将右大括号移到您希望为每条记录执行的过程的末尾。

$result = mysql_query("SELECT * FROM system") or die(mysql_error());
while($row = mysql_fetch_array( $result )) {

$name_system = $row['name'];
$value_system = $row['value'];
} // you closed the WHILE loop here.

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;

我想你的代码是这样的:

$result = mysql_query("SELECT * FROM system") or die(mysql_error());
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;

 // my imagination i was talking about:
 if ($offline_system) echo 'The system is offline<br />';
 else echo 'The system is online<br />';
 if ($register_system) echo 'The registration is online<br />';
 else echo 'The registration system is offline';

 } // curly brace MOVED.
于 2012-09-23T12:59:42.647 回答
0

如果您希望数据在多个页面中可用,则需要将其存储在某个地方。SESSION 如果数据 si 小 SQLITE 或平面文件如果它更大 在这种情况下,您需要查看每个选项使用多少内存和时间并选择最便宜的一个。

于 2012-09-23T13:24:54.417 回答
0

使用$_SESSION变量,像这样:无论你得到$register_system什么,它都会变成$_SESSION['register_system'],并且可以在下一页上以. 的形式访问$_SESSION['register_system']

类似地$offline_system,它会像在下一页一样被$_SESSION['offline_system']访问。$_SESSION['offline_system']

于 2012-09-23T13:46:27.050 回答
0

你可以让这更简单。如果您正在从数据库中查找特定值,您只需查询它们,然后分配值。

例如

<?php

$registerResult = mysql_fetch_row(mysql_query("SELECT value FROM system WHERE name = 'website_register'"));
$offlineResult = mysql_fetch_row(mysql_query("SELECT value FROM system WHERE name = 'website_offline'"));

$registerSystem = ($registerResult[0] ? 1 : 0);
$offlineSystem  = ($offlineResult[0] ? 1 : 0);

?>
于 2012-09-23T14:06:01.527 回答