Avatar billede qub- Novice
28. november 2009 - 16:34 Der er 5 kommentarer og
1 løsning

Vil ikke poste det rigtigt ud

Hejsa..

Starter lige op med at smide lidt kode, og forklare så bagefter..

Her er mine 2 mysql tabeler som jeg arbejder med (ville gerne ha dem samlet til 1 tabel men ved ik om det kan lade sig gøre..?)

INSERT INTO `dato` (`id`, `dato`, `ugedag`) VALUES
(1, '26/06', 'Lørdag'),
(2, '27/06', 'Søndag'),
(3, '28/06', 'Mandag'),
Og så videre..

INSERT INTO `vagtplan` (`id`, `navn`, `dato`, `dag`, `tidsrum`, `pladser`, `pladser_brugt`) VALUES
(1, 'A', '26/06', 'Lørdag', '07.00 - 15.00', 0, 0),
(3, 'C', '26/06', 'Lørdag', '23.00 - 07.00', 0, 0),
(2, 'B', '26/06', 'Lørdag', '15.00 - 23.00', 0, 0),
(4, 'D', '27/06', 'Søndag', '07.00 - 15.00', 0, 0),
og så videre...


Det er så menigen at det skal postes ud og komme til at ligne noget lign det her: http://www.qub.dk/test.htm


Har prøvet med følgende kode, men der viser den kun 1 af dagene..:

$query = mysql_query("Select * from dato order by id asc") or die(mysql_error());
while($row = mysql_fetch_array($query))
{   
print '
<tr>
    <td class="content_mid2">' . $row['dato'] . '</td>
    <td class="content_mid2">' . $row['ugedag'] . '</td>
';
    $query1 = mysql_query("Select * from vagtplan where dato = ".$row['dato']." order by id desc limit 0,3") or die(mysql_error());
    while($row1 = mysql_fetch_array($query1))
        {
print '
        <td class="content_mid3"><a class="edit" href="#">'.$row1['navn'].' (15)</a></td>
';
        }
print '   
</tr>';
}



Håber der er nogen der kan gi mig en løsning på dette problem...
Avatar billede intenz Novice
28. november 2009 - 17:06 #1
Du har en syntaks fejl her:
$query1 = mysql_query("Select * from vagtplan where dato = ".$row['dato']." order by id desc limit 0,3") or die(mysql_error());

dato = ".$row['dato']." virker kun hvis det er et tal. Det du prøver at hente er en variabel og du skal derfor bruge:
dato = '".$row['dato']."'
Avatar billede qub- Novice
28. november 2009 - 17:27 #2
Årh ja.. nu poster den dem allesammen...

Men har du så en idé til hvad jeg gør, hvis man fx sletter den der hedder: "1, 'A', '26/06', 'Lørdag', '07.00 - 15.00', 0, 0)"

Så skal den der hedder: "1, 'B', '26/06', 'Lørdag', '15.00 - 23.00', 0, 0)
jo stadig stå under 15.00 - 23.00, men den rykker den ned på 07.00 - 15.00 plads..

Hvordan linker jeg dem hver især til deres tidsrum ??
Avatar billede intenz Novice
28. november 2009 - 18:00 #3
Du kunne gemme dem i et array og så smide den ind i tabellen bagefter. Så kan du tjekke om de er der og sætte noget 'ingen data' tekst ind i stedet hvis de ikke er.

Det er lidt mere besværligt fordi du gemmer dato og tid som variabler i stedet for enten timestamp eller mysql DATETIME felter.

Men det kunne være noget i den stil her (ikke testet):
$query1 = mysql_query("Select * from vagtplan where dato = '".$row['dato']."' order by id desc limit 0,3") or die(mysql_error());
$tid_array = array();
while($row1 = mysql_fetch_array($query1)) {
    $tid_array[$row1[dato]][$row[tidsrum]]['navn'] = $row1['navn'];
}

foreach ($tid_array as $dato => $tidsrum_data) {
    ?>
    <td class="content_mid3"><a class="edit" href="#"><?php print (isset($tidsrum_data['07.00 - 15.00'])) ? $tidsrum_data['07.00 - 15.00']['navn'] : "intet data";?> (15)</a></td>
    <td class="content_mid3"><a class="edit" href="#"><?php print (isset($tidsrum_data['15.00 - 23.00'])) ? $tidsrum_data['15.00 - 23.00']['navn'] : "intet data";?> (15)</a></td>
    <td class="content_mid3"><a class="edit" href="#"><?php print (isset($tidsrum_data['23.00 - 07.00'])) ? $tidsrum_data['23.00 - 07.00']['navn'] : "intet data";?> (15)</a></td>
    <?php
}
Avatar billede qub- Novice
28. november 2009 - 18:38 #4
Det ser sku ud til det virker... :P
Arbejder bare lige på at få hele td'en til at blive skrevet, oppe i while.. Så man kan vælge en anden class hvis der intet data er..

men det fungere ik rigtig :)

$ledige_pladser = $row1['pladser'] - $row1['pladser_brugt'];
$tid_array[$row1['dato']][$row1['tidsrum']]['navn'] =  $row1['navn'].' ('.$ledige_pladser.')</a></td>';


Men kan du ik lige smide et svar så du kan få dine velfortjente points :)
Avatar billede qub- Novice
28. november 2009 - 18:41 #5
nå jeg fik det til at virke..

Bare smid et svar :)

og mange tak
Avatar billede intenz Novice
28. november 2009 - 20:09 #6
Super :)

Som du sikkert har regnet ud, lavede jeg det så du kan tilføje flere ting end navn til det array:
$tid_array[$row1[dato]][$row[tidsrum]]['navn'] = $row1['navn'];

Der kan du vare ændre navn til noget andet og outputte det i den næste løkke på samme måde som med navn.
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