Jump to content
php.lv forumi

ievietot datus tabula vairākas reizes


rebuilder

Recommended Posts

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 by rebuilder
Link to comment
Share on other sites

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 by Grey_Wolf
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...