Virgo80
16-10-2008, 10:32
Ciao,
avrei un piccolo problemino di logica e PHP. :)
Ecco il quesito: ho un database MySql da cui prelevo tutta una serie di dati che imposto in una tabella. Il mio scopo è di dividere questa tabella su più pagine. Sono riuscita a creare l'avanti, ma non l'indietro!
Qualcuno saprebbe aiutarmi?
Metto qui il codice:
<?php
// Richiamo la variabile "pos" dalla pagina precedente.
$pos_da = $_REQUEST['pos'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<?php
echo "<script type=\"text/javascript\">
function funReload(form, next) {
form.action='".$_SERVER['PHP_SELF']."?pos='+next;
form.submit();
}
</script>";
?>
</head>
<body>
<form id="x" method="post">
<?php
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
// preparo la query. Se c'è pos_da allora esegue una query restrittiva, altrimenti seleziona dal primo record.
if($pos_da){
$query = "Select id, nome,email,sesso,newsletter,attivita,messaggio From utenti WHERE id >= $pos_da LIMIT 12";
}else{
$query = "SELECT id, nome,email,sesso,newsletter,attivita,messaggio FROM utenti ORDER BY ID ASC LIMIT 12";
}
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
$sesso_arr = array(' ','M','F');
$attivita_arr = array(' ','studente','lavoratore','disoccupato');
echo '
<table border="1">
<tr>
<th>ID</th>
<th>Nome</th>
<th>Email</th>
<th>Sesso</th>
<th>Newsletter</th>
<th>Attività</th>
<th>Messaggio</th>
</tr>';
while (($row = mysql_fetch_assoc($result)) and ($contatore<10)) {
$ID = ($row['id']);
$nome = htmlentities($row['nome']);
$email = htmlentities($row['email']);
$messaggio = htmlentities($row['messaggio']);
$messaggio = nl2br($messaggio);
if(!$email) $email = ' ';
if(!$messaggio) $messaggio = ' ';
$sesso = $sesso_arr[$row['sesso']];
$newsletter = $row['newsletter'] ? 'Si' : 'No';
$attivita = $attivita_arr[$row['attivita']];
echo "<tr>
<td>$ID</td>
<td>$nome</td>
<td>$email</td>
<td>$sesso</td>
<td>$newsletter</td>
<td>$attivita</td>
<td>$messaggio</td>
</tr>";
// mi serve per bloccare il ciclo a 10 righe
$contatore ++;
}
echo '</table>';
//memorizzo l'ID che è l'11° della lista, mi servirà per la query della pagina seguente
$nuova_pos = $row['id'];
// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);
// chiudo la connessione a MySQL
mysql_close();
//Indietro
echo "<input type=\"button\" value=\"<<\" onClick="" />"; :cry:
//Avanti
if($nuova_pos!=""){
echo "<input type=\"button\" value=\">>\" onClick=\"javascript:funReload(document.forms[0], '$nuova_pos')\" />";
}
?>
</form>
</body>
</html>
Grazie. :)
avrei un piccolo problemino di logica e PHP. :)
Ecco il quesito: ho un database MySql da cui prelevo tutta una serie di dati che imposto in una tabella. Il mio scopo è di dividere questa tabella su più pagine. Sono riuscita a creare l'avanti, ma non l'indietro!
Qualcuno saprebbe aiutarmi?
Metto qui il codice:
<?php
// Richiamo la variabile "pos" dalla pagina precedente.
$pos_da = $_REQUEST['pos'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<?php
echo "<script type=\"text/javascript\">
function funReload(form, next) {
form.action='".$_SERVER['PHP_SELF']."?pos='+next;
form.submit();
}
</script>";
?>
</head>
<body>
<form id="x" method="post">
<?php
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
// preparo la query. Se c'è pos_da allora esegue una query restrittiva, altrimenti seleziona dal primo record.
if($pos_da){
$query = "Select id, nome,email,sesso,newsletter,attivita,messaggio From utenti WHERE id >= $pos_da LIMIT 12";
}else{
$query = "SELECT id, nome,email,sesso,newsletter,attivita,messaggio FROM utenti ORDER BY ID ASC LIMIT 12";
}
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
$sesso_arr = array(' ','M','F');
$attivita_arr = array(' ','studente','lavoratore','disoccupato');
echo '
<table border="1">
<tr>
<th>ID</th>
<th>Nome</th>
<th>Email</th>
<th>Sesso</th>
<th>Newsletter</th>
<th>Attività</th>
<th>Messaggio</th>
</tr>';
while (($row = mysql_fetch_assoc($result)) and ($contatore<10)) {
$ID = ($row['id']);
$nome = htmlentities($row['nome']);
$email = htmlentities($row['email']);
$messaggio = htmlentities($row['messaggio']);
$messaggio = nl2br($messaggio);
if(!$email) $email = ' ';
if(!$messaggio) $messaggio = ' ';
$sesso = $sesso_arr[$row['sesso']];
$newsletter = $row['newsletter'] ? 'Si' : 'No';
$attivita = $attivita_arr[$row['attivita']];
echo "<tr>
<td>$ID</td>
<td>$nome</td>
<td>$email</td>
<td>$sesso</td>
<td>$newsletter</td>
<td>$attivita</td>
<td>$messaggio</td>
</tr>";
// mi serve per bloccare il ciclo a 10 righe
$contatore ++;
}
echo '</table>';
//memorizzo l'ID che è l'11° della lista, mi servirà per la query della pagina seguente
$nuova_pos = $row['id'];
// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);
// chiudo la connessione a MySQL
mysql_close();
//Indietro
echo "<input type=\"button\" value=\"<<\" onClick="" />"; :cry:
//Avanti
if($nuova_pos!=""){
echo "<input type=\"button\" value=\">>\" onClick=\"javascript:funReload(document.forms[0], '$nuova_pos')\" />";
}
?>
</form>
</body>
</html>
Grazie. :)