Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php &引用;“未定义的偏移量”;can';我找不到理由_Php_Html_Sql_Arrays - Fatal编程技术网

Php &引用;“未定义的偏移量”;can';我找不到理由

Php &引用;“未定义的偏移量”;can';我找不到理由,php,html,sql,arrays,Php,Html,Sql,Arrays,我在错误中找不到未定义偏移量0的原因。我有一个数组,我给出了索引的界:/ 我是PHP+SQL新手,但我必须为学校的任务做这件事 如果我理解正确,我的get\u searched\u grad函数将返回数组的数组 错误出现在我访问$grd数组$grd[someNumber] <?php foreach (get_searched_grad($search_key) as $grd) { ?> <tr> <th> <?php

我在错误中找不到未定义偏移量0的原因。我有一个数组,我给出了索引的界:/ 我是PHP+SQL新手,但我必须为学校的任务做这件事

如果我理解正确,我的
get\u searched\u grad
函数将返回数组的数组

错误出现在我访问
$grd
数组
$grd[someNumber]

<?php
  foreach (get_searched_grad($search_key) as $grd) {
?>
  <tr>
    <th>
      <?php
        $grd[0];
      ?>                         
    </th>
    <th>
      <?php
        $grd[1];
      ?>                         
    </th>
    <th>
      <?php
        $grd[2];
      ?>                         
    </th>
    <th>
      <?php
        $grd[3];
      ?>                         
    </th>
  </tr>

<?php
  }
?>
一些变量和表行名称是塞尔维亚语:)很抱歉

array(2){
    [
        0
    ]=>array(4){
        [
            "NAZIV_GRADA"
        ]=>string(7)"Beograd"[
            "PTT"
        ]=>string(5)"11000"[
            "BROJ_STANOVNIKA"
        ]=>string(6)"400000"[
            "NAZIV_DRZAVE"
        ]=>string(6)"Srbija"
    }[
        1
    ]=>array(4){
        [
            "NAZIV_GRADA"
        ]=>string(9)"Zrenjanin"[
            "PTT"
        ]=>string(5)"23000"[
            "BROJ_STANOVNIKA"
        ]=>string(5)"12000"[
            "NAZIV_DRZAVE"
        ]=>string(6)"Srbija"
    }
}

这很可能意味着数据库没有返回任何结果。要检查这一点,可以使用仅当范围中存在变量且不为null时才返回true的方法。它也适用于数组下标

如果我们有一个数组:

$data = array(
  'stack' => 'overflow'
);
我们并不总是确定数组中是否存在一个键,因此要知道,您需要在带有下标的数组上调用isset

if(isset($data['stack'])) {
  echo $data['stack'];
} else {
  echo 'stack was not a key inside the data array';
}
您的方法可以使用一些重分解。我假设您正在尝试通过执行
!=0
语句。检查字符串是否为空或null的更好方法是:

if( isset($searchword) && strlen($searchword) > 0) {
  // at this point we have at least one character to search for.
}
您使用的是一个数组,因此需要遍历这两个数组。最后,回答你的问题。您需要将实现更改为:

$data = get_searched_grad($search_key);
for($i = 0; $i < count($data) $i++) {
  $row = $data[$i];
  echo $row['NAZIV_GRADA'] . "<br />";
  echo $row['PTT'] . "<br />";
  //...
}
$data=get\u search\u grad($search\u key);
对于($i=0;$i”;
echo$row['PTT']。“
”; //... }
您的var转储显示

array(2) {
  [0]=> array(4) { 
             ["NAZIV_GRADA"]=> string(7) "Beograd" 
             ["PTT"]=> string(5) "11000" 
             ["BROJ_STANOVNIKA"]=> string(6) "400000" 
             ["NAZIV_DRZAVE"]=> string(6) "Srbija" 
   } 
   [1]=> array(4) { 
             ["NAZIV_GRADA"]=> string(9) "Zrenjanin" 
             ["PTT"]=> string(5) "23000" 
             ["BROJ_STANOVNIKA"]=> string(5) "12000" 
             ["NAZIV_DRZAVE"]=> string(6) "Srbija" 
   } 
}
所以你应该做点什么

$data = get_searched_grad($search_key) ;
foreach ($data as $grd) {
                    ?>
                    <tr>
                        <th> <?php
                            $grd["NAZIV_GRADA"];
                            ?>                         
                        </th>
                        <th> <?php
                            $grd["PTT"];
                            ?>                         
                        </th>
                        <th> <?php
                            $grd["BROJ_STANOVNIKA"];
                            ?>                         
                        </th>
                        <th> <?php
                            $grd["NAZIV_DRZAVE"];
                            ?>                         
                        </th>
                    </tr>

                    <?php
                }

请发布整个错误消息
var\u dump(get\u search\u grad($search\u key))
表示什么?
$grd[0]在某些情况下不存在?@Yang整个错误消息是注意:C:\xampp\htdocs\SeminarskiGrad\pretraga.php中的未定义偏移量:063@AbhikChakrabortyvar_dump返回:
array(2){[0]=>array(4){[“NAZIV_GRADA”]=>string(7)“Beograd”[“PTT”]=>string(5)“11000”[“BROJ_STANOVNIKA”]=>string(6)“400000”[“NAZIV_DRZAVE”]=>string(6)“Srbija”}[1]=>array(4){[“NAZIV_GRADA”]=>string(9)“Zrenjanin”[“PTT”]=>string(5)“23000”[“BROJ_STANOVNIKA”]=>string(5)“12000”[“NAZIV DRZAVE”]=>string(6)“Srbija”}
但var\u dump返回:
array(2){[0]=>array(4){“NAZIV_STANOVNIKA”=>string(7)“ptbeognika”[>11000”=>(6) “400000”[“NAZIV_DRZAVE”]=>string(6)“Srbija”}[1]=>array(4){[“NAZIV_GRADA”]=>string(9)“Zrenjanin”[“PTT”]=>string(5)“23000”[“BROJ_STANOVNIKA”]=>string(5)“12000”[“NAZIV_DRZAVE”]=>string(6)“Srbija”}
这不意味着我实际上有两个数组(大小为4),当我用foreach获取它们时,我会得到“$grd”数组(4)?
$data = get_searched_grad($search_key) ;
foreach ($data as $grd) {
                    ?>
                    <tr>
                        <th> <?php
                            $grd["NAZIV_GRADA"];
                            ?>                         
                        </th>
                        <th> <?php
                            $grd["PTT"];
                            ?>                         
                        </th>
                        <th> <?php
                            $grd["BROJ_STANOVNIKA"];
                            ?>                         
                        </th>
                        <th> <?php
                            $grd["NAZIV_DRZAVE"];
                            ?>                         
                        </th>
                    </tr>

                    <?php
                }
your_array[0][0]
your_array[0][1]
        etc and this will fail since its an associative array.
foreach(get_searched_grad($search_key) as $grd) {
    if(is_array($grd)) {
        foreach($grd as $key => $value) {
            echo $grd[$key];
        }
    }
}