Autor Zpráva
nexen
Profil *
Dobrý večer,

Mám tento kód a potřeboval bych místo if tam narvat for, ale nechce mi to fungovat, měl by někdo řešení jak to zapsat? musí tam být else {} :) díky
 
else { 
      if($main_cat_id == $cat_id_sql){ 
         echo "<li><a href='#'>".$main_sql['category_name']."</a>"; 
         echo "<ul>";
         echo "<li><a href=".$cat_name_sql.">".$cat_name_sql."</a></li>";
         echo "</ul></li>";
     }
      }
mimochodec
Profil
for v else normálně funguje. Jestli tobě ne, máš tam někde chybu. Ukaž to, co ti nefunguje.
nexen
Profil *
Snad něco vymyslíš, má to vypisovat podlinky z menu, a chtěl sem že kde je main číslo 1 aby se vypsaly všechny podlinky s číslem 1 a pak u main č 2 výpis podlinků z číslem 2 atd.. a kde je v main link něco vyplněno ať to menu vůbec nevyleze.
while($main_sql = mysql_fetch_array($menu)){
                                 
      $main_cat_id = $main_sql['category_id'];
                                 
      while($category_sql = mysql_fetch_array($category)){
                                     
                                        $cat_link_sql = $category_sql['category_link'];         
                                        $cat_name_sql = $category_sql['category_name']; 
                                        $cat_id_sql = $category_sql['category_id'];             
                                                        
      }
                                     
     if($main_sql['link'] != "") { // samotnej link
     echo "<li><a href=".$main_sql['link'].">".$main_sql['category_name']."</a></li>";                                      
     }
     else { // vyjížděcí menu
                                   if($main_cat_id == $cat_id_sql){ 
                                     echo "<li><a href='#'>".$main_sql['category_name']."</a>"; 
                                     echo "<ul>";
                                     echo "<li><a href=".$cat_name_sql.">".$cat_name_sql."</a></li>";
                                     echo "</ul></li>";
                                     }
      }
  }
nexen
Profil *
Napsal sem si to polopatě znova, funguje :)
$menu = mysql_query("SELECT * FROM main_links order by id asc");
                      
                         while($menu_sql = mysql_fetch_array($menu)){
                                 $menu_cat_id = $menu_sql['category_id'];
                                if($menu_sql['link'] != ""){
                                echo "<li><a href=".$menu_sql['link'].">".$menu_sql['category_name']."</a></li>"; 
                                }                            
                                else {
                                $category2 = mysql_query("SELECT * FROM categories where category_id=".$menu_cat_id."");    
                                echo "<li><a href='#'>".$menu_sql['category_name']."</a>";
                                echo "<ul>";
                                while ($category_sql2 = mysql_fetch_array($category2)){
                                echo "<li><a href=".$category_sql2['category_link'].">".$category_sql2['category_name']."</a></li>";                            
                                }
                                echo "</ul></li>";
                                }
                             } 
Tori
Profil
nexen:
Další možnost je využít spojování tabulek a provést to jedním dotazem + jedním cyklem. SQL:
SELECT link, category_name, category_link
FROM main_links LEFT JOIN categories ON main_links.category_id = categories.category_id
ORDER BY main_links.id, categories.category_id
V PHP si pak uložíte ID kategorie a porovnáváte s ID při dalším průchodu cyklem - pokud se liší, vypíšete nový nadpis kategorie a uložíte si to nové ID.
Viz též Nejčastější potíže s PHP (FAQ) » Nadpis skupiny nejen při výpisu z databáze

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: