artfiction Posted August 8, 2006 Report Share Posted August 8, 2006 Situācija tāda: Ir saits, kurā ir 6 nodaļas un zem katras nodaļas ir 2-8 apakšnodaļas, piemēram, šokolāde (ar krējumu, ar pienu), saldējums (vafeļu, uz kociņa) utt. Vēlos saitu veidot 3 valodās (LV, RU, EN). Nevaru izdomāt kāds būtu ērtāk un efektīvāk taisīt navigāciju, varbūt varat ieteikt. Šobrīd skatot cauri visus topicus šajā nodaļā, uztaisīju sekojošu tabulu savām kategorijām: id | nosaukums_lv | nosaukums_en | nosaukums_ru | parent | nodala | links 1 | saldejums | ice cream | marozenoe | 0 | 1 | icecream.php 2 | -vafeļu | -waffle | -vafelnij | 1 | 1 | vafice.php Un tad lapās ievietoju <?php $result = @mysql_query('SELECT * FROM kategorijas WHERE parent LIKE "1" AND nodala LIKE "1" ORDER by id '); ... echo ' <tr><td height="38" background="../images/vizualais/norades.gif"><a href="http://www.saldumi.lv/lat/'.$rows['links'].'" class="sadalulinki">'.$rows['nosaukums_lv'].'</a> </td></tr>'; Šobrīd līdz ar to arī sanāk, ka jāseivo jaunas php lapas katrai nodaļai un apakšnodaļai, bet tā kā apakšnodaļās iegūstamā informācija ir identiska tikai teksts mainās, bet lauki no citas tabulas tie paši, tad varbūt varat ieteikt labāku veidu? Citādi tagad sanāk, ka, ja mainās apakšnodaļa, tad man papildus datubāzes rindiņas dzēšanai vēl caur ftp jāiet un jādzēš palikušais fails. Liels Paldies Jau iepriekš! Link to comment Share on other sites More sharing options...
Aleksandrs Posted August 8, 2006 Report Share Posted August 8, 2006 Diezgan sarežģīti un neerganomiski sataisīts manuprāt. Ieteikumi: 0. SELECT * FROM vajadzētu rakstīt kā 'SELECT `nosaukums_'.$pashreizeja_valoda.'`,`links` 1. WHERE parent LIKE "1" vajadzētu WHERE parent=1 2. Par saturu, ir tāda lietā kā include(), tad varam uztaisīt menu.php, bottom.php, top.php un katrā icecream.php salikt: include('top.php'); .. include('menu.php'); .. include('bottom.php'); Vai arī taisīt visu vienā failā saturs.php?id=1 un visu saturu glabāt datubāzē, atbilstoši savai kategorijai. 3. Ieteikums, valodas glabāt vienā tabulā, jo apakškategorijām arī vajadzēs katru savā valodā. Link to comment Share on other sites More sharing options...
v3rb0 Posted August 8, 2006 Report Share Posted August 8, 2006 es taisītu divas tabulas [objects] id parent nodala links un tulkojumiem [translation] object_id lang translation Link to comment Share on other sites More sharing options...
Delfins Posted August 8, 2006 Report Share Posted August 8, 2006 daudz reizes apspriests un internetā papilns koncepciju.. Es pieturos pie: Languages: langid | name | shortname Categories: catid | name | parentcatid | fielname ... etc CategoriesNames: catid | langid | name Link to comment Share on other sites More sharing options...
Blitz Posted August 8, 2006 Report Share Posted August 8, 2006 Es taisiju taa: izveleto valodu saglabaju sesijaa, un pie katras datu izvilksanas. $lang=$_SESSION['lang']; switch ($lang) { case "lv": $nos_col="NOSAUKUMS"; break; case "ru": $nos_col="NOSAUKUMS_RU"; break; } $result=mysql_query("SELECT $nos_col FROM TABULA", $handle_db); Link to comment Share on other sites More sharing options...
Delfins Posted August 8, 2006 Report Share Posted August 8, 2006 Blitz, un ja vajag operatīvi pievienot valodu? Jāalterē visa DB.. jāparraksta kods nedaudz (tomēr maz, bet tāpat laiku aizņem) Link to comment Share on other sites More sharing options...
R21vo Posted August 8, 2006 Report Share Posted August 8, 2006 Jau kādu brīdi pieturos pie varianta ka ieraksti atkārtojas, tik ar dažādiem valodas kodiem: nosaukums | valodas_kods1 | parent | ... nosaukums | valodas_kods2 | parent | ... un veidojot navigaacijas laboshanu atlasu katru valodu atsevishkji (līdz ar to navigācija dažādām valodām var atšķirties). Link to comment Share on other sites More sharing options...
Delfins Posted August 8, 2006 Report Share Posted August 8, 2006 Navigācija var būt dažāda... 1.) kategorijas (1:1) 2.) saturs (dažāda) ... Tā kā konkrētā situācijā jāizvēlas konkrēts datu glabāšanas mehānisms. Bet noteikti ne "ar kolonnām"... Link to comment Share on other sites More sharing options...
lame Posted August 8, 2006 Report Share Posted August 8, 2006 Blitz: Sesijā likt valodu - nu būs interesanti, kad kāds teiksim vienā valodā(RU) kaut ko atrod un nosūta linku draugam, bet lapas default valoda ir LV... Tas pats, ja gribi vienlaicīgi satigāt pa abu valodu versijām. Es teiktu, ka valodas mainīgo labāk urlī iekšā. Link to comment Share on other sites More sharing options...
artfiction Posted August 9, 2006 Author Report Share Posted August 9, 2006 Gribēju izmēģināt sekojošu variantu, bet visu laiku met laukā erroru. No menu.php atnāk adrese, piemēram, "http://www.manalapa.lv/lat/lapa.php?ident=2! <? include ("top.php"); ?> <tr> <? include ("menu.php"); ?> <td width="542" valign="top"> <?php $result = @mysql_query('SELECT ident, links FROM kategorijas WHERE ident like '.$ident.''); if (@mysql_query($result)) { echo (include ($links)); } else { echo(mysql_error()); } ?> <? include ("footer.php"); ?> Taču izmet laukā sekojošu erroru: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #8' at line 1 Nu nesaprotu, kas tas par Resource id#8? Kur ir kļūda, njeponjatka! Link to comment Share on other sites More sharing options...
v3rb0 Posted August 9, 2006 Report Share Posted August 9, 2006 * priekš kam tev template ja tajā raksti kveriju datubāzei? * kāpē raksti šitā mysql_query(mysql_query('SELECT ident, links FROM kategorijas WHERE ident like '.$ident.'')) un brīnies par resource id#8 ? Link to comment Share on other sites More sharing options...
artfiction Posted August 9, 2006 Author Report Share Posted August 9, 2006 nja, jo dzilak ieksa, jo lielaka pakaļā (:sick) Varbūt kāds var ieteikt resursu, kas tiešām ir palīdzējis (kur var saprast notiekošo) saistībā ar šito. Zinu, ka google ir daudz viņu, bet kas tieši jums liekas labākais! Citādi - jau trešo dienu pa šito lietiņu skatos un mēģinu šo to un kad jau liekas, ka nu tūlīt būs, uzmet īpašo "resource id#8". PALDIES! Link to comment Share on other sites More sharing options...
artfiction Posted August 9, 2006 Author Report Share Posted August 9, 2006 * kāpē raksti šitāmysql_query(mysql_query('SELECT ident, links FROM kategorijas WHERE ident like '.$ident.'')) un brīnies par resource id#8 ? a kā iesaki rakstīt, lai nebūtu tā resource id#8? Un no kā viņš vispār rodas? Link to comment Share on other sites More sharing options...
Delfins Posted August 9, 2006 Report Share Posted August 9, 2006 rodas no līka koda... Link to comment Share on other sites More sharing options...
v3rb0 Posted August 9, 2006 Report Share Posted August 9, 2006 pietiek ar vienu mysql_query() http://lv.php.net/mysql_query pasties ko f-ja atgriež un ko gaida pa argumentu. Link to comment Share on other sites More sharing options...
Recommended Posts