1

我制作了一个页面,用户可以在其中查看他们在数据库中输入的数据。
我用了:

$select = "SELECT * FROM texts WHERE user='".$user."' ORDER BY date DESC, id DESC";
$result = mysql_query($select);
$array = array();
while($show = mysql_fetch_assoc($result))
{
$array[] = $show;
}
echo "<strong>".$array[0]['id']."</strong><br />";
echo "<strong>".$array[1]['id']."</strong><br />";
echo "<strong>".$array[2]['id']."</strong><br />";
echo "<strong>".$array[3]['id']."</strong><br />";
echo "<strong>".$array[4]['id']."</strong><br />";

代码有效,但有时我要返回的值少于 10 个,有时甚至更多。
如果我使用它并且我只有 2 个数组要返回,我会得到:

Notice: Undefined offset: 2 in ownposts.php on line 15
Notice: Undefined offset: 3 in ownposts.php on line 16
Notice: Undefined offset: 4 in ownposts.php on line 17

仅当存在 $array[4] 时,如何才能回显 $array[4]['id ]?
我试过:

$zero = $array[0];
if(!empty($zero))
{
echo "<strong>".$zero['id']."</strong><br />";
}
$four = $array[4];
if(!empty($four))
{
echo "<strong>".$five['id']."</strong><br />";
}

但不能正常工作,因为我除外并仍然返回Notice: Undefined offsed: 4 in ownposts.php on line 17

4

4 回答 4

3

而不是你目前所做的,这个:

while($show = mysql_fetch_assoc($result))
{
$array[] = $show;
}
echo "<strong>".$array[0]['id']."</strong><br />";
echo "<strong>".$array[1]['id']."</strong><br />";
echo "<strong>".$array[2]['id']."</strong><br />";
echo "<strong>".$array[3]['id']."</strong><br />";
echo "<strong>".$array[4]['id']."</strong><br />";

为什么不直接显示 mysql 找到的任何内容:

while($show = mysql_fetch_assoc($result))
  {
    echo "<strong>".$show['id']."</strong><br />";
  }

或者,如果除了向我们展示的代码之外,您还有其他事情与数组有关,请在新创建的数组上使用循环,即 foreach。

于 2013-09-04T11:09:44.990 回答
1

尝试

foreach($array as $data){
echo '<strong>'.$data['id'].'</strong><br />';
}
于 2013-09-04T11:08:46.180 回答
0

我将其重写如下:

$i = 0;
while($show = mysql_fetch_assoc($result))
{
    $array[] = $show;
    if (isset($array[$i])) {
        echo "<strong>".$array[$i]['id']."</strong><br />";
    }
    $i++;
}
于 2013-09-04T11:12:21.370 回答
0

php中有用于检查的功能,array_key_exists。您可以在 http://php.net/manual/en/function.array-key-exists.php进行检查

于 2013-09-04T11:12:38.823 回答