Newsgroup: it.comp.www.php
Titolo: oggetti per pagina

Ho uno script php che si connette a mysql e pubblica tutte le immagini con 
relativo commento contenute in una table. Come faccio a limitare il numero 
di immagini pubblicate per pagina. E di conseguenza a inserire le immagini 
in piu' pagine navigabili mantenendo un unico link?
grazie

 ha scritto nel messaggio
news:u6xpa.48901$LB6.1...@news1.tin.it...

http://www.phpbuilder.com/columns/rod20001214.php3
--
Kluge
1. n. A Rube Goldberg device
2. n. Something that works for the wrong reason.

:

Crei una query ordinata (ORDER BY datainvio, per esempio). A quel punto
se dal browser NON ti arriva il parametro s, prendi s=0.
Poi con l'opzione LIMIT di MySQL fai il resto.
	page.php?s=50
ti ritorna sulla pagina, iniziando dalla 50ma immagine e mostrandone K,
con K a piacere.
	<A HREF="page.php?s=<?= $start - $K ?>">indietro</A>
	<A HREF="page.php?s=<?= $start + $K ?>">prossime <?= $K ?></A>
ecc ecc. (esempi migliori sulle FAQ, che trovi sul gruppo).
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 se dal browser NON ti arriva il parametro s, prendi s=0.
Riesco a navigare correttamente la prima pagina ma se vado su NEXT non mi 
appare nulla. Questo e' l'accrocco:
-start code-----------------------------------------------------------
include "include.php";
include "head.php";
$conn = db_connect();
$limit = 5;
$numresults=mysql_query("SELECT * FROM tabella where page='$page' and 
published
is not null ORDER BY published desc");
$numrows=mysql_num_rows($numresults);
if (empty($offset)) {
$offset=0;
}
$sql = "SELECT * FROM tabella WHERE page='$page' and published is not null
ORDER by published desc limit $offset, $limit ";
$result = mysql_query($sql,$conn) or die("Could not execute query.");
while ($story = mysql_fetch_array($result)) {
  print "<H2>".$story[riassunto]."</H2>";
  if ($story[picture]) {
    $size = getImageSize($story[picture]);
    $width  = $size[0];
    $height = $size[1];
    print "<IMG SRC=\"resize_image.php?image=$story[picture]\" ALIGN=TOP>";
}
mysql_free_result($result);
$pages=intval($numrows/$limit);
if ($numrows%$limit) {
$pages++;
}
for ($i=1;$i<=$pages;$i++) {
$newoffset=$limit*($i-1);
print "<a href=\"$PHP_SELF?offset=$newoffset\">$i</a> \n";
}
if ($offset>1) {
$prevoffset=$offset-$limit;
print "<a href=\"$PHP_SELF?offset=$prevoffset\">Prev</a> \n";
}
if ($numrows>($offset+$limit)) {
$nextoffset=$offset+$limit;
print "<a href=\"$PHP_SELF?offset=$nextoffset\">Next</a><p>\n";
}
include "base.php";
--end code-------------------------------------------------------------
ciao e grazie

 2. n. Something that works for the wrong reason.
grazie

$pages=intval($numrows/$limit);
$pages = intval(($numrows + $limit - 1) / $limit);
for ($page = 0; $page < $pages; $page++)
{
	$newoffset = $page * $limit;
	if ($offset == $newoffset)
		print "&nbsp;$page&nbsp;"
	else
	{
		if ($offset > $newoffset)
			$text = 'Prev';
		else
			$text = 'Next';
		print "<A
HREF=\"$_SERVER[PHP_SELF]?offset=$newoffset\">$text</a>\n";
	}
}
Leonardo

 $numrows = $dat['n'];
...
Purtroppo non riesco ancora a risolvere il problema. Quando carico 
/url/page.php?page='$page' mi appaiono le prime 5 immagini come da $limit=5
ma con /page.php?offset='nuovo offset' ottengo una pagina vuota.
ciao e scusa per il tempo perso 

ma con /page.php?offset='nuovo offset' ottengo una pagina vuota.
Fatti stampare la query a video prima che la esegua e prova ad eseguirla
da console mysql. Vedi se ti da' qualche indizio su cosa succede.


 
Mi ero dimenticato di aggiungere &page='$page' a
<A HREF=\"$_SERVER[PHP_SELF]?offset=$newoffset\">.
Ora funziona tutto.
grazie ancora per l'aiuto :-)
ciao