Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Пропадают значения переменной


Автор: wer_wolf 5.8.2007, 18:47
Люди помогите с такой бедой я только начинаю разбираться с PHP и вот такой вопрос есть такой код
Код

$db = mysql_connect("127.0.0.1", "root","111");
mysql_select_db("comp",$db);
$result = mysql_query("SELECT *
FROM comp_comp c, comp_hard co, comp_soft com, comp_lan comp
WHERE c.idcomp_comp='$idcomp' and c.idcomp_comp=co.idcomp_comp
  AND c.idcomp_comp=com.idcomp_comp  AND
c.idcomp_comp=comp.idcomp_comp",$db);
//$row_comp = mysql_fetch_array($result); 
$array_ip = array();
$i=0;
while ($row_comp = mysql_fetch_array($result))
{
$array_ip[i]=$row_comp[lan_ip];
print $row_comp[comp_lanName];
$i++;
}
//print $array_ip[0];
//print $row_comp[comp_group];
   print "
    <table width=653 border=1>
      <tr>
        <td width=187>оПЧЕТ ДПЗПЧПТБ: </td>
        <td width=450>
          <input type=text name=hcomp_contr size=30>
        </td>
      </tr>
      <tr>
        <td width=187>NetBios йНС</td>
        <td width=450>
          ".$row_comp[comp_lanName]."
        </td>
      </tr>
...

Дело в том что в базе в таблице comp_lan может быть несколько записей на один idcomp
поэтому решил сначала в цикле в массив выбрать все значения а потом уже заполнять страницу
но как только выхожу из цикла массивы $row_comp и $array_ip оказываються пустыми если в while вставить принт то вижу что значения с базы выбраны правельно а когда пишу принт за скобкой While то массивы уже постые подскажите где  я тормажу????

Автор: aktuba 5.8.2007, 18:56
когда ты выходишь из цикла, указатель на текущий элемент $row_comp и $array_ip указывают за последний элемент, которые конечно пустой.

Автор: wer_wolf 5.8.2007, 19:04
Спасибо а можеш подсказать как избежать этого?
И такой вопрос когда я обращаюсь к элементу массива $array_ip[1] разве это не говорит что нужно выбрать второй элемент массива если да то почему и он оказываеться пустым?

Автор: WIPS 5.8.2007, 23:57
По моему дело в том, что ты забыл "$" перед "i". Пробуй так:
Код

while ($row_comp = mysql_fetch_array($result))
{
 $array_ip[$i++] = $row_comp[lan_ip];
 print $row_comp[comp_lanName];
}

Автор: aktuba 6.8.2007, 00:11
Цитата

По моему дело в том, что ты забыл "$" перед "i"


Верно. Я как-то просмотрел...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)