Oneindige While loop
Ik probeer al een tijdje ervoor te zorgen dat er 4 producten in een tabel komen te staan van 2 rijen.
Alleen op dit moment als ik mijn code test blijft het oneindig lang doorgaan..kan iemand mij vertellen wat ik fout doe?
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
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
<?php
// hulpvariabelen
$limit = 8;
$aantal_kolommen = 4;
$kolom_breedte = 100; // in pixels
$aantal_items = $limit;
$huidige_kolom = 0; // als deze variabele de waarde 0 heeft dan is er een rij afgelopen
// en moet er een nieuwe beginnen
echo "<table width=\" ".$aantal_kolommen." * ".$kolom_breedte."\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\">";
$i = 0; // teller die meeloopt met je array, we gaan er van uit dat je array numerieke indices heeft
// $aantal_items is in dit geval gelijk aan sizeof($je_array)
while($i < $aantal_items) {
// waren we klaar met een rij ?
if($huidige_kolom == 0) {
// open een nieuwe rij
echo "<tr>\n"; // hier is \n toegevoegd om de leesbaarheid van de HTML-source te verhogen
}
// druk het item af - hier zou je dus nog tabellen kunnen nesten - in dit voorbeeld houden we het simpel
echo "<td><div class=\"imgteaser\">
<a href=\"#\">
" .$product_pic. "
<span class=\"more\">» Meer Info</span>
<span class=\"desc\">
<strong>" . $naam . "</strong>
<span class=\"creditsShop\">Credits:</span>". $credits ."<br />
<span class=\"goldcreditsShop\">GoldCredits:</span>". $goldcredits ."
</span>
</a>
</div></td>";
// we zijn een kolom verder, verhoog $huidige_kolom
$huidige_kolom++;
// waren we klaar met een rij ?
if($huidige_kolom == 4) {
// sluit de rij af en reset $huidige_kolom
echo "</tr>\n";
$huidige_kolom = 0;
}
if($huidige_kolom > 4) {
// sluit de rij af en reset $huidige_kolom
echo "<tr>\n";
}
if($huidige_kolom > 7) {
// sluit de rij af en reset $huidige_kolom
echo "</tr>\n";
}
}
?>
</table>
Bedankt alvast..
// hulpvariabelen
$limit = 8;
$aantal_kolommen = 4;
$kolom_breedte = 100; // in pixels
$aantal_items = $limit;
$huidige_kolom = 0; // als deze variabele de waarde 0 heeft dan is er een rij afgelopen
// en moet er een nieuwe beginnen
echo "<table width=\" ".$aantal_kolommen." * ".$kolom_breedte."\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\">";
$i = 0; // teller die meeloopt met je array, we gaan er van uit dat je array numerieke indices heeft
// $aantal_items is in dit geval gelijk aan sizeof($je_array)
while($i < $aantal_items) {
// waren we klaar met een rij ?
if($huidige_kolom == 0) {
// open een nieuwe rij
echo "<tr>\n"; // hier is \n toegevoegd om de leesbaarheid van de HTML-source te verhogen
}
// druk het item af - hier zou je dus nog tabellen kunnen nesten - in dit voorbeeld houden we het simpel
echo "<td><div class=\"imgteaser\">
<a href=\"#\">
" .$product_pic. "
<span class=\"more\">» Meer Info</span>
<span class=\"desc\">
<strong>" . $naam . "</strong>
<span class=\"creditsShop\">Credits:</span>". $credits ."<br />
<span class=\"goldcreditsShop\">GoldCredits:</span>". $goldcredits ."
</span>
</a>
</div></td>";
// we zijn een kolom verder, verhoog $huidige_kolom
$huidige_kolom++;
// waren we klaar met een rij ?
if($huidige_kolom == 4) {
// sluit de rij af en reset $huidige_kolom
echo "</tr>\n";
$huidige_kolom = 0;
}
if($huidige_kolom > 4) {
// sluit de rij af en reset $huidige_kolom
echo "<tr>\n";
}
if($huidige_kolom > 7) {
// sluit de rij af en reset $huidige_kolom
echo "</tr>\n";
}
}
?>
</table>
Bedankt alvast..
$i++;
Gr,
Bedankt voor je reactie, ben er een stuk verder mee gekomen!
Alleen nu zit ik bij het volgende probleem, met mijn code zoals die nu is krijg ik wel 8 resultaten uit mijn database in een tabel, alleen ik krijg ze 8 x 8, dus van elk product krijg ik er 8. Denk dat het een klein foutje is, alleen kan het zelf niet ontdekken. Code als volgt:
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
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
<?php
$result2 = mysql_query("SELECT * FROM producten LIMIT 0, 8");
while($row = mysql_fetch_array($result2))
{
$id = $row["productid"];
$naam = $row["productnaam"];
$credits = $row["credits"];
$goldcredits = $row["goldcredits"];
$categorie = $row["categorie"];
$link = $row["link"];
$text = $row["text"];
$check_pic = "producten/$id/pic.png";
$default_pic = "producten/0/test2.png";
if (file_exists($check_pic)) {
$product_pic = "<img class=\"pic\" src=\"$check_pic\" width=\"100px\" alt=\"\" height=\"100px\" border=\"0\" />"; // forces picture to be 100px wide and no more
} else {
$product_pic = "<img src=\"$default_pic\" width=\"100px\" alt=\"\" height=\"100px\" border=\"0\" />"; // forces default picture to be 100px wide and no more
}
// hulpvariabelen
$limit = 8;
$aantal_kolommen = 4;
$kolom_breedte = 100; // in pixels
$aantal_items = $limit;
$huidige_kolom = 0; // als deze variabele de waarde 0 heeft dan is er een rij afgelopen
// en moet er een nieuwe beginnen
echo "<table width=\"400\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\">";
$i = 0; // teller die meeloopt met je array, we gaan er van uit dat je array numerieke indices heeft
while($i < 8) {
// waren we klaar met een rij ?
if($huidige_kolom == 0) {
// open een nieuwe rij
echo "<tr>\n"; // hier is \n toegevoegd om de leesbaarheid van de HTML-source te verhogen
}
// druk het item af - hier zou je dus nog tabellen kunnen nesten - in dit voorbeeld houden we het simpel
echo "<td><div class=\"imgteaser\">
<a href=\"#\">
" .$product_pic. "
<span class=\"more\">» Meer Info</span>
<span class=\"desc\">
<strong>" . $naam . "</strong>
<span class=\"creditsShop\">Credits:</span>". $credits ."<br />
<span class=\"goldcreditsShop\">GoldCredits:</span>". $goldcredits ."
</span>
</a>
</div></td>";
$i++;
// we zijn een kolom verder, verhoog $huidige_kolom
$huidige_kolom++;
// waren we klaar met een rij ?
if($huidige_kolom == 4) {
// sluit de rij af en reset $huidige_kolom
echo "</tr>\n";
$huidige_kolom = 0;
}
if($huidige_kolom > 4) {
// sluit de rij af en reset $huidige_kolom
echo "<tr>\n";
$huidige_kolom = 0;
}
if($huidige_kolom > 7) {
// sluit de rij af en reset $huidige_kolom
echo "</tr>\n";
$huidige_kolom = 0;
}
}
}
?>
</table>
Elke opmerking waarmee ik verder kom is welkom!
Groetjes Joey
$result2 = mysql_query("SELECT * FROM producten LIMIT 0, 8");
while($row = mysql_fetch_array($result2))
{
$id = $row["productid"];
$naam = $row["productnaam"];
$credits = $row["credits"];
$goldcredits = $row["goldcredits"];
$categorie = $row["categorie"];
$link = $row["link"];
$text = $row["text"];
$check_pic = "producten/$id/pic.png";
$default_pic = "producten/0/test2.png";
if (file_exists($check_pic)) {
$product_pic = "<img class=\"pic\" src=\"$check_pic\" width=\"100px\" alt=\"\" height=\"100px\" border=\"0\" />"; // forces picture to be 100px wide and no more
} else {
$product_pic = "<img src=\"$default_pic\" width=\"100px\" alt=\"\" height=\"100px\" border=\"0\" />"; // forces default picture to be 100px wide and no more
}
// hulpvariabelen
$limit = 8;
$aantal_kolommen = 4;
$kolom_breedte = 100; // in pixels
$aantal_items = $limit;
$huidige_kolom = 0; // als deze variabele de waarde 0 heeft dan is er een rij afgelopen
// en moet er een nieuwe beginnen
echo "<table width=\"400\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\">";
$i = 0; // teller die meeloopt met je array, we gaan er van uit dat je array numerieke indices heeft
while($i < 8) {
// waren we klaar met een rij ?
if($huidige_kolom == 0) {
// open een nieuwe rij
echo "<tr>\n"; // hier is \n toegevoegd om de leesbaarheid van de HTML-source te verhogen
}
// druk het item af - hier zou je dus nog tabellen kunnen nesten - in dit voorbeeld houden we het simpel
echo "<td><div class=\"imgteaser\">
<a href=\"#\">
" .$product_pic. "
<span class=\"more\">» Meer Info</span>
<span class=\"desc\">
<strong>" . $naam . "</strong>
<span class=\"creditsShop\">Credits:</span>". $credits ."<br />
<span class=\"goldcreditsShop\">GoldCredits:</span>". $goldcredits ."
</span>
</a>
</div></td>";
$i++;
// we zijn een kolom verder, verhoog $huidige_kolom
$huidige_kolom++;
// waren we klaar met een rij ?
if($huidige_kolom == 4) {
// sluit de rij af en reset $huidige_kolom
echo "</tr>\n";
$huidige_kolom = 0;
}
if($huidige_kolom > 4) {
// sluit de rij af en reset $huidige_kolom
echo "<tr>\n";
$huidige_kolom = 0;
}
if($huidige_kolom > 7) {
// sluit de rij af en reset $huidige_kolom
echo "</tr>\n";
$huidige_kolom = 0;
}
}
}
?>
</table>
Elke opmerking waarmee ik verder kom is welkom!
Groetjes Joey
hier maak je de while al 8 keer.
en hier nog weer 8 keer,
ik weet niet of dit de oorzaak, miss zeg ik iets totaal onzins
Gewijzigd op 01/01/1970 01:00:00 door Joakim Broden
Bedankt, het is opgelost nu!
Groetjes joey
Was je nog van plan foutmelding etc in te bouwen?