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

时间:2015-12-01 06:07:58

标签: php mysql arrays undefined offset

<?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的问答游戏是什么?如果用户发送b,则说“是”!&#39;其他正确答案是&#39; b&#39; php说

  

注意:未定义的偏移量:第19行的20 - 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>
  

当用户发送答案程序时检查并询问新问题和   是或否在新页面上显示我正在使用cookie

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

2 个答案:

答案 0 :(得分:2)

10开始,$i未设置为0。并且您从数据库中获取10行。

所以key s将是0-9rand应生成0-9之间的数字。试试 -

$deger = rand(0, 9);

尽量避免使用mysql。它已被弃用。

答案 1 :(得分:0)

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

$degar = rand(0, 9);

你应该摆脱错误。