我试图从表中检索几个不同的值。我得到了它的工作,但它实际上只发送了它调用的最后一个值。我做了几件不同的事情试图调用我的所有值,但它没有用。这就是我所拥有的。
$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);
}
}
我试图让它们全部显示,但只是不工作的方式,我不想为我试图调用的每个值创建一个函数。有谁知道这有什么问题或者我刚刚做错了吗?
答案 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;