Autor Zpráva
Gregi
Profil *
Ahoj, potýkám se teď s menším "problémem". Resp. nevím jak je nejlepší postavit tabulky pro následné vyhledávání. Budu mít všechny kraje a danej obchod může být ve více krajích. Co je lepší. Mít tabulku a v ní:
id, popis, logo, praha, stredni, plzensky, karlovarsky.
Nebo pro to mít tabulku:
id, popis, logo
A k ní kraje_zarazeni. A tam nějak asi takto: id, obchod_id, kraj_id. Ale potom nevim jak přesně by mělo být dělané vyhledávání. Díky za odpovědi.
Tomáš K.
Profil *
Pracuješ s kraji, obchody. Mezi tím je vztah 1:N - obchod je v 1 kraji, v kraji leží N obchodů. Toto se převádí na tabulky
kraj(id, nazev) 
obchod(id, kraj_id, adresa, logo, popis, ...)
Tomáš K.
Profil *
Nečtu pozorně - minulá varianta je pro situaci, kdy obchod je v jednom kraji - v tvém zadání říkáš, že obchod je ve více krajích. V tom případě je to jinak:
Vztah je N:N, což znamená tři tabulky:
kraje(id, nazev)
kraje_obchody(id, kraj_id, obchod_id)
obchody(id, popis, logo)
aa
Profil *
http://cs.wikipedia.org/wiki/3NF
Gregi
Profil *
Dík. Ještě dotaz. Jak to udělat v administraci? Vkládání dělam následně:
  
$obchod_id=mysql_insert_id();
  for($kraj=1;$kraj<=14;$kraj++){
   if($_POST['kraj'][$kraj]!=""){
    $vlastnosti_db[] = "('".$_POST['kraj'][$kraj]."', '$obchod_id')";
   }
  }
  mysql_query("INSERT INTO obchod_firmy (kraj_id, obchod_id) VALUES ".implode(", ", $vlastnosti_db))) or die(mysql_error());

Ale jak to mám udělat při upravování? Je mi jasné že to budu projíždět přes foreach, ale nevim jak udělat výpis a následně jak správně udělat podmínky u foreach. Díky za pomoc
Kajman_
Profil *
Např. stejný insert jen s ignore, který dá jen nové a díky klíči se budou ignorovat ty, co tam už jsou. A pak promazat ty, co tam nemají být...

delete ... where kraj=1 and obchod not in (seznamobchodu)
Gregi
Profil *
Úplně jsem tě nepochopil, ale je velká prasárna, když při editaci vymažu všechny řádky, který se týkaj danýho obchodu a následně tam znovu vložim jen ty, co jsou zaškrtnutý?
Kajman_
Profil *
Taky možnost :-)

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:

0