ugrás a tartalomhoz

Tervezési segítség

unregistered · 2013. Ápr. 9. (K), 16.10
Sziasztok!

Ismerkedek az összetettem adatbázisok készítésével és gondoltam önszorgalomból és gyakorlásnak létrehozok a kollégáknak (és persze magamnak is) egy olyan oldalt ahova bizonyos lépéssort követve vehetik fel a munka infóit hogy egymást segítsük és ne maradjon ki info.

A tervezésnél elakadtam, mert nem nagyon vagyok jártas változó táblájú adatbázisokban. Eddig csak olyanokat csináltam ahol fix volt a tábla, például volt egy tábla abban volt fixen három oszlop és ebben tárolni és módosítani az adatokat nem nagy cucc, de itt most nem igazán találom a megoldást.

Kis magyarázat az elképzelésemről

Tehát az az elképzelésem, hogy bárki létrehozhat sablon listákat amik a munkával kapcsolatos lépésekből állnak hogy biztosan ne felejtődjön el semmi. Ha úgy tetszik ez egy kommentelhető "todo" lista, aminek a pontjai törölhetőek és módosíthatóak (egy oszlop törlése esetén nem baj ha a hozzá tartozó rekordok elvesznek).

Egy munkatárs létrehoz egy listát például: "Tervezési folyamat" néven.
Ebbe belepakol pontokat például:
1. pont: Végy egy papírt.
2. pont: Rajzolj.
3. pont: Küld el Sanyinak.

Ezekhez a pontokhoz mindenki írhat megjegyzést amikor kitölt egy ilyen listát (és biztosan minden ponthoz írni fog valaki valamit, mert nem ilyen egyszerű pontok lesznek)

A problémáim:

1. Ugye a legkézenfekvőbb az lenne hogy létrehozhatnánk egy "Tervezési folyamat" táblát, majd abba olyan oszlopot hogy "Végy egy papírt", "Rajzolj", stb, de ezzel az a baj hogy ilyen ékezetes, meg netalántán nagyon hosszú tartalmakat nem lehet cellának adni, na meg az sem világos számomra hogy ha valaki változtat valamelyik oszlop nevén akkor azt hogy kezelem le... beolvastatom a tábla oszlopait egy tömbbe és azon lépkedek végig az "insert into" parancsnál?

2. ekkor azt találtam ki hogy lesznek olyan tábláim mint például "listak", "pontok", "megjegyzesek". Ekkor amikor létrehoz valaki egy listát akkor egy egyedi azonosítóval elmentésre kerül a lista neve. Utána ha létrehoz egy pontot akkor ahhoz hozzárendelődik a lista azonosítója és elmentődik a pont elnevezésével a pontok táblában, majd itt is kap egy egyedi azonosítót és ez az azonosítóval ha egy munkatárs ír egy megjegyzést akkor az elmentődik a megjegyzes táblában.
Ez így elég működőképesnek látszik, csak az a bajom mint ez előbbinél hogy hogyan generálom le az "insert into" parancsokat ha a pontok és sorrendjeik is változik?

Remélem sikerült érthetően körbeírnom a problémám, ha valaki csinált már hasonlót és tud egy két jó szót vagy példakódot/leírást mutatni az ne tartsa magában! :)

Előre is köszönöm!
 
1

Miért új oszlopokban

Hidvégi Gábor · 2013. Ápr. 9. (K), 16.41
Miért új oszlopokban szeretnéd tárolni az új értékeket?
2

nem szeretném

unregistered · 2013. Ápr. 9. (K), 18.31
A "pont"-ot (pl: "Végy egy papírt.") szeretném oszlopban tárolni, amit megjegyzésnek írnak hozzá azt sorban.
(bár ugye nem tudom hogy mit is szeretnék, ezért kértem hogy segítsetek hogy legalább jó irányba induljak)
Bár most hogy ezt írtad akkor a pontnak adjak egy egyedi azonosítót az egyedi azonosítóhoz meg rendeljem egy másik táblában a szöveget?
3

Például.

Hidvégi Gábor · 2013. Ápr. 9. (K), 18.55
Például.
4

most tényleg ez a jó?

unregistered · 2013. Ápr. 9. (K), 20.59
Tehát akkor a tábla oszlopoknál csak egyedi azonosítókat használjak például "oszlop1254" és egy másik táblából olvassa ki hogy mi az oszlop neve a kiírató php?
Ti is így csinálnátok, vagy most ez is csak egy megoldás?

De akkor is ha ez a legjobb megoldás, még hogy mentem el egy ilyen lista adatait? Mert nem tudom hogy mi lesz például az 5. módosított/hozzáadott oszlop azonosítója.
Tehát nem tudok olyat megadni hogy:
INSERT INTO lista1 (id,oszlop1412,oszlop2315,oszlop8052) VALUES ('Nem találtam papírt','Kész a rajz','Elküldtem')
mert milyen módszerrel tudom meg a teljesen eltérő táblák oszlop számait és a hozzájuk megadott adatot?
5

uh :)

szabo.b.gabor · 2013. Ápr. 9. (K), 21.44
Hát a második pontban leírt dolgok lesznek jók.

pontok táblába vegyél fel egy sorrend mezőt. aztán ha változik a sorrend akkor azt update-eled.

sok sikert!

írkáld ide, hogy mire jutottál, aztán megpróbálunk segíteni.
6

eddig

unregistered · 2013. Ápr. 10. (Sze), 08.06
Hát ez a baj, hogy már a tervezésnél számomra megoldhatatlan problémával szembesültem, azért írtam le a gondolataim :D

Eddig ott tartok hogy (most a sorrendezéssel nem foglalkozok mert az pofonegyszerű ennél a verziónál, az azonosítókat meg egy kis "sózott" időbélyeggel oldom majd meg, az átláthatóság miatt használok most három karakteres azonosítókat):

"listak" tábla:
id, azonosító, érték

1, 987, Tervezési folyamat
2, 654, Kivitelezési folyamat
"pontok" tábla:
id, azonosító1, azonosító2, érték

1, 987, 111, Végy egy papírt
2, 987, 112, Rajzolj
3, 987, 113, Küld el Sanyinak
4, 654, 211, Beszélj a megrendelővel
5, 654, 212, Beszélj a kreatívval
"megjegyzesek" tábla:
id, azonosító, felhasználó, érték

1, 111, laci##kukac##kollega.hu, Nem találtam papírt
2, 112, laci##kukac##kollega.hu, Painttel rajzoltam
3, 113, laci##kukac##kollega.hu, Sanyi szabin van
4, 112, feri##kukac##kollega.hu, Elakadtam
5, 113, feri##kukac##kollega.hu, Mi a sanyi címe
6, 211, andi##kukac##kollega.hu, Nem vette fel
7, 212, andi##kukac##kollega.hu, Kreatív csinált terveket 
A problémám az hogy amikor megnyitsz egy listát, akkor a megjelenito.php valami ilyesmi lesz (csak vázolva):

Lista nevének kiíratása (pl:Tervezési folyamat)

1. pont kiíratása
Megjegyzés input mező

2. pont kiíratása
Megjegyzés input mező

3. pont kiíratása
Megjegyzés input mező

Mentés gomb
DE a mentes.php-nál megáll a tudományom, nem tudom hogy haladjak tovább:

Gondoltam arra hogy bevezetek egy $i számlálót ami számolja hány kiíratás volt (mert ugye ezek eltérőek a listák hosszától függ) és akkor ez alapján ad a megjegyzés inputoknak name és id-t (pl: megjegyzes1, megjegyzes2, stb) és a végén ezt a számot hidden inputként átadom a a mentes.php-nak CSAKHOGY utána e ciklikus végigléptetése nem probléma, de hogy adom meg neki hogy melyik érték melyik ponthoz tartozik, mivel a pontok egyedi azonosítói közt nincs összefüggés (egyedi időbélyeg), tehát ekkor adjak hozzá minden megjegyzés inputhoz egy hidden értéket és az tartalmazza a pont id-ját? Mert akkor már tudni lehet hogy mi hova tartozik, de ez nem tűnik valami "elegáncos" megoldásnak... vagy csak azért tűnik ilyen furcsának mert még nem láttam ilyet?
7

Változók

Hidvégi Gábor · 2013. Ápr. 10. (Sze), 08.54
9

tömb?

unregistered · 2013. Ápr. 10. (Sze), 10.37
Köszi a linket, itt most a "darren at sullivan dot net"-es note-ot kell nézni ahogy megvalósítja a tömbben való kezelést?
8

táblák

szabo.b.gabor · 2013. Ápr. 10. (Sze), 10.27

list [idlista,lista]
1, Tervezési folyamat  
2, Kivitelezési folyamat  

pont [idpont,idlista,pont]
1, 1, Végy egy papírt  
2, 1, Rajzolj  
3, 1, Küld el Sanyinak  
4, 2, Beszélj a megrendelővel  
5, 2, Beszélj a kreatívval  

felhasznalo [idfelhasznalo,email]
1, laci##kukac##kollega.hu
2, feri##kukac##kollega.hu
3, andi##kukac##kollega.hu

megjegyzes [idmegjegyzes,idpont,idfelhasznalo,megjegyzes]
1, 1, 1, Nem találtam papírt  
2, 2, 1, Painttel rajzoltam  
3, 3, 1, Sanyi szabin van  
4, 2, 2, Elakadtam  
5, 3, 2, Mi a sanyi címe  
6, 4, 3, Nem vette fel  
7, 5, 3, Kreatív csinált terveket
azonositoX mezők nem tudom micsodák de igen feleslegesnek tűnnek. a pkey neve ne id legyen, az fkey neve a pkey legyen.
10

Form

szabo.b.gabor · 2013. Ápr. 10. (Sze), 10.38

1. Végy egy papírt 
<textarea name="megjegyzes[1]"></textarea>
  
2. Rajzolj   
<textarea name="megjegyzes[2]"></textarea>
  
3. Küld el Sanyinak  
<textarea name="megjegyzes[3]"></textarea>
  
Mentés gomb


A lényeg annyi, hogy a pont azonosítóját berakod a megjegyzes mögé indexnek, akkor a $_POST tömbödben lesz egy megjegyzés array aminek az indexei az adott pontok azonosítói lesznek, értékei pedig a megjegyzések. a felhasználó azonosítót pedig tudod.

aztán, hogy egy insert-tel szúrod-e be vagy három külön lekérdezés, az már tökmindegy.
11

megvan

unregistered · 2013. Ápr. 10. (Sze), 11.31
Már elkezdtem írni az előző hozzászólásodhoz, hogy szép és jóval egyszerűbb tábla struktúrát mutattál, de még mindig nem értem hogyan lesz ez elmentve, de még jó hogy ráfrissítettem mielőtt elküldtem, mert mostmár megvan a lényeg.

Tehát akkor "tömbösítem" a válaszokat és foreach paranccsal meg insert-telem?
12

pontosan

szabo.b.gabor · 2013. Ápr. 10. (Sze), 11.44
hajrá!
13

utolsó kérdés

unregistered · 2013. Ápr. 10. (Sze), 19.08
Na még egy apróság most hogy a megjelenítésnél járok, már tudom miért volt terítéken az oszloponkénti pont megjelenítés és tárolás. Ugyanis ha ki akarok listázni egy listát akkor jön a gubanc:

<h1>Tervezési folyamat</h1>

<table>
    <tr>
        <td>Felhasználó</td>
        <td>Végy egy papírt</td>
        <td>Rajzolj</td>
        <td>Küld el Sanyinak</td>
    </tr>
    <tr>
        <td>laci##kukac##kollega.hu</td>
        <td>Nem találtam papírt</td>
        <td>Painttel rajzoltam</td>
        <td>Sanyi szabin van</td>
    </tr>
    <tr>
        <td>feri##kukac##kollega.hu</td>
        <td>-</td>
        <td>Elakadtam</td>
        <td>Mi a sanyi címe</td>
    </tr>
</table>
Na tehát az első <tr> sorral nincs probléma, de a második <tr> sortól tényleg át kell scannelni a 3 táblát, hogy mi tartozik hozzá, ez mondjuk pár darabnál nem probléma de mondjuk sok bejegyzésnél már lehetnek vele gondok nem? Plusz itt fennál az a hibalehetőség, hogy miközben megy a kiíratás közben valaki módosít egy korábbi elemen mint ahol a kilistázás tart akkor a korábbi eredmény fog látszani, jó mondjuk ezzel most ne foglalkozzunk mert tegyük fel hogy ilyen nem lesz, de akkor csak ez az egy módja van az áttekintő oldal létrehozásának?

pl:

$parancs1 = "SELECT * FROM pont WHERE idlista ='1'";
$eredmeny1 = mysql_query($parancs1);			
while ($sor1 = mysql_fetch_array($eredmeny1)) {
    $parancs2 = "SELECT * FROM megjegyzes WHERE idpont ='$sor1['idpont']'";
    $eredmeny2 = mysql_query($parancs2);			
    while ($sor2 = mysql_fetch_array($eredmeny1)) {
        $parancs3 = "SELECT * FROM felhasznalo WHERE idfelhasznalo='$sor2['idfelhasznalo']'";
        $eredmeny3 = mysql_query($parancs3);			
        $sor3 = mysql_fetch_array($eredmeny3);
        echo '<td>$sor3['email']</td>';
    }
    echo '<td>$sor2['megjegyzes']</td>';
}
(tudom hogy van pár helytelen rész pl a kíratás, de most csak a struktúrát vázoltam fel, így is elég ronda nem, akartam még több bonyolító fűzést meg idézőjelet írni)
14

Ha ilyeneken aggódsz, akkor

Poetro · 2013. Ápr. 10. (Sze), 19.20
Ha ilyeneken aggódsz, akkor legegyszerűbb, ha kicsit beletanulsz az SQL-be, és egyetlen lekérdezéssel kérdezed le az összes szükséges adatot.
15

nem aggódom

unregistered · 2013. Ápr. 10. (Sze), 20.48
Nem aggódom, de most ha szépítem ezt egy IN vagy INNER JOIN szabállyal azzal nem oldódik meg a probléma...
Az előző problémánál is (amikor szabo.b.gabor vezetett rá) nem az volt a gond, hogy nem ismertem a tömböket, vagy a name mező postolását, hanem csak arra a kis trükkre volt szükség ahogy elegáncosan meg lehetett oldani...
(mert ugye ez működik most is ilyen csúnyán, csak nem valami optimálisan)
16

nem utolsó válasz :)

szabo.b.gabor · 2013. Ápr. 11. (Cs), 08.23
Te itt feltételezed, hogy minden válaszadásnál minden pontra válaszolnak. ha ez tényleg elvárás, akkor kell valami válaszcsoport mező, ami összefoglalja az adott megjegyzéseket.

de én inkább arra gondolok, hogy a modelled rosszul képezi le a valóságot. valószínűleg egyszerre csak egy pontra fognak válaszolni a kollégák, hiszen egyszerre jó esetben csak egy ponton dolgoznak. a formodnak úgy kellene kinéznie, hogy van egy dropdown ahol kiválasztja az adott pontot amin dolgozik, majd van alatta egy textarea amibe beírja, hogy mit csinált. persze minden hozzászóláshoz kellene egy időbélyeg is.

valamint nem volna rossz, ha lenne valami megrendeles, vagy munkafolyamat tábla is, mert gondolom ezek a pontok ismétlődő munkafolyamatokat írnak le, és ezeknek kapcsolódni kell egy adott megrendeléshez. ez a munkafolyamat tábla praktikusan tartalmazza majd a lista azonosítóját, hogy tudd milyen pontok játszanak benne. lehet, hogy több lista is tartozhat hozzá, nem ismerem a körülményeket.

a kiírásod aztán valami ilyen formában lesz értelmes:

<h1>Tervezési folyamat - XY Bt.</h1>  
  
<table>  
    <tr>  
        <td>Felhasználó</td>  
        <td>lépés</td>  
        <td>megjegyzes</td>
    </tr>  
    <tr>  
        <td>laci##kukac##kollega.hu</td>  
        <td>Végy egy papírt</td>  
        <td>Nem találtam papírt</td>  
    </tr>
    <tr>  
        <td>laci##kukac##kollega.hu</td>  
        <td>Rajzolj</td>  
        <td>Painttel rajzoltam</td>  
    </tr> 
</table>
stb..
17

táblázatos megjelenítés

unregistered · 2013. Ápr. 12. (P), 09.10
Elgondolkodtam azon amit írtál (na meg meló is volt azért nem írtam gyorsabban) mert elvégre mégiscsak azért találtam ki ezt a "programot" hogy legyen min gyakorolni, tehát bőven lehet benne modellezési hiba, de akárhogy is alakítgatom mindig ugyanoda lyukadok ki:

Vannak az ügyfelek, a kapcsolattartók és a kivitelezők. A legtöbb félreértés abból adódik hogy a kapcsolattartó egy csomó (számunkra) lényeges infót elfelejt megkérdezni, ami természetes, mert nem ért mélységében a kivitelezéshez és erre szeretnék egy listát/listákat létrehozni (különböző témakörben), hogy ne felejtsen el semmit és hogy rögtön oda tudja írni a megjegyzéseit, ötletei, stb.
Azért lenne jó ha utána például az összes kapcsolattartó egy összesítő táblában megjelenhetne az adott projektnél (persze ennek feltétel hogy ugyanazon dolgozzon), mert sok olyan kérdést is fel lehetne tenni nekik, amik alapján monitorozni lehetne hogy melyik kapcsolattartó hozza a jobb döntéseket, (mert sokszor van hogy ugyanazt a munkát viszik, a nagysága miatt, vagy ugyanolyan típusút) Ezt először magunk (kivitelezők) segítségére csinálnám, de utána majd lehet tudná használni a többi rész is... vagy átalakítva más feladatokat is elláthatna, esetleg kérdőív vagy ilyen jellegű feladatot ahol több ember válaszait hasonlíthatjuk össze egy lapon excelhez hasonló táblázatos megjelenéssel, nem tudom igazából nekem most az a lényeg hogy megtanuljak olyan eljárásokat amikkel egy webshopnál vagy eddigi bármi másnál még nem találkoztam, mint például ez is hogy soha nem volt olyan hogy egy tábla oszlopai változóak lennének, mindig csak a sorok változnak...
18

papír, ceruza

szabo.b.gabor · 2013. Ápr. 12. (P), 11.28
te ott gubancolódsz bele szerintem, hogy a megjelenítéshez akarod alakítani az adatbázis struktúrádat, valamint nem biztos, hogy amit meg akarsz jeleníteni, annak van értelme. mondom ezt úgy, hogy nem látok bele.

szerintem sok munkát és nyálat megspórolsz vele, ha mondjuk a formjaidat papír alapon odaadod egy ügyintézőnek (kiválasztasz egy szimpatikus, helyes egyedet), nézed ahogy dolgozik, használja, megnézed hol nehézkes, hol lehet javítani (a lényeg, hogy ne akard neki megmondani, hogy hogyan használja, csak azt hogy mire, aztán persze hallgasd meg a véleményét). aztán a papírjaidat (egy-egy elmentett form) gyűjtsd össze és csinálj belőle értelmes prezentációt.

ha kialakult egy használható béta, akkor kezdj el programozni (az úgyis unalmas).

http://www.doclerholding.com/hu/academy/

Schmidt Zoltán előadásait nézd meg, hasznosak lehetnek.
19

+1

Pepita · 2013. Ápr. 12. (P), 20.27
Annyit hozzátennék, hogy szerintem adatbázistervet is célszerű először papír-cerka csinálni. Én legalábbis jobban tudok így gondolkodni, mintha rögtön "csinálom is", amit tervezek.
20

van a papírnál is jobb az adatbázishoz :)

szabo.b.gabor · 2013. Ápr. 13. (Szo), 10.33
21

Á, nem hinném

Pepita · 2013. Ápr. 13. (Szo), 10.44
Legalábbis számomra nem. Ebben valószínűleg nagyon földhözragadt vagyok. De ennek is van előnye: ha valami nagy katasztrófa miatt eltűnnének a számítógépek, én akkor is tudok legalább tervezni. :)

Mondjuk az igazság az, hogy csak a kezdeti kapcsolatokat, alaptáblákat tervezem papíron (de azt szó szerint), és csak olyankor, ha még semmi hasonlót nem csináltam. Tehát egyre ritkábban, de ez az alap.
22

elölről

unregistered · 2013. Ápr. 15. (H), 14.04
Szerintem ott a probléma hogy ilyen feladat amúgy nem létezik. Azért találtam ki a feladatot, hogy ne valamilyen kamu dolgot csináljak hanem ha már új dolgot akarok tanulni, akkor legyen használható valamire a végén.

Tehát összefoglalva. Én azt szeretném megtanulni hogyan lehet olyan adatbázost tervezni, majd azt php-val manipulálni ahol nem (!) fixek a tábla oszlopai.

Értem ez alatt például egy egyszerű regisztrációt:
megvan adva az id, felhasználónév, jelszó. Ha ezen változtatni szeretnék, tehát mostantól kell a regisztrációhoz az e-mail cím, akkor az egész kócerájt át kell programozni és mindenhova be kell tenni hogy már van email oszlop is és kezelni kell.
Mivel azért ez nem jellemző hogy változik a regisztrációs adatok bekérése pláne nem gyakran, erre próbáltam valami feladatot kitalálni...

Már korábban is írtam hogy bármilyen feladatot kitalálhatunk, például jó ötlet volt a kérdőív és kitöltő rendszer, de utána azzal is mit kezdek? Nincs szükségünk ilyen programra... bár mondjuk azt konkrétan le lehet írni, hogy vannak kérdőívek, abban kérdések (ezek a változó dolgok) és aki kitölti annak a válaszai elmentődnek, majd azokat meg lehet jeleníteni egy nagy táblázatban és látni az összes választ meg a kérdéseket is. Így jobban érthető hogy mit szeretnék megtanulni?
23

(:

szabo.b.gabor · 2013. Ápr. 15. (H), 21.38
általában az van, hogy ha olyan a rendszer, hogy az adatbázis felépítése állandóan változik, akkor ott valami nem kerek.

a változások fájdalommentes követésére használhatsz vmi ActiveRecord vagy ORM rendszereket.

esetleg amennyire nem értek hozzá a nosql vagy milyen rendszerek nyújtanak olyasmit, amire gondolsz (bár gyanítom nem).

amúgy hajrá! sajnos én nem tudok segíteni abban, amit szeretnél megtanulni.
24

Minek?

Pepita · 2013. Ápr. 16. (K), 02.48
Csatlakozom Gábor azon véleményéhez, hogy kaki van ott, ahol a DB ilyenformán "dinamikus". Nemrég volt egy téma, ahol egy tábla azt próbálta tárolni, hogy nagyjából mit csináljon a progi a többi táblával... Asszem az a projekt befulladt.

Nem lehetetlen amit szeretnél, de nemigazán célravezető. A megváltozott (új) táblaszerkezetek kezelésére ki tanítja meg a szoftvert? És mikor? Vagy a megváltozott szerkezettel nincsenek ellenőrzési és/vagy adatváltoztató műveletek?
Ez kissé olyan, mint mikor a kiskutya kergeti a saját farkincáját...
25

akkor vau :)

unregistered · 2013. Ápr. 16. (K), 10.26
Olvasgatom a külföldi hasonló leírásokat a "váltakozó táblával" és találtam egyet ami hasonlított a problémámra. Természetesen itt sem az oszlop változtatásával van megoldva :)
Most átálltam a kérdőív készítésre és így talán jobb eredménnyel járok, mert könnyű modellezni.
Most ott tartok a táblámmal hogy:

kerdoiv [id,nev]
kerdes [id,kerdoivid,sort,kerdes]
kitolto [id,nev]
valasz [id,kerdesid,kitoltoid,valasz]
- A kérdőív készítője a kerdov táblába létrehoz egy kérdpívet aminek ad egy nevet.
- A kérdőívet kiválasztva egy dropdown menüből egy olyan felületre kerül ahol hozzáadhat kérdéseket és ezeket sorrendezheti a kerdes tablaban.
- A regisztrált kitöltő landol a kitöltő oldalon ahol a kérdőívhez tartozó kérdéseket vannak kilistázva.
- Válaszol és szabo.b.gabor által mutatott eljárással tömbben átadódnak majd elmentőnek.
- Aztán ezeket a kérdéseket módosíthatja, törölheti újakat adhat hozzá a létrehozója (itt majd meg kell valahogy oldani hogy a törölendő kérdésekhez tartozó válaszok is törlődjenek, mert egy idő után tele lesz a valasz tábla szeméttel.
Ennek az egésznek első ránézésre az a hátulütője hogy ha valaki épp kitölt egy táblát és akkor van módosítás alatt a tábla, akkor arra nem tud válaszolni, de ennyi hiba belefér... gondolom ezt nem is lehet jól kezelni egyszerűen).

Ezt az egészet ki lehet íratni egy oldalra úgy hogy a kerdov id-ját megkapja az kiírató oldal és egy táblázatba jönnek a következők:

<tr>
    <td>// ide while mysql_fetch_array-el kilistázom a kérdéseket<td>
<tr>
// innentől egy "loopba" kezdek ami addig ismétli a <tr> részt amíg van kérdés<td>
<tr>
    // itt szintén loopba kezdek és végiglépkedve a kitöltőkön megnézem hogy a kitolto id-je és a kerdes id-je hol egyezik meg a valasz tábla elemeinél
    <td>
        // kiíratom az értéket
    <td>
<tr>

Amúgy ez a papíron:

KÉRDŐÍV NEVE: Általános teszt

Kitoltő neve (input mező): Sanyi

1. kérdés: Hanyadika van ma?
Válasz (input mező): 12

2. kérdés: Milyen színű a virág?
Válasz (input mező): kék

3. kérdés: Süt a nap?
Válasz (input mező): nem


Kilistázva a kérdőívre adott válaszok alapján:

Általános teszt

KITÖLTŐ  |  Hanyadika van ma?  |  Milyen színű a virág?  |  Süt a nap?
Sanyi              12                     kék                  nem
Laci               14                     zöld                 igen
Andi               17                     lila                 igen
26

Kulcsszavak

Pepita · 2013. Ápr. 16. (K), 21.10
itt majd meg kell valahogy oldani hogy a törölendő kérdésekhez tartozó válaszok is törlődjenek
references, on delete, on update, restrict, cascade. Ezek InnoDB táblatípusra vonatkoznak.
ha valaki épp kitölt egy táblát és akkor van módosítás alatt a tábla, akkor arra nem tud válaszolni, de ennyi hiba belefér
Hát, ha neked belefér... Egyébként lehet tranzakciókezelést is alkalmazni, és mondjuk a teljes kérdőív kitöltése után, még UPDATE előtt ellenőrizni, hogy maga a kérdőív változott-e. Egyébként meg nem célszerű válaszok után módosítani, mert ha pl. több kérdés lesz, akkor a régebbi kitöltéseket hogyan igazítod hozzá?