Permalänk
Medlem

Loopa ut data från tabell

Hejsan,

Jag hade tänkt att man skall kunna boka olika kurser i ett system.

Låt säga att man har lagt till Kursen Fotohantering. Nu skall man, till den här kursen, kunna lägga till olika kurstillfällen.

Exempelvis:

Grundläggande fotohantering del1 2011-10-20 till 2011-10-25
Grundläggande fotohantering del2 2011-10-26 till 2011-10-30

De kurstillfällena skall ligga under kursen Fotohantering. Man skall alltså kunna boka hela kursen med dessa tillfällen inkluderat, liknande ett kurspaket.

Problemet jag har är att jag inte riktigt vet hur jag skall lösa med att loopa ut denna datan från tabellen så att respektive kurstillfälle hamnar under kursnamnet.

Min tabell är följande, course_occasions:
course_name,course_occasion_name,course_start,course_end,seats,course_time

Problemet är att det blir en ny rad för varje tillfälle som jag lägger till. Det vill jag inte. Jag vill att allting skall komma på en rad så att säga, så man kan loopa ut allting på en gång, om ni förstår.

Min lösning som jag tänker på är att man fylller i alll information i textarea och sedan postar, istället att ha det som jag har nu, enskilt textfält för varje kolumn.

Visa signatur
Permalänk
Medlem

Hänger inte riktigt med vad ditt problem är.
Först snackar du om att du ska få ut något från en databas och sedan snackar du om att du ska stoppa in det?

Vilka språk arbetar du med?

Visa signatur

Mina poster är en illusion. Det som står skrivet här över står i själva verket inte där så inget av det som du läser är sant. Inte ens den här texten. Jag har själv ingen kunskap om det jag skriver och ingen bör således läsa eller ta in den information som står skrivet.

Permalänk
Medlem

Jag arbetar med PHP.

Jag tycker det framgår ganska bra vad jag har för problem.

Någon annan?

Visa signatur
Permalänk
Medlem

Som jag förstår det så använder du dig enbart av en tabell, vilket en databas nisse inte tycker om. Du bör ha en tabell som som heter "Courses" där du listar namn på kurser. Sen har du en tabell som heter "Course occasions" där du listar samtliga kurstillfällen (notera att ett kurstillfälle är bundet till en kurs).

Till sak: Jag tror nästan jag kanske förstår En rad i din tabell är en beskrivning av ett kurstillfälle till en specifik kurs, ett exempel:
Grundläggande fotohantering del1 2011-10-20 till 2011-10-25
Grundläggande fotohantering del2 2011-10-20 till 2011-10-25
Avancerad fotohantering del1 2012-01-0-1 till 2012-02-02

Tabellen visar två stycken tillfällen för Grundläggande fotohantering och ett tillfälle för Avancerad fotohantering. Det du behöver göra här är att normalisera databasen. I din tabell just nu blir det mycket onödig information om varje kurs, Grundläggandef fotohantering finns med flera gånger, men det är precis samma kurs. Det ända som skiljer är tillfällena.
Du bör dela upp allt och använda två stycken tabeller i alla fall.
Då ser det ut på följande:
TABELL COURS (Första kolumnen är nyckeln)
Kolumner i tabellen, separerade med bindestreck: CoursID - CoursName
-----------------------------------------
1 Grundläggande_fotohantering
2 Avancerad fotohantering

TABELL COURS OCCASION (Här är CoursIDtillsammans med OccasionName nyckeln)
Kolumner i tabellen, separerade med bindestreck: CoursID - OccasionName - start - stop
1 del1 2011-10-20 2011-10-25
1 del2 2011-10-20 2011-10-25
2 del1 2012-01-0-1 2012-02-02

Just nu finns en kurs sparad på ett ställe och ingen annanstans, detta är i COURS tabellen.
Vill du lägga till ett kurstillfälle till Någon kurs, lägger du till det i COURS OCCASION tabellen, och sätter CoursID till ID för just den kursen.

Visa signatur

In order to understand recursion, one must first understand recursion

Permalänk
Medlem
Skrivet av Brajan:

Problemet är att det blir en ny rad för varje tillfälle som jag lägger till. Det vill jag inte. Jag vill att allting skall komma på en rad så att säga, så man kan loopa ut allting på en gång, om ni förstår.

Det är inget problem, det är precis så det bör fungera. Spara allt på samma rad är ingen smart idé.
Loopa ut allt samtidigt kommer du ändå kunna göra

Skrivet av Brajan:

Min lösning som jag tänker på är att man fylller i alll information i textarea och sedan postar, istället att ha det som jag har nu, enskilt textfält för varje kolumn.

Varför?

Skrivet av Brajan:

Problemet jag har är att jag inte riktigt vet hur jag skall lösa med att loopa ut denna datan från tabellen så att respektive kurstillfälle hamnar under kursnamnet.

Nu kanske du förstår lättare hur du kan loopa ut det. Annars så bara skriv igen

Visa signatur

In order to understand recursion, one must first understand recursion

Permalänk
Medlem

Kan du visa din kod? Jag tror det blir lättare att hjälpa till om jag kan se hur du gjort hittills.

Visa signatur

www.tomodomo.org - indie spelstudio i Helsinfors
www.fatcatrush.com - en 3D runner för iPhone som vi gjort på Tomodomo

Permalänk
Medlem
Skrivet av Olmen:

Kan du visa din kod? Jag tror det blir lättare att hjälpa till om jag kan se hur du gjort hittills.

while($row = mysql_fetch_row($result_courses)) { $get_occasions = "SELECT * FROM course_occasions WHERE course_name='{$row[0]}'"; $result_occasions = mysql_query($get_occasions) or die(mysql_error()); /if(mysql_num_rows($get_user_order_course_result) > 0) { while($row_occasions = mysql_fetch_row($result_occasions)) { echo "<div id=\"course_box" . $nbNo++ . "\" class=\"course_box\">"; echo "<div id='course_occasions'>"; echo "<p><h3>Kursnamn:</h3> " . $row_occasions[1] . "</p>"; echo "<p<h3>Datum:</h3> " . $row_occasions[3] . "</p>"; echo "<p><h3>Slut:</h3> " . $row_occasions[4] . "</p>"; echo "<p><h3>Tid:</h3> " . $row_occasions[6] . "</p>"; echo "<p><h3>Antal platser:</h3> " . $row_occasions[5] . "</p>"; if($get_user_row[0] == $row_occasions[0]) { echo "<p><h3><a href='index.php?remove_occasion={$row_occasions[0]}'>Avboka</a></h3></p>"; } else { echo "<p><h3><i>Ej bokbar..</i></h3></p>"; } echo "</div>"; echo "</div>"; } } else { while($row_occasions = mysql_fetch_row($result_occasions)) { echo "<div id=\"course_box" . $nbNo++ . "\" class=\"course_box\">"; echo "<div id='course_occasions'>"; echo "<p><h3>Kursnamn:</h3> " . $row_occasions[1] . "</p>"; echo "<p<h3>Datum:</h3> " . $row_occasions[3] . "</p>"; echo "<p><h3>Slut:</h3> " . $row_occasions[4] . "</p>"; echo "<p><h3>Tid:</h3> " . $row_occasions[6] . "</p>"; echo "<p><h3>Antal platser:</h3> " . $row_occasions[5] . "</p>"; echo "<p><h3><a href='index.php?add_occasion={$row_occasions[0]}'>Boka</a></h3></p>"; echo "</div>"; echo "</div>"; } } }

Nu så loopas det ut såhär:

Fotohantering Fotohantering
Grundläggande fotohantering1 Grundläggande fotohantering2

Jag vill istället att det ska loopas ut såhär:

Fotohantering
Grundläggande fotohantering1
Grundläggande fotohantering2

Alltså, att kursnamnet Fotohantering enbart ska visas en gång och alla tillfällen kopplat till kursen skall loopas ut under Fotohantering.

Visa signatur
Permalänk
Medlem

Nevermind, jag löste det. Jag krånglade nog bara till det för mycket igårkväll. Tack så mycket för era svar!

Visa signatur