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