database gegevens in 2 tabellen weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Rick

rick

12/05/2009 08:37:00
Quote Anchor link
Ik heb een site voor het beheren van telefoonnummers van een bedrijf. Nu moet er een lijst worden uitgedraait van alle interne nummers. Deze lijst moet op 1 A4 worden geplaatst.
Hiervoor heb ik de grootte van het lettertype aangepast en de lijst geprobeerd in twee tabellen te zetten.
Het probleem is dat deze lijst niet op alfabetische volgorde van naam kan worden gezet. Dit komt doordat ik alle even id-nummers in de rechter tabel heb geplaatst en alle oneven id-nummers in de linker tabel.
Weet er iemand een andere oplossing om te zorgen dat dit wel op alfabetische volgorde kan worden geplaatst?

Zie hier het tussenresultaat: http://rickvanderheiden.nl/telefoonlijst/internopnaamprint.php

De code:
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
<?php
ini_set('display_errors' , 1);
error_reporting(E_ALL ^ E_NOTICE);

//includes
include('config.php');
include('dbcon.php');

?>


<b>Interne nummers op naam</b>

<table BORDER="0" ALIGN="left" STYLE="font-size: 5.5pt;">
<tr align='left'>
    <td width="100"><b>Naam</b></td>
    <td width="10"><b>Telnr.</b></td>
    <td width="10"><b>Inlog</b></td>
    <td width="120"><b>Afdeling</b></td>
    <td width="10"><b>Groep</b></td>
    
    <td width="100"><b>Naam</b></td>
    <td width="10"><b>Telnr.</b></td>
    <td width="10"><b>Inlog</b></td>
    <td width="120"><b>Afdeling</b></td>
    <td width="10"><b>Groep</b></td>
</tr>
<?php
    $sql3
= "SELECT * FROM intern WHERE naam LIKE '%$zoekterm%' ";
    $query3 = mysql_query($sql3);
            if (!$query3) {
            echo "Foutje in je query: ".mysql_error().".<br />De query was: ".$sql3;
            }

            
            while($row2 = mysql_fetch_array( $query3 )) {
            $id = $row2['id'];
            $sql4 = "SELECT * FROM intern WHERE id=$id";
            $query4 = mysql_query($sql4);
            if (!$query4) {
            echo "Foutje in je query: ".mysql_error().".<br />De query was: ".$sql3;
            }

            if ($id % 2 == 1) {
            while($row4 = mysql_fetch_array( $query4 )) {
                $naam = $row4['naam'];
            }

            echo "<tr align='left'>";
            echo "<td width='100'>".$row2['naam']."</td>";
            echo "<td width='10'>".$row2['nummer']."</td>";
            echo "<td width='10'>".$row2['inlog']."</td>";
            echo "<td width='120'>".$row2['afdeling']."</td>";
            echo "<td width='10'>".$row2['groep']."</td>";
                        
    }
    if ($id % 2 == 0) {
            while($row4 = mysql_fetch_array( $query4 )) {
            $naam = $row4['naam'];
            }

            
            echo "<td width='100'>".$row2['naam']."</td>";
            echo "<td width='10'>".$row2['nummer']."</td>";
            echo "<td width='10'>".$row2['inlog']."</td>";
            echo "<td width='120'>".$row2['afdeling']."</td>";
            echo "<td width='10'>".$row2['groep']."</td>";

            echo "</tr>";
    }}

?>
</table>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin

if (window.print) {
document.write('<form>'
+ '<input type=button name=print value="Printen" '
+ 'onClick="javascript:window.print()"></form>');
}

// End -->
</script>
 
PHP hulp

PHP hulp

06/11/2024 00:54:48
 

12/05/2009 08:55:00
Quote Anchor link
Waarom meerdere queries? Je kunt het toch ook doen in één query met order by?
 
Rick

rick

12/05/2009 09:03:00
Quote Anchor link
order by werkt niet. Wanneer ik in de query "ORDER BY naam ASC" zet, komt de lijst wel op alfabetische volgorde alleen wordt deze niet goed weergeven. Zie het voorbeeld: http://rickvanderheiden.nl/telefoonlijst/internopnaamprint1.php
Gewijzigd op 01/01/1970 01:00:00 door rick
 

12/05/2009 09:05:00
Quote Anchor link
Dan moet je het aantal tellen, en dan halverwegen de linker kolom afbreken en met de rechter beginnen.
 
Rick

rick

12/05/2009 09:09:00
Quote Anchor link
Dus aantal rows tellen hoeveel er op een A4 kunnen. Wanneer dat bereikt is verder met de rechter tabel. ZOiets had ik ook in gedachten maar weet niet hoe ik dit in code omzet??

Wanneer zoveel rows bereikt--> ga verder met de rechter tabel.
 
- SanThe -

- SanThe -

12/05/2009 09:20:00
Quote Anchor link
Misschien heb je hier wat aan?
 
Rick

rick

12/05/2009 09:28:00
Quote Anchor link
Bedankt SanThe, dit is een erg handige link. Alleen het probleem hier is ik haal meerdere gegevens uit de database, en hier wordt met 1 gegeven gewerkt.
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
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// onderstaand array is dus jouw database
$array = array('een', 'twee', 'drie', 'vier', 'vijf', 'zes', 'zeven', 'acht', 'negen', 'tien');

// aantal kolommen die je wilt hebben
$kolommen = 3;

// dit is eigenlijk mysql_num_rows()
$max = count($array);

// afblijven
$stap = ceil($max / $kolommen);

echo '<table>';
for($i=0; $i<$stap; $i++)
{

    echo '<tr>';
    for($j=0; $j<$kolommen; $j++)
    {

        if(($i + ($j * $stap)) < $max)
        {

            // hier moet je fetchen en de data neerzetten
            echo '<td>' . $array[$i + ($j * $stap)] . '</td>';
        }

        else
        {
            echo '<td> </td>';
        }
    }

    echo '</tr>';
}

echo '</table>';
?>



Output:
  een     vijf    negen
 twee      zes     tien
 drie    zeven    
 vier     acht
 
- SanThe -

- SanThe -

12/05/2009 09:39:00
Quote Anchor link
Dat is een kwestie van een kleine aanpassing lijkt mij.
 
Rick

rick

12/05/2009 09:46:00
Quote Anchor link
Welke kleine aanpassing is dat dan , want ik ben nu van alles aant proberen maar kom er echt niet uit? Zie bovenaan mijn script....
 

12/05/2009 09:50:00
Quote Anchor link
rick schreef op 12.05.2009 09:46:
Welke kleine aanpassing is dat dan , want ik ben nu van alles aant proberen maar kom er echt niet uit? Zie bovenaan mijn script....

Dat script heb je van SanThe vandaan. Daarin stat egwoon wat je moet aanpassen.
 

12/05/2009 09:53:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin

if (window.print) {
document.write('<form>'
+ '<input type=button name=print value="Printen" '
+ 'onClick="javascript:window.print()"></form>');
}

// End -->
</script>


Dit is natuurlijk nutteloos... (even tussendoor)
 
Rick

rick

12/05/2009 09:53:00
Quote Anchor link
Ja ik ga dus bij array mijn database invullen. Ik gebruik 1 tabel uit een database waaronder de gegevens naam, telefoonnummer, inlog, afdeling en groep staan geregistreerd. Hoe vul ik dit dan in bij die array??
 
- SanThe -

- SanThe -

12/05/2009 09:56:00
Quote Anchor link
Hier maak je 2 van
// aantal kolommen die je wilt hebben
$kolommen = 3;

Hier maak je mysql_num_rows($result_van_je_query) van
// dit is eigenlijk mysql_num_rows()
$max = count($array);

Hier zet je jouw data neer
// hier moet je fetchen en de data neerzetten
echo '<td>' . $array[$i + ($j * $stap)] . '</td>';

Edit:
rick schreef op 12.05.2009 09:53:
Ja ik ga dus bij array mijn database invullen. Ik gebruik 1 tabel uit een database waaronder de gegevens naam, telefoonnummer, inlog, afdeling en groep staan geregistreerd. Hoe vul ik dit dan in bij die array??

Zoiets?
echo '<td>' . $naam . '</td><td>' . $adres . '</td><td>' . $telf . '</td>';
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Rick

rick

12/05/2009 10:19:00
Quote Anchor link
Dus wat moet ik hier invullen dan?

// onderstaand array is dus jouw database
$array = array('een', 'twee', 'drie', 'vier', 'vijf', 'zes', 'zeven', 'acht', 'negen', 'tien');

Ik gebruik maar 1 tabel uit een database. In deze tabel staan de gegevens naam, telefoonnummer, inlog, afdeling en groep geregistreerd.
 
- SanThe -

- SanThe -

12/05/2009 10:24:00
Quote Anchor link
Die regel kan gewoon weg. Daar komt de select voor in de plaats.
 
Rick

rick

12/05/2009 10:56:00
Quote Anchor link
Ik kom er echt niet uit... Ben nog geen stap verder:S
 
- SanThe -

- SanThe -

12/05/2009 10:57:00
Quote Anchor link
Geef eens wat je tot nu toe hebt.
 
Rick

rick

12/05/2009 11:00:00
Quote Anchor link
Ik ben net weer overnieuw begonnen met prutsen.
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
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

//includes
include('config.php');
include('dbcon.php');

// onderstaand array is dus jouw database
$query = mysql_query("SELECT * FROM intern");
$aantal = mysql_num_rows($query);

// aantal kolommen die je wilt hebben
$kolommen = 2;

// dit is eigenlijk mysql_num_rows()
$max = count($aantal);

// afblijven
$stap = ceil($max / $kolommen);

echo '<table>';
for($i=0; $i<$stap; $i++)
{

    echo '<tr>';
    for($j=0; $j<$kolommen; $j++)
    {

        if(($i + ($j * $stap)) < $max)
        {

            // hier moet je fetchen en de data neerzetten
            echo '<td>' . $query[$i + ($j * $stap)] . '</td>';
        }

        else
        {
            echo '<td> </td>';
        }
    }

    echo '</tr>';
}

echo '</table>';
?>
 

12/05/2009 11:03:00
Quote Anchor link
$aantal = mysql_num_rows($query);
wordt
$max = mysql_num_rows($query);

// dit is eigenlijk mysql_num_rows()
$max = count($aantal);
kan weg

Je moet je data nog fetchen.
 
Rick

rick

12/05/2009 11:12:00
Quote Anchor link
Nu heb ik dit:
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
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

//includes
include('config.php');
include('dbcon.php');

// onderstaand array is dus jouw database
$query = mysql_query("SELECT * FROM intern ORDER BY naam ASC");
$max = mysql_num_rows($query);

// aantal kolommen die je wilt hebben
$kolommen = 2;

// afblijven
$stap = ceil($max / $kolommen);

echo '<table>';
for($i=0; $i<$stap; $i++)
{

    echo '<tr>';
    for($j=0; $j<$kolommen; $j++)
    {

        if(($i + ($j * $stap)) < $max)
        {

            // hier moet je fetchen en de data neerzetten
            while($row2 = mysql_fetch_array( $query )) {
            $id = $row2['id'];
                        
            echo '<td width="100">' . $row2['naam'][$i + ($j * $stap)] . '</td>';
        }}

        else
        {
            echo '<td> </td>';
        }
    }

    echo '</tr>';
}

echo '</table>';
?>


Als resultaat zie ik alleen de voorletters van alle namen...
 

12/05/2009 11:22:00
Quote Anchor link
Zit dat toevallig in de kolom naam?
Je kunt beter gebruik maken van mysql_fetch_assoc dat werkt wat makkelijker.
Gewijzigd op 01/01/1970 01:00:00 door
 

Pagina: 1 2 volgende »



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.