web开发,PHP显示来自SQL的变量

时间:2012-12-13 07:45:33

标签: php html mysql sql

好的我有一个PHP页面,我有一个数据库。 在我的数据库中,我有一个带有字段的表格其中一个字段称为帐户类型它是枚举('n','m','s') 我试图在我的PHP页面上显示如果用户是 N ,如果用户是 E 专家用户或 S Super,它应该说普通用户用户...

我该怎么做?

PHP页面顶部

<?php
// Query member data from the database and ready it for display
$sql = mysql_query("SELECT * FROM members WHERE id='$id' LIMIT 1");
while($row = mysql_fetch_array($sql)){
    $phone = $row["phone"];
    $country = $row["country"];
    $state = $row["state"];
    $city = $row["city"];
    $accounttype = $row["accounttype"];
    $bio = $row["bio"];
}    
?>

我想在页面上显示的地方这是代码。现在它只是放了一个空白区域。

<span class="admin">Edward</span>
<span class="date">March 19, 2048</span>
<span class="tag"><?php echo "$accounttype"; ?></span>
<span class="comment"><a href="#">166 comments</a></span>

图片 http://i.stack.imgur.com/KXu9A.png

3 个答案:

答案 0 :(得分:1)

首先建立连接,不要花费一段时间,制作一个像这样的

if($row = mysql_fetch_array($sql)){
    $phone = $row["phone"];
    $country = $row["country"];
    $state = $row["state"];
    $city = $row["city"];
    $accounttype = $row["accounttype"];
    $bio = $row["bio"];
}  

而不是

$speaking_type = null;
switch($accounttype) {
    case 'n':
        $speaking_type = 'Normal User';
        break;
    case 'm':
        $speaking_type = 'Expert User';
        break;
    case 's':
        $speaking_type = 'Super User';
        break;
    default:
        $speagink_type = 'none';
        //throw new Exception('unsupported account type '.$accounttype);
}

echo $speaking_type;

答案 1 :(得分:0)

我认为问题在于你的范围。您的变量在while循环中定义,因此它们在文档中进一步未知。尝试在顶部(在while循环之前)实例化它们,如下所示:

$phone = null;
$country = null;
$state = null;
$city = null;
$accounttype = null;
$bio = null;

比变量将在while之外知道,并且在打印时将记住这些值。

答案 2 :(得分:0)

我以为你没先连接到数据库。使用以下代码连接你的凭证。这就是你看到空白的原因

$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// some code

mysql_close($con);