За последние 24 часа нас посетили 19985 программистов и 1695 роботов. Сейчас ищет 1581 программист ...

проблема с массивом.

Тема в разделе "PHP для новичков", создана пользователем Jeck111, 26 мар 2009.

  1. Jeck111

    Jeck111 Активный пользователь

    С нами с:
    27 июл 2008
    Сообщения:
    24
    Симпатии:
    0
    Адрес:
    Украина
    Здравствуйте уважаемые. Прошу Вашей помощи. Вопрос в следующем: в привиденном ниже куске кода, возникает проблема при нажатии на кнопку "Найти\ Показать", т.е условие не выполняется.., у меня почему то не записывается массив $cat, точнее присваевается, но тип получается строка. а при нажатии на "Показать все", опять получается ожидаемый мною массив, и я с ним уже дальше работаю. Почему так помогите пожалуйста. Надеюсь понятно объяснил свой непонятный вопрос. Заранее спасибо.

    Код (Text):
    1. <?php  
    2. case '3':{
    3.            
    4.             $result=mysql_query("SELECT * FROM `cat`",$db);
    5.             if ($result){
    6.                 if (mysql_num_rows($result)>0) {
    7.                     while ($myrow=mysql_fetch_array($result)) {
    8.                         $cat[$myrow['cat_id']] = $myrow['title'] .'|||'. $myrow['parent_id'];
    9.                     }
    10.  
    11.                 }
    12.             }
    13.  
    14.             ?>
    15.             <form name="search_post" action="" method="post">
    16.             <select name="cat">
    17.             <option value="" selected="selected" >Все категории</option>
    18.  
    19.             <?php
    20.                 foreach($cat as $cat_id=> $value) {
    21.                     list ($title, $parent) = explode("|||", $value);
    22.                     echo '<option value="'. $cat_id .'">'. $title .'</option>';
    23.                 }
    24.  
    25.             ?>
    26.             </select> &nbsp;&nbsp;&nbsp;&nbsp;
    27.             <input name="sear" type="hidden" value="3">
    28.              <input name="step" type="hidden" value="3">
    29.              <input type="submit" value="Найти / Показать">
    30.              </p>
    31.  
    32.             </form>
    33.             </td> <td align="right" valign="top">
    34.             <form name="all" action="" method="post">
    35.             <input name="step" type="hidden" value="3">
    36.             <input name="all" type="hidden" value="3">
    37.             <input type="submit" value="Показать все">
    38.             </form>  
    39.  
    40.             <?php
    41.             if (!isset($_POST['sear']) || isset($_POST['all'])) {
    42.                 $res= mysql_query ("SELECT * FROM `data`, `relation`, `cat` WHERE data.data_id=relation.data_id AND relation.cat_id=cat.cat_id AND cat.parent_id='0' ORDER BY `date` DESC", $db);
    43.                 if (mysql_num_rows($res)<=0) echo " В базе нет данных.";
    44.             }
    45.             else {
    46.                 $begin = "SELECT * FROM `data`, `relation`, `cat` ";
    47.                 $where = "WHERE data.data_id=relation.data_id AND relation.cat_id=cat.cat_id ";
    48.  
    49.                $end = "ORDER BY `date` DESC";
    50.                $parent = "AND cat.parent_id='0' ";
    51.  
    52.                 if ($_POST['cat']) {
    53.                     $where .= "AND cat.cat_id='". $_POST['cat'] ."' ";
    54.                     unset($parent);
    55.                 }
    56.  
    57.                $query= $begin.$where.$parent.$end;
    58.                $res= mysql_query ($query);
    59.                 if (mysql_num_rows($res)<=0) echo " В базе нет данных.";
    60.             }
    61.                echo '<table class="tadmin"="tadmin" width="100%">
    62.                         <tr bgcolor="#E7E7DE">
    63.                             <td align="center"><b>Название</b></td>
    64.                             <td align="center"><b>$</b></td>
    65.                             <td align="center"><b>Категория</b></td>
    66.                             <td align="center"><b>Подкатегория</b></td>
    67.                             <td align="center"><b>Дата добавления</b></td></tr>';
    68.                 $i=1;
    69.              while ($row= mysql_fetch_array ($res)) {
    70.  
    71.                     foreach($rel as $val) {
    72.                         list ($did, $rcid) = explode("|||", $val);
    73.                         if ($did==$row['data_id']) {
    74.                             $cid[]=$rcid;
    75.                         }
    76.                     }
    77.                     $n=count($cid);
    78.                     if(!isset($cat)) {
    79.                         foreach($cat as $ccid=> $value) {
    80.                             list ($title, $parent) = explode("|||", $value);
    81.                             for ($k=0; $k<$n; $k++) {
    82.                                 if($ccid==$cid[$k]){
    83.                                     if ($parent==0){
    84.                                         $root=$title;
    85.                                     }
    86.                                     else {
    87.                                         $subcat.=$title. ', ';
    88.                                     }
    89.                                 }
    90.                             }
    91.                         }
    92.                     }
    93.                     $subcat = substr($subcat, 0, strlen($subcat) - 2);
    94.                            
    95.                     //  ....
    96.                     // Вывод результатов....
    97.        
    98.                     unset($cid);
    99.                     unset($subcat);
    100.              }
    101.  
    102. break;
    103. }
    104. ?>
    PHP:
    1.