从数据库中调用多个值

时间:2012-07-10 00:25:08

标签: php javascript database

我试图从表中检索几个不同的值。我得到了它的工作,但它实际上只发送了它调用的最后一个值。我做了几件不同的事情试图调用我的所有值,但它没有用。这就是我所拥有的。

$infoChanger = $_GET['changer'];
$username = $_GET['user'];
$sql="SELECT * FROM Login_Info WHERE user='".$username."'";
$r = mysql_query($sql,$con);
$row = mysql_fetch_array($r);

if ($row[7] != "") 
{
    if ( $infoChanger == 1 ) {
        echo $row['user'];
    }
    else if ( $infoChanger == 2 ) {
        echo $row['health'];
    }
    else if ( $infoChanger == 3 ) {
        echo $row['maxHealth'];
    }
    else if ( $infoChanger == 4 ) {
        echo $row['gold'];
    }
    else if ( $infoChanger == 5 ) {
        echo $row['xp'];
    }
    else if ( $infoChanger == 6 ) {
        echo $row['xpRequire'];
    }
    else if ( $infoChanger == 7 ) {
        echo $row['eg'];
    }
}
else
{
    echo "false";
}

这是我尝试这样做的最后一次尝试。但它只返回最后一个“eg”的值。我设置了一个循环来调用这里是我用它来调用它。

function recallCharInfo(user)
{
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
      alert ("Browser does not support HTTP Request")
      return
    }
    while (infoChanger < 7) {
      infoChanger += 1;
      xmlHttp=GetXmlHttpObject();
      var url="charinfo.php?user=" + user + "&changer=" + infoChanger;
      xmlHttp.onreadystatechange=stateChanged
      xmlHttp.open("GET",url,true)
      xmlHttp.send(null);
    }
}

我试图让它们全部显示,但只是不工作的方式,我不想为我试图调用的每个值创建一个函数。有谁知道这有什么问题或者我刚刚做错了吗?

1 个答案:

答案 0 :(得分:0)

对于您的特定情况,数组索引从0开始,因此如果这些是数组中的所有行,则$ row [7]将永远不会是任何内容,并且将始终返回false。

您的初步检查应该是:

if($row !== false && $row[6] != "") 

有关循环的替代解决方案:

你的php可以是:

$infoChanger = $_GET['changer'];
$username = $_GET['user'];
$sql="SELECT * FROM Login_Info WHERE user='".$username."'";
$r = mysql_query($sql,$con);
$row = mysql_fetch_array($r);
echo json_encode($row);

那应该将整行作为JSON对象返回,然后您可以使用以下方法将其解析为成功方法中的Javascript对象:

var rowData = JSON.parse(data);

然后您应该可以使用

访问所有字段
rowData.user;
and
rowData.health;