zirgs Posted June 8, 2006 Report Posted June 8, 2006 nu saku domat kadu lai isti taisa datubazes strukturu ja man vajag teiksim katrai zinjai komentaarus atljaut ... nu taisu piemeeram datubazi komentarizinjam bet talak, es nezinu vai taisit entos table kjip id1,id2 un tur glabaat attiec id komentaarus vai vnk vienu table kur kkaaa visi komentaari butu? kadam nav kads logjisks risinajums? paldies
Vebers Posted June 8, 2006 Report Posted June 8, 2006 (edited) Taisi divas tabulas: 1. Rakstiem 2. Komentāriem Tabulā "komentari" glabā attiecīgā raksta ID. Aptuvenā struktūra: Tabula - Raksti: RakstaID | nosaukums | bilde | teksts | autors | datums tabula - Komenti: KomentaID | rakstaID | autors | teksts | datums | ip Lai izvilktu attiecigos komentarus: SELECT k.* FROM Komenti k, Raksti r WHERE r.RakstaID = ".intval($_GET['rakstaID'])."; Edited June 8, 2006 by MakaTaNaw
Klez Posted June 8, 2006 Report Posted June 8, 2006 Lai izvilktu attiecigos komentarus: SELECT k.* FROM Komenti k, Raksti r WHERE r.RakstaID = ".intval($_GET['rakstaID'])."; a kapeec tik sarezhgiiti? SELECT * FROM Komenti WHERE rakstaID = '".intval($_GET['rakstaID'])."';
Vebers Posted June 8, 2006 Report Posted June 8, 2006 Nezinu, laikam jau uztraukums par vēstures eksāmenu (pēc 1,5h sākas) - visu vienkāršo gribas sarežģīt. By the way: Kāpēc ... rakstaID = ' ".intval($_GET['rakstaID'])." ' liec iekš single quotes, ja zināms, ka vēlamais rakstaID lauka tips ir integer ?
Grey_Wolf Posted June 8, 2006 Report Posted June 8, 2006 Vel var piebilst ka tomeer shaadi ir aatraak, bet ne labaak.. Vajag arii paarbaudi ;) if ($_GET['rakstaID']>0) { // SELECT * FROM Komenti WHERE rakstaID = ".intval($_GET['rakstaID'])."; // izvadam tos komentaarus........ } else { echo 'Komentaru naff'; }
zirgs Posted June 8, 2006 Author Report Posted June 8, 2006 (edited) paldies, tagad doma atkal rosas :) ak ja MakaTaNaw veiksmi eksaamenaa! :) Edited June 8, 2006 by zirgs
Kavacky Posted June 8, 2006 Report Posted June 8, 2006 Grey_Wolf, kāpēc man tā tava pārbaude liekas dīvaina? Neviens jau neliedz rakstu ID glabāt intervālā -783 - 666, tāpēc ID > 0 var arī nenostrādāt. Nebūtu labāk pārbaudīt, vai tāds raksts vispār eksistē ( selecto un tad mysql_num_rows == 1 ), pēc tam līdzīgi pie komentāriem - nav jau teikts, ka tādi tur vispār ir, tāpēc nočeko, vai ir kaut viens komentārs ( mysql_num_rows >= 1 ), ja ir, tad raksta, ja nav, tad paziņo, ka tukšs. A un par eksāmeniem nav ko stresot, tie tāpat taisīti, lai arī muļķi var nolikt.
Grey_Wolf Posted June 8, 2006 Report Posted June 8, 2006 Kavacky --> es tik to kaa piemeeru... ar domu ka parbaudi vajaag kaa taadu... protams IR japarbauda vai komentaari ir vispaar.. jo useris jau var caur GET padot nez ko.... Un par tiem intervaaliem -222 -111 nu teikshu atklaati taa.... parasti jau gan ID veido ar automaatiski un izmanto pozitiivus Integer ;) taa kaa saada parbaude nebuut nav taa sliktaakaa... + sakumaa var parbaudiit vai vispaar ir padots ID un tik tad parbaudiit/ chekot DB...
hmnc Posted July 5, 2006 Report Posted July 5, 2006 ja vajag saskaitīt komentārus tad ir divi veidi kā to vislabāk izdarīt: 1. pie rakstu tabulas piemetam vienu ailīti klāt - comment_count. un tur attiecīgi metam/dzēšam aktuālo komentāru skaitu 2. veidojam tabulu comment_count ar attiecīgām kolonnām: raksta_id:comment_count. un tad ar attiecīgu lefjoinu visu velkam ārā. pirmais veids ir mazāk advancēts, ja komentāri ir tikai vienai tabulai. otrais veids vairāk advancēts, ja komentāri ir vajadzīgi vairākām atsevišķām tabulām un katrai ir slinkums taisīt comment_count kolonnu. vienīgi tad vēl vajag pie tās comment_count tabulas piemest kolonnu kādi ir tie komentāri (attiecīgi kas par tabulu). tālūk! p.s. un neaizmirstam visu noindeksēt smuki :)
Recommended Posts