【发布时间】:2017-08-06 22:36:33
【问题描述】:
我有一个变量在我的项目中无法识别,但它已正确删除。这是我的文件的规格。我有一个这样的 index.php 控制器:
try {
$sql = 'SELECT costi.id, costo, descrizione, categoria FROM costi INNER JOIN categorie ON id_categoria = categorie.id';
$result = $pdo->query($sql);
} catch (PDOException $e) {
$error = 'errore nel recupero del dato '. $e->getMessage();
include 'error.html.php';
exit();
}
//FOREACH
foreach ($result as $row) {
$costi[] = array(
"id"=>$row['id'],
"costo"=>$row['costo'],
"descrizione"=>$row['descrizione'],
"categoria"=>$row['categoria']
);
}
include 'review.html.php';
这里是 review.html.php:
<?php foreach($costi AS $costo): ?>
<table style="width:40%">
<form action="?cancella_costo" method="POST" >
<tr>
<th class="a"><p class="inline"><?php echo htmlspecialchars($costo['descrizione'], ENT_QUOTES, 'UTF-8'); ?></p></th>
<th class="a"><p class="inline"><?php echo htmlspecialchars($costo['costo'], ENT_QUOTES, 'UTF-8'); ?> </p></th>
<th class="a"><p class="inline"><?php echo htmlspecialchars($costo['id_categoria'], ENT_QUOTES, 'UTF-8'); ?> </p></th>
<th class="none"><input type="hidden" value="<?php echo $costo['id'] ?>" name="id"></th>
<th><input type="submit" value="cancella"></th>
<!-- <th><button name="action" value="update">Modifica</button></th> -->
</tr>
</form>
</table>
<?php endforeach ?>
我还有一个带有两个表的数据库:“costi”和“categorie”,它们的结构如下:
成本:https://imgur.com/a/56utE 分类:http://imgur.com/9iMHfYm
我的问题是在我的 index.php 中声明并在我的 review.html.php 中使用的 $costi 变量。在最后一个文件中,我得到了这个错误:
Notice: Undefined variable: costi in /Applications/MAMP/htdocs/provePhp/myWallet 2/app/review.html.php on line 24
Warning: Invalid argument supplied for foreach() in /Applications/MAMP/htdocs/provePhp/myWallet 2/app/review.html.php on line 24
有人知道为什么吗? 变量声明了,为什么不识别?
【问题讨论】:
-
在哪里声明的?你做了
$costi = array();吗? -
在 PHP 中,从技术上讲,您不需要在尝试向其添加数组元素之前声明变量。但这通常会导致问题。我怀疑您的问题是该变量从未在您的 foreach 循环中动态声明,因为
$result为空。尝试var_dumping 看看它是否包含您所期望的内容。 -
你能给我举个例子吗?我没有得到我必须做的事情。
标签: php variables undeclared-identifier