gpt4 book ai didi

php - 显示数组中的数据时出现非法字符串偏移

转载 作者:行者123 更新时间:2023-11-29 12:13:49 25 4
gpt4 key购买 nike

我得到了以下代码:

<?php

require('connect.php');

if(isset($_GET['region'])) {
$region = mysql_real_escape_string($_GET['region']);
if ($region == "eu") {
$rows = mysql_fetch_array(mysql_query("SELECT * FROM `daily_leaderboard_eu`"));
} elseif ($region == "na") {
$rows = mysql_fetch_array(mysql_query("SELECT * FROM `daily_leaderboard_na`"));
}
} else {
$rows = mysql_fetch_array(mysql_query("SELECT * FROM `daily_leaderboard_eu`"));
}

?>

<table>
<tr>
<td>Rank</td>
<td>Points</td>
</tr>
<tr>
<?
if(empty($rows)){
echo '<td colspan="5">We are unable to provide data at the moment!</td>';
} else {
foreach($rows as $row){?>
<td><?=$row['rank']?></td>
<td><?=$row['points']?></td>
<?}
}
?>
</tr>
</table>

该代码应该获取整个 daily_leaderboard_X 表,然后在一个简单的表中显示数据。但是它不起作用,因为我收到以下错误:

警告:第 29 行/home/bbb/public_html/pvp/index.php 中存在非法字符串偏移“rank”5
警告:第 30 行/home/bbb/public_html/pvp/index.php 中存在非法字符串偏移“点”5

图片:http://i.gyazo.com/b1ec034e7d0d906fb81c8175300f288c.png

有人可以指出我的错误以及如何解决吗?

最佳答案

当你这样做时

$rows = mysql_fetch_array(mysql_query("SELECT  * FROM `daily_leaderboard_eu`"));

您正在从查询结果中选择一行。然后当你这样做时

foreach($rows as $row){?>

您正在迭代该行中的值。所以当你这样做时

$row['rank']

$row 不是一个数组,而是一个字符串,因此 PHP 需要一个数字索引。这就是为什么您会看到“警告:非法字符串偏移”。您可以通过将查询与获取分开来解决此问题,因此在顶部您将只看到

$rows = mysql_query("SELECT  * FROM `daily_leaderboard_eu`");

然后您可以将 foreach 循环更改为 while 循环并一次获取一行。

while ($row = mysql_fetch_array($rows)) {?>

然后 $row 实际上将是一个数组并按您的预期工作。

关于php - 显示数组中的数据时出现非法字符串偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com