rebuilder Posted October 1, 2010 Report Share Posted October 1, 2010 (edited) Ir forma, ar kuru pievieno informāciju mysq db tabulā. Ir vairākas sadaļas, kurās info tiek pievienots. Īsi sakot, tabulā ailītē menu tiek ielikts sadaļas id un pēc tam attiecīgi visi dati katrā sadaļā pēc šī id tiek izvilkti. Sadaļas, kurās tiek ievietoti dati, tiek izvēlēti ieliekot ķeksīti. Pašlaik esmu izveidojis, ka vienlaicīgi var ielikt tikai vienu rakstu vienā sadaļa. Bet doma ir nomainīt input type no radio uz checkbox, lai varētu ievietot vairākās sadaļās uzreiz. Bet nespēju izdomāt kā visus datus ievietot tabulā n reizes (kur n ir izvēlēto sadaļu skaits), ar tiem pašiem datiem tikai citu menu vērtību. Ceru domu uztvērāt. Edited October 1, 2010 by rebuilder Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted October 1, 2010 Report Share Posted October 1, 2010 (edited) tev vajag 2 tabulas 1 tabula = pati informacija id | informacija | 2 tabula = kuras sadaljas ta informacija pieder .. id | 1_tabulas_id | sadaljas _id | piemeram: 1 tabula: 1 | kautkadi dati | 2 | dati vel | 2 tabula: 1 | 1 | menu_1 | 2 | 1 | menu_2 | 3 | 2 | menu 1 | 4 | 2 | menu 99999| Edited October 1, 2010 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
rebuilder Posted October 1, 2010 Author Report Share Posted October 1, 2010 Tabulas man ir divas! Tu neuztvēri domu... ;) Man vajag pievienot informāciju uzreiz vairākās sadaļās reizē. Respektīvi atķeksēju, ka vēlos ielikt sadaļā 1, sadaļā 2. Un man tiek ielika informācija tabulā 2x ar to pašu informāciju t.i 1. gadījumā informācijas laukā iet informācija, menu laukā iet 1.sadaļas id un otrā gadījumā informācijas laukā visa informācija tā pati, tikai menu laukā 2.sadaļas id. Man ir neskaidrs jautājums, kā izpildīt vaicājumu tik reizes, cik cik sadaļās es esmu ieķeksējis un katrā vaicājumā ielikt jaunu menu lauka vērtību. Quote Link to comment Share on other sites More sharing options...
Code Posted October 2, 2010 Report Share Posted October 2, 2010 Uzbūvē steitmentu atkarībā no atzīmētajiem bokšiem. Izveido sākuma stringu: $sql = "INSERT INTO tabula (teksts, menu) VALUES "; Tad ej cauri visiem tiem čekbokšiem. Ja kāds ir atķeksēts, tad pieliec stringam klāt vērtības: $sql .= "($teksts, $konkrētais_menu)"; Tikai, ja ir atķeksēts vairāk par vienu čekboksi, tad nākamās rindiņas jāatdala ar komatu (sintakses prasība): $sql .= ",($teksts, $konkrētais_menu)"; Beigās vienkārši - mysql_query($sql) Quote Link to comment Share on other sites More sharing options...
codez Posted October 2, 2010 Report Share Posted October 2, 2010 rebuilder, nē, tu nesaprati Grey_Wolf Tabula:INFO - šeit glabāsies ieraksti ar informāciju. Katrai informācijai viens ieraksts ----------- ID DATI Tabula:MENU - šeit glabāsies menu ----------- ID NAME Tabula:MENU_INFO - šeit glabāsies kuros menu ir ielikta kura informācija ------- MENUD_ID INFO_ID Kad, piemēram, tev ir jauna info, tu to vienreiz ievieto tabulā INFO, bet tik cik sadaļām vajag pievienot, tik reizes tabulā MENU_INFO Piem: INSERT INTO `info` SET `dati`='kaut kādi dati'; ar insert_id() izvelc pēdējo inserta ID $last_id=mysql_insert_id(); un tad, piemēram, tev vajag pievienot šo info pie menu 2,5,7, tad raksti: INSERT INTO `menu_info` (menu_id,info_id) VALUES (2,$last_id),(5,$last_id),(7,$last_id) Tagad, ja vēlies, piem., izvilkt 3 menu visus atbilstošo ierakstu, raksti SELECT * FROM menu_info t1 LEFT JOIN info t2 ON t1.info_id=t2.id WHERE t1.menu_id=3 Tagad, ja tev vajag palabot kādu informāciju, tad to tu dari vienā, atbilstošajā ierakstā INFO tabulā, nevis N ierakstos. Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted October 2, 2010 Report Share Posted October 2, 2010 Respektīvi atķeksēju, ka vēlos ielikt sadaļā 1, sadaļā 2. Un man tiek ielika informācija tabulā 2x ar to pašu informāciju Man ir neskaidrs jautājums, kā izpildīt vaicājumu tik reizes, cik cik sadaļās es esmu ieķeksējis un katrā vaicājumā ielikt jaunu menu lauka vērtību. DB javeido ta lai pamtinformcija tabula NEDUBLETOS, tas ir , ja mainas tikai 1(vai paris) lauki. --- tos kjeksbokshus veido peec sada principa <input type="chekbox" name="nosaukums[]" value="menu_id_vertiba"> katra nakamaja liekot to value ka realo menucha ID tad pie parbaudes varesi vienkarshi cikla izlaist cauri un panjemt atkjekseetas vertiibas $_POST['nosaukums'] vertib buus masiivs, kuraa buus visas atkjekseetas vertibas (menuchu ID) tos tad arii ciklaa ieraksti DB, vai arii uzbuuve SQL kveriju, un pec tam Inserto Quote Link to comment Share on other sites More sharing options...
rebuilder Posted October 2, 2010 Author Report Share Posted October 2, 2010 Skaidrs, uz vakarpusi mēģināšu realizēt to visu. Pagaidām paldies par informāciju, bet nu jādodas nobalsot. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.