php - 避免空数组的未定义偏移错误

标签 php html mysql

<分区>

我正在升级我的网站,并希望从具有相同代码的多个页面转变为执行所有用户操作的单个页面。然而,我可以做得很好,因为用户可以请求任何不可预测的内容 <div>标签将为空,MySQL 将抛出 undefined offset 错误,因为 database 中没有足够的内容。填写 fetch_array() .一些示例代码..

<?php
$dbhost  = 'localhost';   
$dbname  = 'd_dundaah';   
$dbuser  = 'max';   
$dbpass  = '';  

$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($conn->connect_error) die($conn->connect_error);

$query = "SELECT * FROM events WHERE day='mon'";

$result = $conn->query($query);
if (!$result) die($conn->error);

$rows = $result->num_rows;
$j = 0;

$heading_array='';
$paragraph_array='';

while ($j < $rows )
{
$result->data_seek($j);
$row = $result->fetch_array(MYSQLI_ASSOC);

$event_heading = $row['heading'];
$event_paragraph = $row['paragraph'];

$heading_array[]=$event_heading;
$paragraph_array[]=$event_paragraph;

++$j;
}

$result->close();
$conn->close();

?>

那么在调用数据的时候,如果mon只有一行数据将调用偏移错误。我如何让 MySQL 忽略它?

<div class="one">
	<h1><?php echo $heading1[0];?></h1>
	<p><?php echo $paragraph1[0];?></p>
</div>
<!--ignore this 'two' if none existent in database-->
<div class="two">
	<h1><?php echo $heading1[1];?></h1>
	<p><?php echo $paragraph1[1];?></p>
</div>

谢谢。

最佳答案

isset() 是你的 friend 。 如果指定的索引存在则返回 true,否则返回 false。

例如,您可以像这样使用它。

if(isset($heading1[1])){
    // Do something here, only if $heading1[1] exists
}

关于php - 避免空数组的未定义偏移错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40130551/

相关文章:

mysql - Node.js "cannot set property firstName of undefined"

php - MySQL 插入 : Avoid duplicates w/multiple cols

php - 删除两个表中的数据

php - 在 Woocommerce 中设置购物车商品价格后重新计算总计

php - 使用 php 和 Mysql 跟踪数据库使用情况

mysql - docker 撰写 : Percona XtraDB Cluster Bootstrapping

php - 如何从2个单独的SQL表中选择最新日期?

javascript - 有什么方法可以确定时间输入是部分填充还是为空?

javascript - 你知道任何显示如何使用 Canvas 绘制思维导图的示例代码吗?

jquery - Internet Explorer 8+ - 通过 jquery 填充选择不会扩大选择范围