Toon meer afbeeldingen na klik op link
Ik ben bezig met het maken van een pagina waar heel wat afbeeldingen getoond moeten worden, ik doe dit nu a.d.h.v een whilelus. Maar ik zou graag 9 afbeeldingen tonen en onder deze reeks afbeeldingen een link, die telkens 9 nieuwe afbeeldingen er bij laadt. Ik ben al een hele tijd aan het zoeken, maar ik vind niet echt iets gelijkaardig en ik zou ook niet echt weten hoe ik hieraan moet beginnen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$query = mysql_query("SELECT id, naam, nummer, foto FROM ki_beren ORDER BY datum DESC LIMIT 9");
while($row = mysql_fetch_array($query))
{
echo "<a href='show.php?id=".$row['id']."'>";
echo "<div id='kibeer'>";
echo $row['naam'];
echo "<br>";
echo "<img src='../image/".$row['foto']."' class='stretch'>";
echo "</div>";
echo "</a>";
}
?>
$query = mysql_query("SELECT id, naam, nummer, foto FROM ki_beren ORDER BY datum DESC LIMIT 9");
while($row = mysql_fetch_array($query))
{
echo "<a href='show.php?id=".$row['id']."'>";
echo "<div id='kibeer'>";
echo $row['naam'];
echo "<br>";
echo "<img src='../image/".$row['foto']."' class='stretch'>";
echo "</div>";
echo "</a>";
}
?>
Gewijzigd op 20/11/2012 16:10:54 door Jos Vermassen
Zet bovenaan je whilelus $i = 1;
En met voor het einde van je lus $i++;
Dan kun je een if statement plaatsen met de vergelijking;
Gewijzigd op 20/11/2012 17:06:23 door Milo S
Milo S op 20/11/2012 16:17:21:
Hiervoor kun je gewoon een if statement uitvoeren..
Zet bovenaan je whilelus $i=1;
En met voor het einde van je lus $i++;
Dan kun je een if statement plaatsen met de vergelijking;
Zet bovenaan je whilelus $i=1;
En met voor het einde van je lus $i++;
Dan kun je een if statement plaatsen met de vergelijking;
Hm ik snap niet goed wat je bedoelt. Mijn bedoeling is als je op de pagina komt dat er 9 afbeeldingen al klaar staan met daaronder een link 'toon meer'. Moet ik dan niet iets met LIMIT doen in mijn query?
Dit is de pagina:
http://www.yannickluijten.be/luc/kicentrum/
Je zult dan je getal in limit variabel moetn maken en deze met 9 verhogen naarmate je vaker op de link klikt
Zodra ik thuis ben kan ik een voorbeeld maken maat wie weet is iemand mij voor
Milo S op 20/11/2012 16:49:35:
Aah zo, dan heb ik jou verkeerd begrepen...
Je zult dan je getal in limit variabel moetn maken en deze met 9 verhogen naarmate je vaker op de link klikt
Zodra ik thuis ben kan ik een voorbeeld maken maat wie weet is iemand mij voor
Je zult dan je getal in limit variabel moetn maken en deze met 9 verhogen naarmate je vaker op de link klikt
Zodra ik thuis ben kan ik een voorbeeld maken maat wie weet is iemand mij voor
Dat had ik ook in gedacht, maar het komt er niet echt uit. Alvast bedankt voor je hulp, ik probeer nog wat verder
Wat je nu zult moeten doen is dus je LIMIT $variabel"; maken.
Bijvoorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$sql = "
SELECT
id,
naam,
nummer,
foto
FROM
ki_beren
ORDER BY
datum DESC
LIMIT ".mysql_real_escape_string( $_GET['limit'] );
?>
$sql = "
SELECT
id,
naam,
nummer,
foto
FROM
ki_beren
ORDER BY
datum DESC
LIMIT ".mysql_real_escape_string( $_GET['limit'] );
?>
Deze variabel moet je ergens vandaan halen, uit de link waarschijnlijk, vandaar de $_GET.
De link zul je dus na je foto's moeten weergeven. In deze link moet staan hoeveel foto's je wilt, nu staat er dus standaard 9 en wil je er steeds 9 meer. Houd in dat je dus het huidige limiet moet verhogen met 9 in je link zodat de query dit weet de volgende keer.
Als je dit alles in je script hebt gestopt moet jou wens in vervulling zijn gegaan. Wil je je wens alleen ook goed hebben zou ik eens kijken naar hoe je je query fatsoenlijke afhandelt..
Gewijzigd op 20/11/2012 17:06:46 door Milo S
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$query = "SELECT
id,
naam,
nummer,
foto
FROM
ki_beren
ORDER BY
datum DESC
LIMIT ".mysql_real_escape_string($_GET['limit']);
while($row = mysql_fetch_array($query))
{
echo "<a href='show.php?id=".$row['id']."'>";
echo "<div id='kibeer'>";
echo "<b>".$row['naam']."</b>";
echo "<br>";
echo "<img src='../image/".$row['foto']."' class='stretch'>";
echo "</div>";
echo "</a>";
}
echo '<a href="?limit='.( $limit + 9 ).'">meer foto\'s</a>';
?>
$query = "SELECT
id,
naam,
nummer,
foto
FROM
ki_beren
ORDER BY
datum DESC
LIMIT ".mysql_real_escape_string($_GET['limit']);
while($row = mysql_fetch_array($query))
{
echo "<a href='show.php?id=".$row['id']."'>";
echo "<div id='kibeer'>";
echo "<b>".$row['naam']."</b>";
echo "<br>";
echo "<img src='../image/".$row['foto']."' class='stretch'>";
echo "</div>";
echo "</a>";
}
echo '<a href="?limit='.( $limit + 9 ).'">meer foto\'s</a>';
?>
De foto's worden nu niet meer getoond, wat moet ik nu precies nog doen? (Sorry ben hier nog wat nieuw in)
Gewijzigd op 20/11/2012 17:19:54 door Jos Vermassen
Wat het beste is is als je nu een foutafhandeling maakt waarin ..
..je kijkt of de query succesvol wordt uitgevoerd, zo niet error.
..je kijkt of er wel enig resultaat is.
..je het resultaat weergeeft.
Hiervoor heb je nodig:
- echo
- if, elseif, else
- mysql_query
- mysql_num_rows
- mysql_fetch_assoc -> geen mysql_fetch_array
Vul de functies nu op de juiste plek neer. Zie dit als een soort leeropdracht want ik kan het wel voorkauwen maar dat heeft geen zin.
Zoals je ziet hoef je alleen de mysql_* functies nog maar te plaatsen, derest is een duwtje in de goede richting!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if( !$res = /*hier een functie?*/ )
{
echo 'De query is niet succesvol uitgevoerd.';
}
elseif( /*hier een functie*/ == 0 )
{
echo 'Er zijn geen afbeeldingen gevonden in onze database.';
}
else
{
/*
Hier ga je je data weergeven, je weet al hoe dit moet maar vervang wel even fetch_array voor fetch_assoc
*/
}
?>
if( !$res = /*hier een functie?*/ )
{
echo 'De query is niet succesvol uitgevoerd.';
}
elseif( /*hier een functie*/ == 0 )
{
echo 'Er zijn geen afbeeldingen gevonden in onze database.';
}
else
{
/*
Hier ga je je data weergeven, je weet al hoe dit moet maar vervang wel even fetch_array voor fetch_assoc
*/
}
?>
Gewijzigd op 20/11/2012 18:39:36 door Milo S
Milo S op 20/11/2012 17:42:07:
Hij laat nu niks meer zien omdat je de query nergens uitvoert (myqsl_query).
Wat het beste is is als je nu een foutafhandeling maakt waarin ..
..je kijkt of de query succesvol wordt uitgevoerd, zo niet error.
..je kijkt of er wel enig resultaat is.
..je het resultaat weergeeft.
Hiervoor heb je nodig:
- echo
- if, elseif, else
- mysql_query
- mysql_num_rows
- mysql_fetch_assoc -> geen mysql_fetch_array
Vul de functies nu op de juiste plek neer. Zie dit als een soort leeropdracht want ik kan het wel voorkauwen maar dat heeft geen zin.
Zoals je ziet hoef je alleen de mysql_* functies nog maar te plaatsen, derest is een duwtje in de goede richting!
Wat het beste is is als je nu een foutafhandeling maakt waarin ..
..je kijkt of de query succesvol wordt uitgevoerd, zo niet error.
..je kijkt of er wel enig resultaat is.
..je het resultaat weergeeft.
Hiervoor heb je nodig:
- echo
- if, elseif, else
- mysql_query
- mysql_num_rows
- mysql_fetch_assoc -> geen mysql_fetch_array
Vul de functies nu op de juiste plek neer. Zie dit als een soort leeropdracht want ik kan het wel voorkauwen maar dat heeft geen zin.
Zoals je ziet hoef je alleen de mysql_* functies nog maar te plaatsen, derest is een duwtje in de goede richting!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if( !$res = /*hier een functie?*/ )
{
echo 'De query is niet succesvol uitgevoerd.';
}
elseif( /*hier een functie*/ > 0 )
{
echo 'Er zijn geen afbeeldingen gevonden in onze database.';
}
else
{
/*
Hier ga je je data weergeven, je weet al hoe dit moet maar vervang wel even fetch_array voor fetch_assoc
*/
}
?>
if( !$res = /*hier een functie?*/ )
{
echo 'De query is niet succesvol uitgevoerd.';
}
elseif( /*hier een functie*/ > 0 )
{
echo 'Er zijn geen afbeeldingen gevonden in onze database.';
}
else
{
/*
Hier ga je je data weergeven, je weet al hoe dit moet maar vervang wel even fetch_array voor fetch_assoc
*/
}
?>
Oké bedankt, ik probeer dit. De foutafhandeling had wel gemaakt, had ze niet getoond hier.
Ik zou het wel tonen als ik jou was, anders blijft iedereen hier opmerkingen op maken, het is immers ook belangrijk. Oh en je hoeft niet steeds je quoten hoor dan wordt het topic onnodig lang met scrollen.
Milo S op 20/11/2012 17:49:21:
@ Jos,
Ik zou het wel tonen als ik jou was, anders blijft iedereen hier opmerkingen op maken, het is immers ook belangrijk. Oh en je hoeft niet steeds je quoten hoor dan wordt het topic onnodig lang met scrollen.
Ik zou het wel tonen als ik jou was, anders blijft iedereen hier opmerkingen op maken, het is immers ook belangrijk. Oh en je hoeft niet steeds je quoten hoor dan wordt het topic onnodig lang met scrollen.
Ik krijg steeds de error dat mijn query mislukt is.. Zo zou het toch moeten?
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
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
<?php
$sql = "SELECT
id,
naam,
nummer,
foto
FROM
ki_beren
ORDER BY
datum DESC
LIMIT ".mysql_real_escape_string($_GET['limit']);
if (!$query = mysql_query($sql))
{
echo 'De query is niet succesvol uitgevoerd.';
}
elseif(mysql_num_rows($query) < 0)
{
echo 'Er zijn geen afbeeldingen gevonden in onze database.';
}
else
{
while($row = mysql_fetch_assoc($query))
{
echo "<a href='show.php?id=".$row['id']."'>";
echo "<div id='kibeer'>";
echo "<b>".$row['naam']."</b>";
echo "<br>";
echo "<img src='../image/".$row['foto']."' class='stretch'>";
echo "</div>";
echo "</a>";
}
echo '<a href="?limit='.( $limit + 9 ).'">meer foto\'s</a>';
}
?>
$sql = "SELECT
id,
naam,
nummer,
foto
FROM
ki_beren
ORDER BY
datum DESC
LIMIT ".mysql_real_escape_string($_GET['limit']);
if (!$query = mysql_query($sql))
{
echo 'De query is niet succesvol uitgevoerd.';
}
elseif(mysql_num_rows($query) < 0)
{
echo 'Er zijn geen afbeeldingen gevonden in onze database.';
}
else
{
while($row = mysql_fetch_assoc($query))
{
echo "<a href='show.php?id=".$row['id']."'>";
echo "<div id='kibeer'>";
echo "<b>".$row['naam']."</b>";
echo "<br>";
echo "<img src='../image/".$row['foto']."' class='stretch'>";
echo "</div>";
echo "</a>";
}
echo '<a href="?limit='.( $limit + 9 ).'">meer foto\'s</a>';
}
?>
Gewijzigd op 20/11/2012 18:03:35 door Jos Vermassen
Bij mij werkt het gewoon, maak jij wel connectie met je database?
Niet dit zijn:
Aangezien $limit niks betekend, of heb ik iets over het hoofd gezien?
@ Wesley, dat is correct, mijn fout geweest.
http://www.yannickluijten.be/luc/kicentrum/?limit=9 dan werkt het gewoon.
Nja mijn query faalt gewoon nog steeds. De connectie met de databank werkt want als je bijvoorbeeld deze url ingeeft: Dan faalt je query niet... In dit geval betekend het dat we nog niet klaar zijn. Zoals je zelf al zegt als je een getal meegeeft in de link werkt het wel. Dit hou dus in dat je een standaard getal moet opgeven tenzij in de link wat anders staat. Dit kun je zelf probeten
echo mysql_error();
Geef die melding eens
Foutafhandeling inbouwen zodat je precies de fout op het scherm krijgt. Zie mysql_error().
Milo S op 21/11/2012 13:54:17:
Als je in je script daaronder zet
echo mysql_error();
Geef die melding eens
echo mysql_error();
Geef die melding eens
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 10
lijn 10 is de FROM ki_beren in mijn query
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql = "SELECT
id,
naam,
nummer,
foto
FROM
ki_beren
ORDER BY
datum DESC
LIMIT ".mysql_real_escape_string($_GET['limit']);
?>
$sql = "SELECT
id,
naam,
nummer,
foto
FROM
ki_beren
ORDER BY
datum DESC
LIMIT ".mysql_real_escape_string($_GET['limit']);
?>
Verander alles waar $_GET['limit'] staat in $limit
Plaats bovenin je script vervolgens
$limit = empty( $_GET['limit'] ) ? '9' : htmlentities( $_GET['limit'] );
Het was de bedoeling dat hee dit zelf in ging bouwen maarjsa