Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-10-2008, 10:32   #1
Virgo80
Junior Member
 
Iscritto dal: Feb 2004
Città: Provincia di Torino
Messaggi: 3
Dividere una tabella di dati con php

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('&nbsp;','M','F');
$attivita_arr = array('&nbsp;','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&agrave;</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 = '&nbsp;';
if(!$messaggio) $messaggio = '&nbsp;';

$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="" />";

//Avanti
if($nuova_pos!=""){
echo "<input type=\"button\" value=\">>\" onClick=\"javascript:funReload(document.forms[0], '$nuova_pos')\" />";
}
?>
</form>
</body>
</html>


Grazie.
Virgo80 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2008, 14:10   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Solo un piccolo suggerimento. La clausola LIMIT permette di specificare sia l'offset che il numero di dati da prelevare quindi non ti serve creare due query diverse.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2008, 15:25   #3
Virgo80
Junior Member
 
Iscritto dal: Feb 2004
Città: Provincia di Torino
Messaggi: 3
Ciao,

ho risolto

Ecco il codice, spero possa servire ad altri in futuro (io mi sono dannata per trovarne uno che facesse al caso mio, e alla fine l'ho costruito prendendo un po' di qua e un po' di là):

<?php
// Richiamo la variabile "pagina" dalla pagina precedente.
$page=$_REQUEST["pagina"];

if(!$page)$page=0;

$page_prec = $page - 1;

$page_succ = $page + 1;

?>
<!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, page) {

form.action='".$_SERVER['PHP_SELF']."?pagina='+page;
form.submit();
}
</script>";
?>
</head>
<body>
<form id="x" method="post" action="">
<?php
//Serve a limitare la ricerca nel database a 10 record
$itemsPerPage=10;
//Serve a indicare da quale record deve partire la select
$start=$page*$itemsPerPage;

// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';

$query = "SELECT SQL_CALC_FOUND_ROWS * from utenti LIMIT $start, $itemsPerPage";

// invio la query
$result = mysql_query($query);

//vedo quanti record ci sono in tutto nella tabella e li memorizzo in $numRow;
$totRecord = mysql_query("Select FOUND_ROWS()");
$arrayRow=mysql_fetch_row($totRecord);
$numRow=$arrayRow[0];

// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}

$sesso_arr = array('&nbsp;','M','F');
$attivita_arr = array('&nbsp;','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&agrave;</th>
<th>Messaggio</th>
</tr>';
while ($row = mysql_fetch_assoc($result)) {
$ID = ($row['id']);
$nome = htmlentities($row['nome']);
$email = htmlentities($row['email']);
$messaggio = htmlentities($row['messaggio']);
$messaggio = nl2br($messaggio);

if(!$email) $email = '&nbsp;';
if(!$messaggio) $messaggio = '&nbsp;';

$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>";
}
echo '</table>';

// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);

// chiudo la connessione a MySQL
mysql_close();

if($page_prec>=0){
echo "<input type=\"button\" value=\"<<\" onClick=\"javascript:funReload(document.forms[0], '$page_prec')\" />";
}

if(($numRow / $itemsPerPage)>$page_succ){
echo "<input type=\"button\" value=\">>\" onClick=\"javascript:funReload(document.forms[0], '$page_succ')\" />";
}
?>
</form>
</body>
</html>

Naturalmente è un'ossatura della pagina, andrà abbellita e quant'altro, ma funziona.


Ciao.
Virgo80 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
EK Waterblock si arrende agli aumenti, i...
Geekbench si aggiorna: tutti i test con ...
Per la prima volta un computer quantisti...
Telecamere Reolink 4K su Amazon: Wi-Fi 6...
Anthropic vuole farsi i chip da sola? Co...
Il fondatore di Framework: il personal c...
JBL Live Flex 3 a 129€ su Amazon: ANC ad...
Come un uomo ha costruito un'azienda da ...
Multe fino a 400 euro anche se hai pagat...
Tapo lancia una valanga di offerte su Am...
Little Snitch su Linux: finalmente dispo...
John Deere accetta un accordo da 99 mili...
Gli astronauti di Artemis II osservano i...
OpenAI lancia ChatGPT Pro da 100 dollari...
Allarme rosso: CPU-Z e HWMonitor, segnal...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:49.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v