Php &引用;“未定义的偏移量”;can';我找不到理由
我在错误中找不到未定义偏移量0的原因。我有一个数组,我给出了索引的界:/ 我是PHP+SQL新手,但我必须为学校的任务做这件事 如果我理解正确,我的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
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];
}
}
}