2 rijen
Ik heb een while lus,
Nu wil ik dat die lus alles uit de database haalt, maar dan niet zoals normaal in 1 lange rijen onder elkaar, maar dat de lus 2 rijen maakt.
Het zijn visite kaartjes, die nu in 1 lange rijen vanuit de database gehaald worden maar dit zou ik dus graag in 2 rijen willen hebben (wel dezelfde lus)
heeft iemand een idee?
Hoe wil je het hebben ingedeelt?
vb 1:
1 | 2
3 | 4
5 | 6
vb 2:
1 | 4
2 | 5
3 | 6
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
zoals voorbeeld 1
Een voorbeeldje met punten waar je op moet letten (niet getest)
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
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
<?php
// De query
$Query = mysql_query("SELECT id, ....");
// Je moet weten hoe veel het er zijn
$aantal = mysql_num_rows($Query);
// Tellertje die bijhoud hoever je bent
$teller = 1;
// Kijken of er wel resultaten gevonden zijn
if($aantal > 0)
{
// Beginnen
echo "<table>";
echo "<tr>";
// Alle gevonden dingetjes afgaan
while($Aiets = mysql_fetch_assoc($Query))
{
// Weergeven
echo "<td>".$Aiets['id']."</td>";
// Als dit de laatste was en het getal is oneven, dan nog een td zette
if($teller == $aantal && ($teller & 2) != 2)
echo "<td> </td></tr>";
// Anders als dit de laast is maar de teller is even
elseif($teller == $aantal && ($teller & 2) == 2)
echo "</tr>";
// Anders als de teller even is (maar dit was niet de laaste) dan een nieuwe rij beginnen
elseif(($teller & 2) == 2)
echo "</tr><tr>";
// Teller bijwerken
$teller++;
}
// Einde tabelletje
echo "</table>";
}
// anders zeggen dat je niets hebt gevonden
else
echo "nix";
?>
// De query
$Query = mysql_query("SELECT id, ....");
// Je moet weten hoe veel het er zijn
$aantal = mysql_num_rows($Query);
// Tellertje die bijhoud hoever je bent
$teller = 1;
// Kijken of er wel resultaten gevonden zijn
if($aantal > 0)
{
// Beginnen
echo "<table>";
echo "<tr>";
// Alle gevonden dingetjes afgaan
while($Aiets = mysql_fetch_assoc($Query))
{
// Weergeven
echo "<td>".$Aiets['id']."</td>";
// Als dit de laatste was en het getal is oneven, dan nog een td zette
if($teller == $aantal && ($teller & 2) != 2)
echo "<td> </td></tr>";
// Anders als dit de laast is maar de teller is even
elseif($teller == $aantal && ($teller & 2) == 2)
echo "</tr>";
// Anders als de teller even is (maar dit was niet de laaste) dan een nieuwe rij beginnen
elseif(($teller & 2) == 2)
echo "</tr><tr>";
// Teller bijwerken
$teller++;
}
// Einde tabelletje
echo "</table>";
}
// anders zeggen dat je niets hebt gevonden
else
echo "nix";
?>
Ik denk dat dit moet werken, heb het uit de losse pols geschreven dus niet getest en kan een foutje bevatten.
Maar ik denk dat het idee je wel duidelijk is :-)
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
ik ga eens kijken wat ik er mee kan,
bedankt ;)
laat maar wete of het is gelukt :-)
;) ga ik zeker doen
Die van Jan is beter uitgewerkt. De moeite waard om door te nemen.
ok, na een nachtje goed slapen ga ik weer rustig naar kijken, gister avond zag ik het niet zo helder meer;)
http://www.f1pitbabe.nl/siteby/2rijen.php
Maar hij geeft elke keer 1 lege <td> er tussen.
Vaag maar waar
En niet onderin maar er tussen.
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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
<?php
require_once ("config.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$num_cols = $_POST['num_cols'];
$limit = $_POST['limit'];
}
else {
$num_cols = 2;
$limit = 0;
}
?>
<h3>Voorbeeld:</h3>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>
<span class="label"><label for="num_cols">aantal kolommen:</label></span>
<select id="num_cols" name="num_cols" class="small">
<option value="2" <?php if ($num_cols == 2) echo 'selected';?>>2</option>
<option value="5" <?php if ($num_cols == 5) echo 'selected';?>>5</option>
<option value="7" <?php if ($num_cols == 7) echo 'selected';?>>7</option>
<option value="9" <?php if ($num_cols == 9) echo 'selected';?>>9</option>
</select>
per rij
</p>
<p>
<span class="label"><label for="limit">max aantal records:</label></span>
<select id="limit" name="limit" class="small">
<option value="0" <?php if ($limit == 0) echo 'selected';?>>geen limiet</option>
<option value="25" <?php if ($limit == 25) echo 'selected';?>>25</option>
<option value="50" <?php if ($limit == 50) echo 'selected';?>>50</option>
<option value="100" <?php if ($limit == 100) echo 'selected';?>>100</option>
<option value="200" <?php if ($limit == 200) echo 'selected';?>>200</option>
</select>
</p>
<p><input id="go" name="go" type="submit" value="go!"></p>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$sql = "SELECT * FROM Leden WHERE achternaam LIKE '".$letter."%'";
if (!empty ($limit)) {
$sql .= "LIMIT $limit";
}
$res = mysql_query ($sql) or die ("sql: " . $sql . "\n". mysql_error ());
$num_records = mysql_num_rows ($res);
if ($num_records % $num_cols) {
$num_empty_cells = $num_cols - ($num_records % $num_cols);
}
else {
$num_empty_cells = 0;
}
$cell_width = round (100 / $num_cols, 0);
$i = 0;
echo '<table width="100%">';
while ($obj = mysql_fetch_object ($res)) {
echo "\n";
if ($i % $num_cols == 0) {
echo '<tr>';
}
echo '<td width="' . $cell_width . '%">' . $obj->voornaam . ' '.$obj->tussenvoegsel.' '.$obj->achternaam. '</td>';
if (($i % $num_cols) == ($num_cols - 1)) {
echo '</tr>';
}
$i++;
}
if ($num_empty_cells) {
for ($i = 0; $i < $num_empty_cells; $i++) {
echo '<td> </td>';
}
echo '</tr>';
}
echo '</table>';
}
?>
</body>
</html>
require_once ("config.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$num_cols = $_POST['num_cols'];
$limit = $_POST['limit'];
}
else {
$num_cols = 2;
$limit = 0;
}
?>
<h3>Voorbeeld:</h3>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>
<span class="label"><label for="num_cols">aantal kolommen:</label></span>
<select id="num_cols" name="num_cols" class="small">
<option value="2" <?php if ($num_cols == 2) echo 'selected';?>>2</option>
<option value="5" <?php if ($num_cols == 5) echo 'selected';?>>5</option>
<option value="7" <?php if ($num_cols == 7) echo 'selected';?>>7</option>
<option value="9" <?php if ($num_cols == 9) echo 'selected';?>>9</option>
</select>
per rij
</p>
<p>
<span class="label"><label for="limit">max aantal records:</label></span>
<select id="limit" name="limit" class="small">
<option value="0" <?php if ($limit == 0) echo 'selected';?>>geen limiet</option>
<option value="25" <?php if ($limit == 25) echo 'selected';?>>25</option>
<option value="50" <?php if ($limit == 50) echo 'selected';?>>50</option>
<option value="100" <?php if ($limit == 100) echo 'selected';?>>100</option>
<option value="200" <?php if ($limit == 200) echo 'selected';?>>200</option>
</select>
</p>
<p><input id="go" name="go" type="submit" value="go!"></p>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$sql = "SELECT * FROM Leden WHERE achternaam LIKE '".$letter."%'";
if (!empty ($limit)) {
$sql .= "LIMIT $limit";
}
$res = mysql_query ($sql) or die ("sql: " . $sql . "\n". mysql_error ());
$num_records = mysql_num_rows ($res);
if ($num_records % $num_cols) {
$num_empty_cells = $num_cols - ($num_records % $num_cols);
}
else {
$num_empty_cells = 0;
}
$cell_width = round (100 / $num_cols, 0);
$i = 0;
echo '<table width="100%">';
while ($obj = mysql_fetch_object ($res)) {
echo "\n";
if ($i % $num_cols == 0) {
echo '<tr>';
}
echo '<td width="' . $cell_width . '%">' . $obj->voornaam . ' '.$obj->tussenvoegsel.' '.$obj->achternaam. '</td>';
if (($i % $num_cols) == ($num_cols - 1)) {
echo '</tr>';
}
$i++;
}
if ($num_empty_cells) {
for ($i = 0; $i < $num_empty_cells; $i++) {
echo '<td> </td>';
}
echo '</tr>';
}
echo '</table>';
}
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Tim Groot
Gewijzigd op 01/01/1970 01:00:00 door Tim Groot
Succes!
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
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
<?php
// De query
$Query = mysql_query("SELECT id, ....");
// Je moet weten hoe veel het er zijn
$aantal = mysql_num_rows($Query);
// Tellertje die bijhoud hoever je bent
$teller = 1;
// Kijken of er wel resultaten gevonden zijn
if($aantal > 0)
{
// Beginnen
echo "<table>";
echo "<tr>";
// Alle gevonden dingetjes afgaan
while($Aiets = mysql_fetch_assoc($Query))
{
// Weergeven
echo "<td>".$Aiets['id']."</td>";
// Als dit de laatste was en het getal is oneven, dan nog een td zette
if($teller == $aantal && ($teller & 1) == 1)
echo "<td> </td></tr>";
// Anders als dit de laast is maar de teller is even
elseif($teller == $aantal && ($teller & 1) != 1)
echo "</tr>";
// Anders als de teller even is (maar dit was niet de laaste) dan een nieuwe rij beginnen
elseif(($teller & 1) != 1)
echo "</tr><tr>";
// Teller bijwerken
$teller++;
}
// Einde tabelletje
echo "</table>";
}
// anders zeggen dat je niets hebt gevonden
else
echo "nix";
?>
// De query
$Query = mysql_query("SELECT id, ....");
// Je moet weten hoe veel het er zijn
$aantal = mysql_num_rows($Query);
// Tellertje die bijhoud hoever je bent
$teller = 1;
// Kijken of er wel resultaten gevonden zijn
if($aantal > 0)
{
// Beginnen
echo "<table>";
echo "<tr>";
// Alle gevonden dingetjes afgaan
while($Aiets = mysql_fetch_assoc($Query))
{
// Weergeven
echo "<td>".$Aiets['id']."</td>";
// Als dit de laatste was en het getal is oneven, dan nog een td zette
if($teller == $aantal && ($teller & 1) == 1)
echo "<td> </td></tr>";
// Anders als dit de laast is maar de teller is even
elseif($teller == $aantal && ($teller & 1) != 1)
echo "</tr>";
// Anders als de teller even is (maar dit was niet de laaste) dan een nieuwe rij beginnen
elseif(($teller & 1) != 1)
echo "</tr><tr>";
// Teller bijwerken
$teller++;
}
// Einde tabelletje
echo "</table>";
}
// anders zeggen dat je niets hebt gevonden
else
echo "nix";
?>
Wat had ik fout?
om te kijken of het een oneven getal is had ik dit:
($teller & 2) != 2
maar dat moest zijn:
($teller & 1) == 1
Thanx man ;)
Edit: Die ene lege tabel was een fout in de database kwam ik nu achter.
Ben blij dat het nu werkt
Gewijzigd op 01/01/1970 01:00:00 door Tim Groot
Ik ben ook opzoek naar een contructie zoals dit maar dan niet op deze manier:
1 | 2
3 | 4
5 | 6
Maar ik ben opzoek naar het volgende:
1 | 4
2 | 5
3 | 6
Ik heb al geprobeerd om met een limit te werken eerst bijvoorbeeld 0, 25 en daarna een aparte query met 25, 50 en dan in een while loop maar dat gaat niet helemaal goed.
hier wat aan?
Misschien