Newsgroup: it.comp.www.php
Titolo: elenco

ebbene si, sono sempre io...  =)
fatto l'elenco dei film, è impensabile che li visualizzi tutti in una
pagina perchè sono 98... allora mi sono detta "e che ci vuole a fare una
sorta di link del tipo *precedenti* e *successivi*?"
impresa come al solito ardua, perchè forse mi sono complicata troppo le
cose e lo script mi sbaglia i conteggi (praticamente funziona solo se
uso i numeri a fondo pagina e non funzionano i link)...
ho immaginato fosse come al solito un problema di $_GET[%qualcosa%], ma
il problema si risolve solo in parte, evidentemente me n'è sfuggito
qlcuno, ma non riesco a trovarlo... (è tutta la mattina che ci sbatto la
testa)...
if (!isset($start) OR $start<0)
$start=0;  //da che id far partire l'elenco
$step = 10;  // quanti ne possono essere visualizzati in ogni pagina
$query = "SELECT id, titolo FROM film ORDER BY id LIMIT
$_GET[start],$step";
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result))
{
echo "<a href=\"view.php?id=$row[id]\">" . "$row[titolo]</a><br>"; }
?>
<br><br>
<table width=90% border=1><tr>
<td width=20% align=left>
<?
if ($start>0)
{ $start_back = $start - $step;
echo "<a href=all.php?start=$start_back>precedenti</a>";
}
?>
</td>
<?
$query = "SELECT count(*) AS tot FROM film";
//echo $tot;
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$pages = intval(($row[tot]-1) / $step)+1;
?>
<td width=60% align=center>
<?
for ($i=0; $i<$pages AND $i<5; $i++)
{ $start_page = $i * $step;
//echo $start_page;
echo "<a href=all.php?start=$start_page>" . ($i+1) . "</a> ";
}
?>
</td>
<td width=20%>
<?
if ($start + $step < $row[tot])
{ $start_next = $start + $step;
//echo $start_next;
echo "<a href=all.php?start=$start_next>successivi</a>";
}
?>
</td>
</tr></table>
<br>
michela

$_GET[start],$step";
Nella query usi $_GET[start] (a proposito, usa anzi $_GET['start'])
perň prima hai inizializzato $start, non dovresti usare questa
variabile nella query?
Ciao
Francesco Mazzi
Webmaster di AltroPC.it - 
http://www.altropc.it
 
Project Admin di "PHP Reservation - Online booking system" - 
http://phpreservation.sourceforge.net
Dev.Staff di E-Xoopport - 
http://dev.e-xoopport.it

 $_GET[start],$step";
adesso al posto di $_GET[start] mettici $start
(tra l'altro $_GET[start] sarebbe anche sbagliato perchè userebbe come
indice dell'array $_GET[] una costante che si chiama start che non è stata
definita, quindi attenzione agli apici o alle virgolette)

il resto mi sembra a posto, prova e fammi sapere
ciao gigabyte

 il resto mi sembra a posto, prova e fammi sapere
hai ragione, erano quelli gli errori!! e io che invece continuavo a fare
prove sbagliate con $_GET buttate da tutte le parti!!  =p
ora funziona a meraviglia!!
grazie
michela

:->

 tutti i film che iniziano per A,B, C, ecc.
più che altro quest'ultima cosa che ho fatto era solo di prova.... tanto
per procedere per gradi...
in realtà poi dovrò realizzare un motore di ricerca in modo che l'utente
possa effettuare una ricerca nel db in base a parametri come "regista,
attore/attrice, genere, titolo_film, anno, nazionalità"... 
è che al momento non sono ancora capace di implementare questa sorta di
interfaccia!! ma piano piano e con un pò del vostro aiuto (finchè non mi
mandate a quel paese) ce la farò!!  =D
michela 

per la divisione per nome bastano delle query tipo 
select * from where nomefilm like 'a%'
select * from where nomefilm like 'b%'
select * from where nomefilm like 'c%'
ecc ecc ecc
anzi meglio ancora
"select * from where nomefilm like '".$_GET[lettera]."%'";
dove $_GET[lettera] lo ottieni dal link cliccando su A
per il motore di ricerca se usi dei campi text, longtext ecc. puoi
usare il match

 usare il match
fatto stamattina... ora devo ottimizzarlo, in quanto al momento posso
eseguire una ricerca O per titolo O per paese O per genere O l'anno,
mentre voglio poter avere la possibilità di inserire il paese e l'anno
insieme (o cmq + di un parametro)...
l'unica cosa strana (perchè come al solito mi si verificano cose
particolari!!) è che la ricerca con un solo parametro funziona sempre,
cioè mi da i risultati giusti... però vengono visualizzati in maniera
casuale, ovvero in base all'id e non al titolo... 
ho allora deciso di inserire un semplice ordinamento per titolo...
risultato? funziona per tutte le ricerche tranne proprio per quella
fatta col titolo!! e ciò accade pur avendo fatto un semplice
"copia-incolla" dal ciclo in cui funziona!!
if ($tit != "") 
{
$keys = explode(" ", $tit);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys)) 
{ $parola = trim($parola);
if ($parola != "")
$query .= "tit_ital LIKE '%$parola%' OR tit_orig LIKE '%$parola%' OR ";
}
$query .= "0";
$query = "SELECT id, tit_ital,tit_orig,paese,genere,anno,voto,recensione
FROM film WHERE " . $query . "ORDER BY tit_ital";
}
elseif ($pae != "") 
{
$keys = explode(" ", $pae);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys)) 
{ $parola = trim($parola);
if ($parola != "")
$query .= "paese LIKE '%$parola%'";
}
$query = "SELECT id, tit_ital,tit_orig,paese,genere,anno,voto,recensione
FROM film WHERE " . $query . "ORDER BY tit_ital";
}
[cut degli altri endif, che tanto sono uguali]
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result))
{ echo "<a href=\"view.php?id=$row[id]\">" . "$row[tit_ital]" . " -
$row[genere]</a><br>"; }
in questo caso, per la ricerca per titolo mi viene risposto:
Warning :  mysql_fetch_array(): supplied argument is not a valid MySQL
result resource in /Library/Apache2/htdocs/result.php on line 5
come è possibile che in 3 casi funziona e in uno solo no (pur essendo
uguali?!?)
michela