我的代码:
<?php
include("funcoes.php");
?>
<HTML>
<HEAD>
<META charset = "UTF-8">
<TITLE>Menu</TITLE>
</HEAD>
<BODY>
<center>
<form method="POST" >
Marca: <input type="text" name="marca"></a><BR>
Preço: <input type="number" name="preco"></a><BR>
Polegadas: <input type="number" name="tamanho"></a><BR>
Tipo de Tela: <select name="tipoTela">
<option value="1"> LED</option>
<option value="2"> LCD</option>
<option value="3"> Plasma</option>
<option value="4"> CRT</option>
<option value="5"> DLP</option>
</select> <BR><BR>
Formato: <select name="formato">
<option value="1"> Convencional</option>
<option value="2"> Widescreen(HD)</option>
</select> <BR><BR>
Fabricante: <select name="fornecedor">
<? $fornecedores = buscarFornecedores();
foreach ($fornecedores as $fornecedores) { ?>
<option value="<? echo $fornecedores; ?>">
<?php echo $fornecedores; ?> //linha 34
</option>
<? } ?>
</select>
</form>
<center>
</BODY>
</HTML>
功能:
function buscarFornecedores (){
echo "oi1";
$qry = "SELECT * FROM public.fornecedor";
$result = pg_query($qry) or die("Cannot execute query: $qry\n");
while($row = pg_fetch_object($result)){
$fornecedores[] = $row;
}
return $fornecedores;
}
错误是这样的:
未定义的变量:第34行/var/www/cadastro.php中的fornecedores
问题是,在朋友的计算机中,相同的代码正常工作,具有相同的东西。
答案 0 :(得分:2)
在开始向其中添加项目之前,您需要将变量定义为数组:
function buscarFornecedores (){
$fornecedores = array();
....
在PHP中,除非使用global
关键字,否则变量仅限于其内部定义的函数。 More info on that here
当您尝试从函数的返回值中分配$fornecedores
时,您还需要在全局范围内定义它,然后再将项目作为数组添加到其中。
答案 1 :(得分:0)
你的foreach循环说
foreach($fornecedores as $fornecedores) {}
您对结果列表的元素使用相同的变量名称。
答案 2 :(得分:0)
当我在ubuntu中重新启动postgres和apache时,此错误已得到修复。 谢谢你的回答。你找到了我没见过的错误。 = d