Avatar billede denniswiencken Nybegynder
15. april 2010 - 14:28 Der er 29 kommentarer og
1 løsning

Skema med data fra MySQL

Jeg skal have lavet et skema som henter nogle oplysninger fra min database og smider det ind i et skole skema.

Jeg har lavet en search på lokale og uge nummer med resultatet skal blive et skema med lektioner i den uge, min search.php er således:



<?php
include("menu.php");
mysql_connect ("localhost", "root", "") or die ('Error: ' . mysql_error());
mysql_select_db ("HTX");

$result = mysql_query("SELECT * FROM lektion WHERE LokaleID = " . $_POST['lokalenr'] . " AND Uge = " . $_POST['ugenr'] ) or die(mysql_error());
while($row = mysql_fetch_array($result))
  echo "LokaleID: " . $row['LokaleID'] . " - Emne: " .$row['Emne'] . " - Nr: " .$row['Nr'] . " - Dag: " . $row['Dag'] . " - Uge: " . $row['Uge'] . " - Elever: " . $row['Elever'] ."<br/>";

?>

Der får jeg en liste over oplysninger, men det resultat jeg ønsker er dette eksempel i tabeller:
____________________________________________________
|                    Lokale: 51      Uge:15        |
_____________________________________________________
|Lekt|Mandag  |Tirsdag  |Onsdag  |Torsdag  |Fredag  |
_____________________________________________________
|  1 |*Emne*  |*Emne*  |
|8.10|*Elever*|*Elever* |
|9.40|*andet* |*andet*  |
_____________________________________________________


osv osv,
Så altså under mandag lektion 1 skal den hente kollonen Emne, Elever og evt andet som er sat med Uge=15, Dag=1, Nr=1, osv

undskyld den dårlige illustration men det skal forestille en tabel med kolloner :D, hver gang der er ___ og | er det kanten rundt om :)

Håber i kan hjælpe :)
Avatar billede Slettet bruger
15. april 2010 - 14:47 #1
Ville ønske jeg kunne hjælpe, men forstår simpelthen ikke hvad det er du vil eller hvad det er du prøver på :-(
15. april 2010 - 14:51 #2
Jeg tror nok at jeg stort set forstaar det undtagen paa et punkt:  Under "Elever" skal der da staa en klasse af elever, for eksempel "klasse 3d"?  I saa fald er det til at lave.  Eller skal der staa navnet paa hver enkelt elev?  I saa fald kan det ikke (paa rimelig maade) laves fra en enkel mysql tabel Lektion.  Giv mig et svar paa det, saa skal jeg koere videre.
Avatar billede denniswiencken Nybegynder
15. april 2010 - 14:59 #3
Jeg skal lave en side hvor man kan oprette elever og lektioner til vores skole, og jeg har en database med lektioner som har følgende oplysninger

id
LokaleID: (Lokalets nummer)
Emne: (Engelsk Dansk osv)
Nr: (Lektionens nr altså fx første lektion=1)
Dag: (Mandag=1 Tirsdag=2 osv)
Uge: (Hvad uge lektionen er i)
Elever: (Navnet på klassen)

Så har jeg oprettet nogle lektioner og lavet et søge felt hvor man kan skrive lokalenr fx 53 og uge fx 15,

Når man så søger henter den de resultater der matcher.

Opstillingen lige nu er:

while($row = mysql_fetch_array($result))
  echo "LokaleID: " . $row['LokaleID'] . " - Emne: " .$row['Emne'] . " - Nr: " .$row['Nr'] . " - Dag: " . $row['Dag'] . " - Uge: " . $row['Uge'] . " - Elever: " . $row['Elever'] ."<br/>";

Hvor det der kommer ud ser således ud

LokaleID: 53 - Emne: Engelsk - Nr: 4 - Dag: 2 - Uge: 15 - Elever: 0913b

og så en ny linje med næste lektion osv, men jeg vil gerne have stillet det op i et skema som et rigtigt skole skema med:
Man - Tirs - Ons -Tors - Fre

og neden under skal der i kolonnerne være Emne, Elever og evt andet,

Så skal have den til at sige fx, hvis den finder en lektion der er dag=2(Tirsdag) og nr=3(3. lektion) skal den under tirsdag 3. lektion skrive hvad faget hedder og hvilken klasse der skal have det

håber det var bedre :)
Avatar billede denniswiencken Nybegynder
15. april 2010 - 15:00 #4
Christian_Belgien der skal bare stå navnet på klassen, fx 3d ja
15. april 2010 - 15:57 #5
Det skal jeg arbejde videre med i aften (jeg skal noget andet nu) - men jeg har endnu to spoergsmaal (som maaske viser sig at gaa ud paa det samme:)

(1)  Der vil sandsynligvis vaere mere end en lektion per dag i en klasse.  Er det ligegyldigt i hvilken raekkefoelge de kommer? 

(2)  Lektionens nummer, hvis nu en klasse har engelsk to gange om ugen og skoleaaret er 40 uger langt saa har de engelsk 80 gange det aar.  Viser din database tabel saa 80 forskellige engelsk lektioner, lektion nummer 1 til 80?  Eller det saaledes at hvis lokale 53 har fem lektioner paa dag 3, engelsk, tysk, dansk, matematik, og geografi, saa viser database tabellen:

LokaleID Emne Nr Dag
53            Engelsk  1  3
53            Tysk      2  3
53            Dansk      3  3
o.s.v.

(3)  (jeg kan ikke taelle) er det ligegyldigt med klokkesletter?  I dit oprindelige spoergsmaal viser du under Lekt tre linier: 1, 8.10, og 9.40.  Hvad betyder det?
Avatar billede nicolailissau Nybegynder
15. april 2010 - 16:06 #6
denniswiencken må jeg spørge hvad det skal bruges til?

Lectio.dk har jo et kanon godt system til skoler, der håndterer fravær, skema, informationer, spørgeskemaet osv. alt-i-en.
Avatar billede denniswiencken Nybegynder
15. april 2010 - 16:11 #7
Christian

1 Nej de skal sorteres efter kollonen Nr altså 1,2,3..osv under hver dag

2 Lektions nummeret skal bare vise hvornår på dagen det er, vi har normalt op til 8 lektioner,

3 Klokkeslettet er bare hvornår de lektioner er, altså bare "for syns skyld" altså start og slut tidspunkt på lektionen
Avatar billede denniswiencken Nybegynder
15. april 2010 - 16:12 #8
nicolailissau
Det er et innovations projekt hvor systemet er vores produkt
Så det SKAL være vores eget "hjemmelavede" program :)
Avatar billede denniswiencken Nybegynder
15. april 2010 - 16:17 #9
her er et billede eksempel

http://s931.photobucket.com/albums/ad157/xDennisW/Diverse/?action=view&current=skema.jpg

i stedet for k053 skal det så bare være 53 bare,

men altså denne opbygning,
Avatar billede denniswiencken Nybegynder
15. april 2010 - 16:21 #10
Avatar billede denniswiencken Nybegynder
15. april 2010 - 16:23 #11
hov, fik forresten lige kigget ordentlig og lokalets nr skal selvfølgelig ikke stå inde i tabellen :), og de initialer er lærere og har ikke oprettet den tabel endnu men det er det jeg mener med "andet" lægere oppe i teksten :)
15. april 2010 - 20:52 #12
deniswiencken, det bliver i morgen tidligt.  (Det er mere komplek end jeg troede.)
Avatar billede denniswiencken Nybegynder
15. april 2010 - 22:49 #13
Det er helt iorden :)
16. april 2010 - 07:46 #14
Saa fik jeg kikket paa det igen.  Jeg lavede en mysql tabel som jeg kaldte dennis (i stedet for lektion) og fyldte nogle vaerdier i.  Emnerne kaldte jeg Emne1, Emne2, o.s.v. og eleverne kl3a, kl3b, o.s.v. Jeg har kun fire lektioner per dag.  Jeg gjorde det foreloebigt paa den nemme maade hvor der for hver dag i ugen er precis de fire lektioner.  Jeg fik saa en opstilling som du kan se her:

http://christianjorgensen.be/dennis.php

Jeg har kun placeret dataerne i en tabel, ikke gjort noget for at faa streger omkring tabellens raekker og kolonner.

Jeg vil gerne have dine kommentarer til det.  Derefter vil jeg forsoege at gaa videre saa det virker ogsaa hvis der er huller i skemaet, hvis for eksempel man om onsdagen sover laenge og foerst starter med lektion 3.

Her er php koden jeg brugte (hvor du saa skal indsaette det rigtige tabel navn og dine egne mysql connections.)  Jeg har i variabelerne $lokalenr og $uge indfoert vaerdier som du i stedet henter fra $_POST['lokalenr'] og $_POST['ugenr'].

<?
$lokalenr = 57;
$uge = 15;
echo "<table><tr><td>Lokale: " . $lokalenr . "</td><td colspan=5>Uge: " . $uge . "</td><tr>";
echo "<tr><td>Lektion</td><td>Mandag</td><td>Tirsdag</td><td>Onsdag</td><td>Torsdag</td><td>Fredag</td>";
$link = mysql_connect ('xxxxx', 'yyyyy', 'zzzzz') or die(mysql_error());
mysql_select_db('qqqqq') or die('Could not select database');
$result = mysql_query("SELECT * FROM dennis WHERE LokaleID = $lokalenr AND Uge = $uge ORDER BY Nr, Dag") or die(mysql_error());
$nummer = 0;
while($row = mysql_fetch_array($result))
{
  $nr = $row['Nr'];
  if($nr != $nummer)
  {
    $nummer = $nr;
    echo "</tr><tr><td>" . $nr . "</td>";
  }
  echo "<td>Emne: " . $row['Emne'] . " Elever: " . $row['Elever'] . "</td>";
}
echo "</tr></table>";
mysql_close($link);
?>
Avatar billede denniswiencken Nybegynder
16. april 2010 - 08:34 #15
Det er præcis sådan der og det virker umidbart godt! :),
16. april 2010 - 20:15 #16
Jeg har ikke glemt dig - koden jeg lavede var en midlertidig loesning der virker hvis alle lektioner er fyldt ud.  Jeg bakser nu med en kode der indsaetter lektionerne rigtigt selv om visse dage der er faerre lektioner.  Det driller lidt.  Maaske blive det i morgen tidlig.
Avatar billede denniswiencken Nybegynder
16. april 2010 - 20:22 #17
Okay du skriver bare, det kunne være fantastisk :)
17. april 2010 - 06:26 #18
Saa lykkedes det vist.  Jeg har for test ladet et par lentioner falde ud paa forskellige dage og lektion 3 paa alle dage.  Rest sidder saa hvor det skal i skemaet.  Se http://christianjorgensen.be/dennis.php

Koden kommer nedenfor.

Jeg opretter dette som svar og ville gerne at vi kunne lukke her.  Jeg har set at du i mellemtiden har oprettet et par spoergsmaal som jeg undlod at deltage i indtil jeg var klar med dette spoergsmaal.

<?
$lokalenr = 57;
$uge = 15;
echo "<table><tr><td>Lokale: " . $lokalenr . "</td><td>Uge: " . $uge . "</td></tr>";
echo "<tr><td>Lektion</td><td>Mandag</td><td>Tirsdag</td><td>Onsdag</td><td>Torsdag</td><td>Fredag</td>";
$link = mysql_connect ('xxxxx', 'yyyyy', 'zzzzz') or die(mysql_error());
mysql_select_db('qqqqq') or die('Could not select database');
$result = mysql_query("SELECT * FROM dennis WHERE LokaleID = $lokalenr AND Uge = $uge ORDER BY Nr, Dag") or die(mysql_error());
$n = 0;
$i = 1;
while($row = mysql_fetch_array($result))
{
  for($n; $n<$row['Nr']; $n++)
  {
    $i = 1;
    echo "</tr><tr><td>" . ($n + 1) . "</td>";
  }
  for($i; $i<$row['Dag']; $i++) echo "<td>&nbsp;</td>"; 
    echo "<td>Emne: " . $row['Emne'] . " Elever: " . $row['Elever'] . "</td>";
    $i++;
}
echo "</tr></table>";
mysql_close($link);
?>
17. april 2010 - 06:27 #19
Alarm!  Jeg tror at der er endnu et problem.  Lad mig lige kikke en gang mere.
17. april 2010 - 07:09 #20
Det var fordi jeg gav dig det forkerte link.  Dette er den rigtige version:

http://christianjorgensen.be/dennis1.php
Avatar billede denniswiencken Nybegynder
17. april 2010 - 09:49 #21
Kan først teste i aften men efter som det virker hos dig burde det os virke hos mig :), tusind tak for hjælp og svar :)
Avatar billede denniswiencken Nybegynder
17. april 2010 - 21:07 #22
Det virker, dog hvis man sætter en border på driller den lidt, har en uge kun med lektioner torsdag 5&6 og den viser fint kant om mandag-torsdag lektion 3-6 men 1-2 hele ugen og så hele fredag har ikke kant i felterne
Avatar billede denniswiencken Nybegynder
17. april 2010 - 21:14 #23
Årsagen til problemet er at den stopper med at lave kollonner langs lekt 1,2,3 osv hvis der ikke er flere lektioner, altså fx har man fri torsdag og fredag stopper den onsdag og ingen kant derfra, dog før onsdag virker fint uden lektioner
18. april 2010 - 09:47 #24
Jeg staar og skal afsted.  Jeg skal kikke paa det senere.
18. april 2010 - 11:05 #25
Maaske kunne du sende mig den modificerede kode?
Avatar billede denniswiencken Nybegynder
18. april 2010 - 11:12 #26
<?php
include("menu.php");


$lokalenr = $_POST['lokalenr'];
$uge = $_POST['ugenr'];

echo "<table border='1'><tr><td>Lokale: " . $lokalenr . "</td><td>Uge: " . $uge . "</td></tr>";
echo "<tr><td>Lektion</td><td>Mandag</td><td>Tirsdag</td><td>Onsdag</td><td>Torsdag</td><td>Fredag</td>";
$link = mysql_connect ('localhost', 'root', '') or die(mysql_error());
mysql_select_db('htx') or die('Could not select database');
$result = mysql_query("SELECT * FROM Lektion WHERE LokaleID = $lokalenr AND Uge = $uge ORDER BY Nr, Dag") or die(mysql_error());
$n = 0;
$i = 1;
while($row = mysql_fetch_array($result))

{
  for($n; $n<$row['Nr']; $n++)
  {
    $i = 1;
    echo "</tr><tr><td>" . ($n + 1) . "</td>";
  }
  for($i; $i<$row['Dag']; $i++) echo "<td>&nbsp;</td>"; 
    echo "<td>" . $row['Emne'] . " " . $row['Elever'] . "</td>";
    $i++;
}

echo "</tr></table>";
mysql_close($link);
?>
18. april 2010 - 19:39 #27
Jeg har haft problemer med tilslutning til min webhost hvor jeg proever det af, derfor forsinkelse.  Men jeg tror den er der nu.  Se http://christianjorgensen.be/dennis1,5.php . Jeg slettede det sidste nummer de sidste to af ugens dage for at proeve det af ogsaa naar der til allersidst manglede lektioner.  Det var ikke nemt.  Min kode foelger nedenfor, igen indrettet paa mine testtabeller hvilket du saa maa saette tilbage til dit.

<?
$lokalenr = 57;
$uge = 15;
echo "<table border='1'><tr><td>Lokale: " . $lokalenr . "</td><td colspan='5'>Uge: " . $uge . "</td></tr>";
echo "<tr><td>Lektion</td><td>Mandag</td><td>Tirsdag</td><td>Onsdag</td><td>Torsdag</td><td>Fredag</td>";
$link = mysql_connect ('christianjorgensen.be.mysql', 'christianjoygen', 'dnyBKKbe') or die(mysql_error());
mysql_select_db('christianjoygen') or die('Could not select database');
$result = mysql_query("SELECT * FROM dennis WHERE LokaleID = $lokalenr AND Uge = $uge ORDER BY Nr, Dag") or die(mysql_error());
$n = 0;
$i = 1;
while($row = mysql_fetch_array($result))
{
  for($n; $n<$row['Nr']; $n++)
  {
    if($n>0) for($i; $i<=5; $i++) echo "<td>&nbsp;</td>";
    $i = 1;
    echo "</tr><tr><td>" . ($n + 1) . "</td>";
    /*if($n<$row['Nr']-1)
      for($j=1; $j<=5; $j++) echo "<td>&nbsp;</td>";*/
  }
  for($i; $i<$row['Dag']; $i++) echo "<td>&nbsp;</td>"; 
    echo "<td>Emne: " . $row['Emne'] . " Elever: " . $row['Elever'] . "</td>";
    $i++;
}
for($i; $i<=5; $i++) echo "<td>&nbsp;</td>";
echo "</tr></table>";
mysql_close($link);
?>
Avatar billede denniswiencken Nybegynder
18. april 2010 - 19:44 #28
Ved du hvad det er bare kanon, jeg bukker og takker :D
18. april 2010 - 19:50 #29
Jeg ser jeg fik kopieret url-en til eksemplet forkert.  Det skal vaere http://christianjorgensen.be/dennis1,5.php
18. april 2010 - 19:52 #30
Det vil ikke lykkedes, Eksperten korter det af.  Det skal ende paa dennis1,5.php.  Jeg lavede en dennis.php og en dennis1.php for dette spoergsmaal og en dennis2.php for det andet spoergsmaal (hvor det aabenbart lykkedes en anden at gaette behovet foer du fik det klargjort for mig), saa nu ladede jeg en dennis1,5.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester