database gegevens in 2 tabellen weergeven
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)
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
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>
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>
http://rickvanderheiden.nl/telefoonlijst/internopnaamprint1.php
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: Gewijzigd op 01/01/1970 01:00:00 door rick
Dan moet je het aantal tellen, en dan halverwegen de linker kolom afbreken en met de rechter beginnen.
Wanneer zoveel rows bereikt--> ga verder met de rechter tabel.
hier wat aan?
Misschien heb je Code (php)
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
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
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
Dat is een kwestie van een kleine aanpassing lijkt mij.
Welke kleine aanpassing is dat dan , want ik ben nu van alles aant proberen maar kom er echt niet uit? Zie bovenaan mijn script....
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
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>
<!-- 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)
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??
// 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 -
// 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.
Die regel kan gewoon weg. Daar komt de select voor in de plaats.
Ik kom er echt niet uit... Ben nog geen stap verder:S
Geef eens wat je tot nu toe hebt.
Code (php)
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
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>';
?>
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>';
?>
wordt
$max = mysql_num_rows($query);
// dit is eigenlijk mysql_num_rows()
$max = count($aantal);
kan weg
Je moet je data nog fetchen.
Code (php)
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
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>';
?>
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...
Je kunt beter gebruik maken van mysql_fetch_assoc dat werkt wat makkelijker.