Php - 注意:未定义偏移量 10?

Php - Notice: Undefined offset 10?

<?php

require "connection.php";

$cek = mysql_query("SELECT * FROM `kelimeler` ORDER BY `numara` DESC LIMIT 10");

$i = 0;
$tr_dizi = array();
$alm_dizi = array();

while ($satir = mysql_fetch_array($cek)) {
    $tr_dizi[$i] = $satir["turkce"];
    $alm_dizi[$i] = $satir["almanca"];
    $i++;
}

$deger = rand(1,10);

setcookie("soru", $tr_dizi[$deger]);
setcookie("cevap", $alm_dizi[$deger]);

?>

<?php

if (isset($_POST["kelime"])) {
    if ($_POST["kelime"] == $_COOKIE['cevap']) {
        echo '<div class="bildirim">Richtig &#10004</div>';
    } else {
        echo '<div class="bildirim">'.$_COOKIE['soru'].' = '.$_COOKIE['cevap'].'</div>';
    }
}

?>

这是一个类似于 a = b 的问答游戏,a 是什么?如果用户发送 b 它说 'yes!' 否则正确答案是 'b' php 说

Notice: Undefined offset: 10 on line 19 - 20 - 55

Line 19 -> setcookie("soru", $tr_dizi[$deger]);  
Line 20 -> setcookie("cevap", $alm_dizi[$deger]); 
Line 55 -> <divclass="kelime"><?php echo $tr_dizi[$deger] ?></div>

when user send the answer program check it and ask new question and yes or no is showing on new page i'm using cookies for that

我该如何修复这个错误我可以进行错误处理但我是一名新开发人员我想学习谢谢大家:)

它没有设置 10 因为 $i0 开始。您正在从数据库中获取 10 行。

因此 key 将是 0-9rand 应该在 0-9 之间生成数字。尝试 -

$deger = rand(0, 9);

并尽量避免使用 mysql。现在已弃用。

php中的数组索引是从零开始的,也就是说,一个有 10 个元素的数组将它们索引为 [0] 到 [9]。将 $degar 的初始化更改为

$degar = rand(0, 9);

你应该消除错误。