div's dynamisch genereren en de id's hiervan ophogen
Ik wil de resultaten van een sql-query in aparte dynamisch gegenereerde div's zetten en deze een teller meegeven van 1 tot 3. Dus als ik 7 resultaten uit de query krijg 7 dynamisch gegenereerde div's als volgt:
<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
<div id="div1"></div>
Het lukt me wel om de id's van de dynamisch gecreëerde div's steeds met 1 op te laten hogen, maar het lukt me niet om de id van de 4e dynamisch gegenereerde div weer bij 1 te laten beginnen.
Wat ik nu heb:
<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
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
<?php
$i=0;
mysql_select_db($blabla, $blabla);
$query_Items = "SELECT titel
FROM `tbl_Items`";
$result = mysql_query($query_Items);
if (!$result) {
echo "Could not successfully run query ($query_Items) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
while ($row = mysql_fetch_assoc($result)){
$i++;
echo '
<div id="div'.$i.'">
<p> '.$row["titel"]. ' </p>
</div>
'
;}
mysql_free_result($result);
?>
$i=0;
mysql_select_db($blabla, $blabla);
$query_Items = "SELECT titel
FROM `tbl_Items`";
$result = mysql_query($query_Items);
if (!$result) {
echo "Could not successfully run query ($query_Items) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
while ($row = mysql_fetch_assoc($result)){
$i++;
echo '
<div id="div'.$i.'">
<p> '.$row["titel"]. ' </p>
</div>
'
;}
mysql_free_result($result);
?>
</code>
Weet iemand hoe ik dat kan doen?
Toevoeging op 25/10/2014 09:17:45:
PS: Misschien i.p.v. een while-lus in een for-lus?
for ( $i = 1; $row = mysql_fetch_assoc($result); $i++ ) {
}
Maar dan weet ik nog steeds niet hoe ik de "i" na 3 weer bij 1 laat beginnen.
Gewijzigd op 25/10/2014 10:13:04 door Jo Immanuel
Je kunt in de while-lus $i toch weer op 1 zetten als $i 3 is?
Dat is eigenlijk mijn vraag: hoe zet je in een while-lus de $i weer op 1 als de $i 3 is en met 1 wordt opgehoogd?
- ga de div's niet ophogen maar geef ze in plaats daarvan het id mee van de overeenkomstige record in je tabel.
(SELECT titel FROM tbl_Items zal dus moeten worden: SELECT titel, id FROM tbl_Items)
- overweeg het data-id attribuut te gebruiken.
Mocht je om wat voor reden dan ook toch willen ophogen dan kan dat ook met een data-... attribuut..
Code (php)
Gewijzigd op 25/10/2014 10:33:44 door Frank Nietbelangrijk
Toevoeging op 25/10/2014 11:23:11:
PS: Voor div mag je ook class lezen.
De vraag wordt dan: Ik wil de resultaten van een sql-query in dynamisch gegenereerde div's zetten met een class die oploopt van 1 tot 3 en na 3 weer bij 1 begint.
Dus bij 7 resultaten uit de query:
<div class="class1"></div>
<div class="class2"></div>
<div class="class3"></div>
<div class="class1"></div>
<div class="class2"></div>
<div class="class3"></div>
<div class="class1"></div>
Toevoeging op 25/10/2014 11:43:20:
Ok, het is me gelukt.
<code>
</code>
Bedankt Obelix en Idefix. Je opmerking heeft me op het goede spoor gebracht.
Gewijzigd op 25/10/2014 11:44:54 door Jo Immanuel