Data meerdere keren uit database halen in 1 tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard Duinmayer

Richard Duinmayer

08/02/2009 22:03:00
Quote Anchor link
Oke ik zit vast.. de onderstaande code genereerd een rooster aan de hand van een datum range. Alleen wordt het totaal aan personen uit de database weergegeven, terwijl er zoveel personen weergegeven dienen te worden als de datum range ($werkdagen) toe laten. Het zie eruit als volgt:
09-02-2009 - Test2 Test2 - Yanne Véronneau
10-02-2009 - test test - Test2 Test2
11-02-2009 - test1 test 1- Test2 Test2
12-02-2009 - test 3 test 3 - Test2 Test2
13-02-2009 - test 4 test 4 - Test2 Test2

16-02-2009 - test 5 test 5 - Test2 Test2
17-02-2009 - leeg.. hier moet data - leeg.. hier moet data -
18-02-2009 - leeg.. hier moet data - leeg.. hier moet data -
19-02-2009 - leeg.. hier moet data - leeg.. hier moet data -

Ik wil ook graag gegevens uit 2 database tabellen toevoegen maar heb geen idee hoe ik dat aan deze toe kan voegen :( het gaan om beschikbaarheid (beschikbaar_ma (1 of 0), beschikbaar_di (1 of 0), etc) en om afwezigheid met een van datum en een tot datum waarbij de persoon niet beschikbaar is.

In de $sql haal ik wel alle gegevens om maar weet niet waar en hoe ik er zeker van kan zijn dat deze goed verwerkt worden.



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{


echo 'Rooster van: ' . $_POST['vandate'] . ' tot ' . $_POST['totdate'] . '<br>';

// datum bereik
$vandate = strtotime($_POST['vandate']);
$totdate = strtotime($_POST['totdate']);

// teller instellen
$werkdagen = array();
$dagnamen = array();

// loopen door alle dagen
for ($i = $vandate; $i <= $totdate; $i+= 86400)
  {
  
  if(date("w",$i) != 0 AND date("w",$i) != 6) // Weekenden uit de dagen filteren
    {
    // 07-1-09-02-2009 (Weeknummer, dagnummer, dag, maand, jaar) date('W-w-d-m-Y', $i);
    $werkdagen[] = array("Weeknummer" => date('w', $i),
                         "dagnummer" => date('w', $i),
                         "dag" => date('d', $i),
                         "maand" => date('m', $i),
                         "jaar" => date('Y', $i));
    }
  }


// Query afhandeling
$sql = "SELECT *
        FROM medewerkers
        INNER JOIN beschikbaarheid ON medewerker_id = id
        INNER JOIN afwezigheid ON id = id
        ORDER BY RAND()"
;
                                            
if(!$result = mysql_query($sql))
{

    echo 'Helaas is er een fout opgetreden bij het ophalen van de gegevens';
    echo ': ' . mysql_errno() . ':' . mysql_error() . '(<pre>' . $sql . '</pre>)';
    }

    elseif(mysql_num_rows($result) < 1)
    {

        echo 'Helaas is er een fout opgetreden bij het ophalen van de gegevens.';
        echo 'Het aantal rijen dat opgehaald is is '.mysql_num_rows().' terwijl er 1 rij was verwacht. (<pre>' . $sql . '</pre>)';
        }

        else
        {
             echo '<table>' . "\n";
            foreach($werkdagen as $dag)
            {

                           
                //lege variabele voor vergelijk maken
                $last_id = '';
                    $data = mysql_fetch_assoc($result);
                         echo '<tr>';
                         echo '<td>';
                           echo $dag['dag']. '-' .$dag['maand']. '-' .$dag['jaar'] . ' ';
                        echo '</td>';              
                        echo '<td>' . "\n";
                        echo $data['voornaam'] . ' ' .  $data['achternaam'];
                        echo '<td>' . "\n";
                        echo '  -  ';
                        echo '</td>' . "\n";
                        echo '</td>' . "\n";
                        echo '<td>' . "\n";
                            if ($data['id'] != $last_id)
                            {

                            $sql2 = "SELECT * FROM medewerkers
                                     WHERE id!= '"
. $data['id'] . "' and kantoornummer_id!='" . $data['kantoornummer_id'] . "' ORDER BY RAND()";
                                if(!$result2 = mysql_query($sql2))
                                {

                                    echo 'Helaas is er een fout opgetreden bij het ophalen van de gegevens';
                                    echo ': ' . mysql_errno() . ':' . mysql_error() . '(<pre>' . $sql2 . '</pre>)';
                                }

                                elseif(mysql_num_rows($result2) < 1)
                                {

                                    echo 'Helaas is er een fout opgetreden bij het ophalen van de gegevens.';
                                    echo ' Het aantal rijen dat opgehaald is is '.mysql_num_rows().' terwijl er 1 rij was verwacht. (<pre>' . $sql . '</pre>)';
                                }

                                else
                                {    
                                    $data2 = mysql_fetch_assoc($result2);        
    
                                    // hier moet een andere medewerker komen te staan              
                                    echo $data2['voornaam'] . ' ' . $data2['achternaam'];
                                  }
                              }
  
                                                
                        echo '</td>' . "\n";
                        echo '</tr>' . "\n";
                        if ($dag['dagnummer'] == 5)
                        {

                            echo '<tr><td> </td></tr>';
                        }

                        
                     //We slaan het id op het laatst in de while nog even op, om te controleren met de volgende opgehaalde rij.
                     $last_id = $data['id'];
                     }
              
                
        echo '<table>' . "\n";
        }

?>
 
PHP hulp

PHP hulp

08/05/2024 23:37:58
 
- SanThe -

- SanThe -

08/02/2009 22:23:00
Quote Anchor link
Daar heb je al een topic over open staan.
http://www.phphulp.nl/forum/showtopic.php?cat=1&id=60919
Ga daar gewoon verder en niet steeds een nieuw topic openen.

Dubbelpost gesloten.

SanThe.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.