Я обновляю свой сайт и хочу перейти от нескольких страниц с одинаковым кодом к одной странице, которая выполняет все действия пользователя. Я могу сделать его достаточно хорошо, потому что пользователь может запросить любой непредсказуемый контент. Некоторые теги <div>
будут пустыми, и MySQL будет вызывать неопределенную ошибку смещения, потому что в недостаточно содержимого для заполнения 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">
\t <h1><?php echo $heading1[0];?></h1>
\t <p><?php echo $paragraph1[0];?></p>
</div>
<!--ignore this 'two' if none existent in database-->
<div class="two">
\t <h1><?php echo $heading1[1];?></h1>
\t <p><?php echo $paragraph1[1];?></p>
</div>
Спасибо.
Использование '' empty' или isset' - [PHP: "Примечание: Undefined переменной" и "Примечание: Undefined индекс"]! (Http://stackoverflow.com/questions/4261133/php-notice- неопределенное-переменное и-уведомление-неопределенный-индекс) – jitendrapurohit