php afbeeldingen uit database weergeven.

  • Onderwerp starter Onderwerp starter baws
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

baws

Terugkerende gebruiker
Lid geworden
9 apr 2010
Berichten
1.258
Hallo,
ik heb een database met pathnamen voor afbeeldingen en titels van de afbeeldingen.
ik wil een soort gallerij maken met de afbeeldingen per pagina. dit is gelukt maar als ik een nieuwe afbeelding toevoeg komt deze op naam in de lijst dus wordt de volgorde weer anders en staat afbeeldingen 2 bijvoorbeeld op pagina 5 waar hij eerder op pagina 4 stond.
als mensen deze pagina dus hebben gefavorit komen ze op de verkeerde pagina uit.
hoe kan ik zorgen dat de afbeeldingen altijd op dezelfde pagina staan.

mvg
 
plaats er een afbeelding id bij in je database. dan geef je de pagina ook een id en zo kun je dus de query gericht naar de juiste afbeelding laten zoeken!!!
 
Ik heb een afbeelding id.
maar het moet een gallerij zijn dus niet 1 afbeelding.
ik link nu naar bijvoorbeeld pagina 3 van de gallerij door ?pagina=3 aan de url toe te voegen dan worden bijvoorbeeld de afbeeldingen 15-20 weergegeven
 
Dus als ik het goed begrijp komen je foto's op alfabetisch volgorde op je scherm.
en je wilt niet dat als je een foto toevoegt dat deze er niet alfabetisch wordt toegevoegd?
 
PHP:
function showtattoos()
{
		//Totaal berekenen
		$toaalsql = "SELECT COUNT(*) FROM tattoos";
		$total = mysql_query("$toaalsql"); 
        $total = mysql_fetch_array($total); 
		$total =$total[0];	
		//Gewenste pagina.
		$pagina = $_GET["pagina"];
		//Afbeeldingen per pagina
		$limiet = 8	;
		//Paginas laden vanaf afbeelding nr.
		$begin = $pagina * $limiet;
		$einde = ($pagina +1) *$limiet;
		//Paginas berkenen.
		$paginas = ceil($total /$limiet);
		echo "Totaal plaatjes $total<br><br>";

		
	
	
	
	$sql = "SELECT * FROM `tattoos` order by id  LIMIT ".$begin.",". $limiet;
	$result = mysql_query("$sql");
	
	while($row = mysql_fetch_array($result))
		{
			$url = "/tattoos/".$row['path']; 
			echo "<b>Titel : </b>  ";
			
			echo $row['titel']."<br>	" ;
			if ($row['artiest'] !="")
			{
				echo "<b>Artiest : </b> ";
				echo $row['artiest'];
				echo "<br />";
			}
			if ($row['shop'] !="")
			{
				echo "<b>Shop : </b> ";
				echo $row['shop']."<br>";
			}
			if ($row['beschrijving'] !="")
			{
				echo "<b>Beschrijving : <br></b> ";
				echo $row['beschrijving']."<br>";
			}
			echo '<a href='.$url.'>';
			echo '<img src="'.$url.'" alt="Tattoo" /><br><br>';
			echo '</a>';
		}  
	
	
	echo "<center>";
	echo  "<b>Pagina </b>";
	 for ($i=0;  $i<$paginas;  $i++) 
	{
		if ($i==$pagina)
		{
		
		echo '<font size="5">';
		echo "<b><a href=''mijnsite.nl/paginas/tattoos.php?pagina=$i'>".($toatl - $pagina)."</a></b>  </font>";
		}
		else
		{
		echo "<a href='mijnsite.nl/paginas/tattoos.php?pagina=$i'>".($i+1)."</a>  ";
		}
	}
	echo "</center>";


dit is mijn code, hij werkt nu op id.
maar nu moet ik er voor zorgen dat de link die zichtbaar is naar de laatste pagina voorbeeld pagina 20.
de link bevat naar pagina 0 wat altijd de eerste geuploade bestanden bevat.
dus als er een nieuwe pagina met afbeeldingen bij komt wordt dit pagina 21 wat zichtbaar is voor mensen maar verwijst eigenlijk naar pagina 0 .
dus de nieuwste afbeeldingen komen op pagina 1 en de laatste op de laatste pagina link die zichtbaar is voor mensen
 
Laatst bewerkt:
Dus if( ($pagina + $limit) >= $total) then {

}

$total zijn al de images die je in de database hebt op geslagen.

#Beveiliging
$pagina = $_GET["pagina"];
zorg ervoor dat je zeker weet dat het een getal is, niet dat de gebruiker in je url heeft zitten knoeien
en dat het getal ook niet hoger gemaakt is dat wat het maximaal mag zijn.
 
nee bij limit geef ik aan hoeveel afbeeldingen er pagina weer gegeven mogen woorden.
 
Ja, okey
$pagina moest $begin = $pagina * $limiet; zijn

Als de begin foto (stel 20) + het limit per pagina ( stel 10) groter is dan de totaal aantal foto's in de DB dan maak de link return pagina = 0
 
Volgens mij is het niet helemaal duidleijk wat ik bedoel.
mijn links zien er bijvoorbeeld als volgt uit
pagina 1 2 3 4 5 6 7
maar de links zijn dan
6 5 4 3 2 1 0

als er dus een nieuwe pagina bij zou komen zou er nog een pagina 8 bij komen.
maar de ze pagina 8 verwijst dan naar 0 en pagina 1 naar 7
 
maak je query order by ID desc en nummer je pagina's normaal
 
dan komen ze wel in de goede volgoorde maar dan is pagina 0 niet de eerste post..
 
maak de index voor pagina 0 ook 0
 
Laatst bewerkt:
ja om dat stuk gaat het ook.
wat jij zegt gebruik hier i
die if statement geeft alleen het huidige pagina nummer weer.
maar om dat stuk gaat het.
 
het is gelukt met

for ($i=$paginas; $i>0; $i--)
{
if ($i==$pagina+1)
{
$hier =$total - $i;
echo '<font size="5">';
echo "<b><a href='mijnsite.nl.php?pagina=($i-1)'>".($paginas-$i )."</a></b> </font>";
}
else
{
echo "<a href='mijnsite.nl/paginas/tattoos.php?pagina=".($i-1)."'>".($paginas-$i )."</a> ";
}
}


mvg
 
en met

for ($i=$paginas; $i>0; $i--)
for ($i=$paginas; $i>0; $i--)
{
if ($i==$pagina+1)
{
$hier =$total - $i;
echo '<font size="5">';
echo "<b><a href='http://tattoonet.nl/paginas/tattoos.php?pagina=($i-1)'>".($paginas-$i +1 )."</a></b> </font>";
}
else
{
echo "<a href='http://tattoonet.nl/paginas/tattoos.php?pagina=".($i-1)."'>".($paginas-$i+1 )."</a> ";
}
}

begin je bij 1 ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan