Autor Zpráva
cheffreelancer
Profil *
Dobrý den
Chtěl bych při vytváření kategorie aby si uživatel mohl vybrat buď aby kategorie byla hlavní a nebo byla podkategorií, a při editaci kategorie aby si mohl vybrat jen hlavní kategorie do kterých by ji chtěl popřípadě přesunout a nemohl si vybrat tu samou kategorii kterou edituje. Zkoušel jsem první fázy udělat takto:
function CategorySelectList(){
    $select_kategorie = "";
    $id=NULL;
    $sql=mysql_query("SELECT * FROM `rubriky` WHERE `parent`='$id'") or die (mysql_error());
    while($obsah = mysql_fetch_array($sql)){
    $select_kategorie .= '<option value="'.$obsah['id'].'">'.$obsah['id'].' - '.$obsah['name'].'</option>';
    }    
    return $select_kategorie;
    
}

tu druhou fázy chci mít ve stejné funkci, říkal jsem si že bych to pak vypodmínkoval, ale nevím kde zde mám problém protože se mi nic neukáže. jinak v databázi mám tabulku takto id (doplni se automaticky), parent (NULL je hlavní kategorie, ostatní jsou podkategorie), name (název kategorie). Děkuji za každou vaši radu!
juriad
Profil
Rozlišuj v databázi NULL a 'NULL'. První má význam nevyplněné/chybějící hodnoty, druhé je řetězec skládající se ze čtyř znaků N, U, L, L.
A je mezi nimi sakra rozdíl.

Pokud do databáze pokládáš dotaz a v podmínce máš číselný sloupec, neporovnávej jeho hodnotu s řetězcem.
"SELECT * FROM `rubriky` WHERE `parent`=$id"

Pokud porovnáváš s hodnotou NULL, musíš použít operátor IS místo rovná se. Například `parent` IS NULL


Ta funkce navíc dělá dvě věci najednou (pokládá dotaz a z výsledku generuje <select>. Rozděl to, tím si oddělíš práci s daty od jejich prezentace (zobrazení).

Tady byla funkce, ve které jsem měl chybu, opravená a rozšířená verze je zde

function GenerateCategorySelect($categories, $name, $id='', $class='') {
  $select = '';
  $select .= '<select name="'.$name.'"';
  if(!empty($id)) {
    $select .= ' id="'.$id.'"';
  }
  if(!empty($class)) {
    $select .= ' class="'.$class.'"';
  }
  $select .= '>';
  
  foreach($categories as $category) {
    $select .= '<option value="'.$category['id'].'">'.$category['id'].' - '.$category['name'].'</option>';
  }

  $select .= '</select>';
}
cheffreelancer
Profil *
juriad:
Děkuji moc za vaši radu:) ihned vyzkouším.

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: