第34行php上的未定义变量

时间:2013-12-14 17:27:25

标签: php html database

我的代码:

<?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

问题是,在朋友的计算机中,相同的代码正常工作,具有相同的东西。

3 个答案:

答案 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