Php 将MySQL中的数据存储到一个数组中,以后再访问它

Php 将MySQL中的数据存储到一个数组中,以后再访问它,php,Php,呃。。我很抱歉问了这么一个基本的问题,但我在谷歌和stackoverflow上都找不到好的答案。。。这是我想做的 我将公告保存在MySQL中,然后使用 <?php while($announcerow = mysqli_fetch_assoc($announceResult)): ?> 但是我以后如何向用户显示公告呢? 另外,我的公告有一个ID、一个标题、一个URL和一个描述,这就是我现在显示它们的方式 <?php while($announcerow = mysqli_fe

呃。。我很抱歉问了这么一个基本的问题,但我在谷歌和stackoverflow上都找不到好的答案。。。这是我想做的

我将公告保存在MySQL中,然后使用

<?php while($announcerow = mysqli_fetch_assoc($announceResult)): ?>
但是我以后如何向用户显示公告呢? 另外,我的公告有一个ID、一个标题、一个URL和一个描述,这就是我现在显示它们的方式

<?php while($announcerow = mysqli_fetch_assoc($announceResult)): ?>
                <a data-toggle="tooltip" title="<?php echo $announcerow['Description']; ?>" target="_blank" href="<?php echo $announcerow['URL']; ?>"><p class="text-light-blue"><span class="fa fa-external-link"></span> <?php echo $announcerow['Title']; ?><span class="text-muted"> - by <?php echo $announcerow['Author']; ?> (<?php echo $announcerow['Date']; ?>)</span></p></a>
            <?php endwhile; ?>
我试过这个

while($row = mysql_fetch_assoc($announceResult)){
            $array[] = $row;
        }

下面是sql和数组的全部代码

$announceSql = "SELECT `ID`, `Author`, `Title`, `Date`, `URL`, `Description` FROM `Announcements` ORDER BY ID DESC";
    $announceResult = mysqli_query($db, $announceSql);
    $announcerow_cnt = mysqli_num_rows($announceResult);

    while($row = mysql_fetch_assoc($announceResult)){
        $array[] = $row;
    }
我还添加了这个

if (!$announceResult) {
            printf("Error: %s\n", mysqli_error($db));
            exit();
        }
并且没有mysql错误,或者至少没有出现mysql错误

解决了!我用的是mysql而不是mysqli_fetch_assoc

你可以这样使用

<?php while($announcerow = mysqli_fetch_assoc($announceResult)){ ?>
           $array[] = $announcerow;
<?php }?>



    <?php foreach($array as $datum) {?>
         <a data-toggle="tooltip" title="<?php echo $datum['Description']; ?>" target="_blank" href="<?php echo $datum['URL']; ?>">
              <p class="text-light-blue">
                   <span class="fa fa-external-link"></span>
                   <?php echo $datum['Title']; ?>
                   <span class="text-muted"> - by <?php echo $datum['Author']; ?> (<?php echo $datum['Date']; ?>)
                   </span>
              </p>
        </a>
    <?php } ?>

$array[]=$ROW;
警告:mysql_fetch_assoc():在第56行的/home/a8438725/public_html/index.php中,提供的参数不是有效的mysql结果资源

这意味着你没有给我们看的那条线包含

$announceResult=mysqli_query($db_conn, $sql);
失败或$announceResult位于其他作用域中,或$announceResult在填充后已更改。第一个可能也会引发警告。因此,最有可能的原因是,在这里没有向我们展示的750多行代码中,您遇到了范围问题或bug

(提示:如果您遇到这样的问题,并且无法就地修复,建议尝试编写尽可能小的程序来重现故障,并用它来理解问题/说明堆栈溢出问题)

注意:未定义的变量:第777行/home/a8438725/public_html/index.php中的数组

警告:为第777行/home/a8438725/public_html/index.php中的foreach()提供的参数无效


由于填充$array()的循环是由mysqli_fetch_assoc()驱动的,因此从未初始化和填充过$array()。

您可以在
$array
上创建一个循环,如Ugh中所示,但是如何定义一个键以及在执行数组时如何向其添加多个值,例如“key”=>“$row['Title']”、“$row['URL']、“$row['Description']”等等,这会在这段时间内奏效吗?我已经补充了一个答案。让我知道它是否适用于youmysql\u fetch\u assoc():提供的参数不是有效的MySQL结果资源in@Andrei您正在显示来自
的结果。在这段代码中,您需要将每一行追加到数组中。所以稍后,你可以随时访问它,在使用代码显示它们之前,我用它将它们加载到数组中:?虽然($row=mysql\u fetch\u assoc($announceResult)){$annarray[]=$row;}但是我从above@Andrei更新了答案。你在使用上面的方法吗?@Andrei什么是
$announceResult
?我已经更新了我的帖子,sql就在while之上,所以范围不应该是问题:?我还将循环之前的数组初始化为
$annarray=array()所以现在唯一的错误是mysql_获取,我不知道为什么会发生这种情况,因为当我在html中嵌入它时,它工作得非常完美
$announceSql = "SELECT `ID`, `Author`, `Title`, `Date`, `URL`, `Description` FROM `Announcements` ORDER BY ID DESC";
    $announceResult = mysqli_query($db, $announceSql);
    $announcerow_cnt = mysqli_num_rows($announceResult);

    while($row = mysql_fetch_assoc($announceResult)){
        $array[] = $row;
    }
if (!$announceResult) {
            printf("Error: %s\n", mysqli_error($db));
            exit();
        }
<?php while($announcerow = mysqli_fetch_assoc($announceResult)){ ?>
           $array[] = $announcerow;
<?php }?>



    <?php foreach($array as $datum) {?>
         <a data-toggle="tooltip" title="<?php echo $datum['Description']; ?>" target="_blank" href="<?php echo $datum['URL']; ?>">
              <p class="text-light-blue">
                   <span class="fa fa-external-link"></span>
                   <?php echo $datum['Title']; ?>
                   <span class="text-muted"> - by <?php echo $datum['Author']; ?> (<?php echo $datum['Date']; ?>)
                   </span>
              </p>
        </a>
    <?php } ?>
$announceResult=mysqli_query($db_conn, $sql);