Grazie Flaviors200,
ora tutto OK!
Saluti
Lewis
Grazie Flaviors200,
ora tutto OK!
Saluti
Lewis
Ho cambiato in $_GET e continua a darmi errore sulla riga del $_GET.
Se credi ti mando il contenuto della Tabella clienti e così puoi verificarlo di persona.
Il listato
[PHP]
<html>
<head>
<title>Rubrica</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<?php
if (isset($_GET['pageno'])) {
$pageno = $_GET['pageno'];
} else {
$pageno = 1;
}
$no_of_records_per_page = 10;
$offset = ($pageno-1) * $no_of_records_per_page;
$conn=mysqli_connect("localhost","root","","utenti");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
die();
}
$via = $_POST['via'];
// $total_pages_sql = "SELECT COUNT(*) FROM clienti";
echo "<center> ";
$total_pages_sql = "SELECT COUNT(*) FROM clienti WHERE Via LIKE '%$via%'";
echo $total_pages_sql;
$result = mysqli_query($conn,$total_pages_sql);
$total_rows = mysqli_fetch_array($result)[0];
echo "<br />";
echo "<br />";
echo "Totale records: " . $total_rows;
echo "<br />";
echo "<br />";
$total_pages = ceil($total_rows / $no_of_records_per_page);
{
$sql = "SELECT * FROM clienti WHERE Via LIKE '%$via%' ORDER BY via
ASC LIMIT $offset, $no_of_records_per_page";
$res_data = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($res_data)){
{
echo "<center> ";
echo $row['nome'] . "<br> " . $row['settore'] . "<br> " . $row['via']. "<br>" . $row['telefono']. "<br> ";
echo "<br />";
}
}
mysqli_close($conn);
?>
<p align="center">testo centrato in HTML</p>
<ul class="pagination">
<!-- <li><a href="?pageno=1">First</a></li> -->
<li class="<?php if($pageno <= 1){ echo 'disabled'; } ?>">
<a href="<?php if($pageno <= 1){ echo '#'; } else { echo "?pageno=".($pageno - 1); } ?>">Prev</a>
</li>
<li class="<?php if($pageno >= $total_pages){ echo 'disabled'; } ?>">
<a href="<?php if ($pageno >= $total_pages){ echo '#'; } else { echo "?via=".$via."&pageno=".($pageno + 1); } ?>">Next</a>
</li>
</ul>
<br><br>
</body>
</html>
<?php } ?>
[/PHP]
Ciao Flaviors200,
ho inserito il tuo codice ma quando clicco su NEXT appare questo errore:
[PHP]
Notice: Undefined index: via in C:\xampp\htdocs\3\pannello3.php on line 46
SELECT COUNT(*) FROM clienti WHERE Via LIKE '%%'[/QUOTE]
[/PHP]
La riga 46 si riferisce a:
[PHP]$via = $_POST['via'];[/PHP]
Se tolgo questa riga il programma all'avvio dà questo errore:
[PHP]Notice: Undefined variable: via in C:\xampp\htdocs\3\pannello3.php on line 54
SELECT COUNT(*) FROM clienti WHERE Via LIKE '%%'
[/PHP]
e nella riga con SELECT COUNT di controllo non appare più il contenuto della variabile.
Sto pensando ad un comando che all'inizio del programma memorizzi la variabile in maniera stabile
in tutta la durata dei cambi della paginazione.
Scusami, io non ci capisco nulla.
Questa è la riga di NEXT
<a href="<?php if($pageno >= $total_pages){ echo '#'; } else { echo "?pageno=".($pageno + 1); } ?>">Next</a>
puoi cortesemente correggerla secondo le tue indicazioni?
Ti ringrazio
Lewis
Ciao.
ho provato .... Devi usare $_GET e non $_POST ....
Non funziona|
Dove devo inserire la scritta
pannello3.php?via=<?php echo $via;?>&pageno=<?php echo $pageno;?>
In quale posizione del codice devo inserirla?
Scusami. Spiegalo ad un bambino di 10 anni che non conosce la materia.
Ti ringrazio. Ciao
Lewis
Ciao Flavio, grazie.
Ho aggiornato il codice secondo le tue indicazioni. NON FUNZIONA
Premetto che nella tabella ho dei records con TRE vie diverse:
Per verificare il contenuto della variable
ho inserito un Echo di controllo dopo la stringa
...............
$total_pages_sql = "SELECT COUNT(*) FROM clienti WHERE Via LIKE '%$via%'";
............................
Visualizzazione perfetta:
SELECT COUNT(*) FROM clienti WHERE Via LIKE '%cuore%'
Totale records: 3
SELECT COUNT(*) FROM clienti WHERE Via LIKE '%poligono%'
Totale records: 6
SELECT COUNT(*) FROM clienti WHERE Via LIKE '%torino%'
Totale records: 2
SELECT COUNT(*) FROM clienti WHERE Via LIKE '%pascoli%'
Totale records: 40
...............................
La paginazione funziona correttamente.....
Quando richiedo la via 'pascoli' nella prima pagina il risultato è giusto:
..............................
SELECT COUNT(*) FROM clienti WHERE Via LIKE '%pascoli%'
Totale records: 40
................................
quando vado su NEXT appare il seguente errore:
...............................
Notice: Undefined index: via in C:\xampp\htdocs\3\pannello3.php on line 46 (la riga --> $via = $_POST['via'];
SELECT COUNT(*) FROM clienti WHERE Via LIKE '%%' (mentre in questa manca il contenuto della variabile '%%' )
........................................
Per non creare ulteriori errori ho eliminato i Link --> FIRST - LAST che non mi servono,,,,
Cosa mi consigli?
Grazie. Saluti
Lewis
Grazie flaviors200 per la pronta risposta.
Purtroppo le mie conoscenze di PHP sono pochissime.
Potresti cortesemente inserire nel mio codice i tuoi consigli?
Ti ringrazio. Sono un insegnante a digiuno su questo linguaggio.
Saluti
Lewis
via
ASC LIMIT $offset, $no_of_records_per_page";Allego lo script
<html>
<head>
<title>Rubrica</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<?php
if (isset($_GET['pageno'])) {
$pageno = $_GET['pageno'];
} else {
$pageno = 1;
}
$no_of_records_per_page = 10;
$offset = ($pageno-1) * $no_of_records_per_page;
$conn=mysqli_connect("localhost","root","","utenti");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
die();
}
$total_pages_sql = "SELECT COUNT(*) FROM clienti";
$result = mysqli_query($conn,$total_pages_sql);
$total_rows = mysqli_fetch_array($result)[0];
$total_pages = ceil($total_rows / $no_of_records_per_page);
$via = $_POST['via'];
{
$sql = "SELECT * FROM clienti WHERE Via LIKE '%$via%' ORDER BY via
ASC LIMIT $offset, $no_of_records_per_page";
$res_data = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($res_data)){
{
echo "<center> ";
echo $row['nome'] . "<br> " . $row['settore'] . "<br> " . $row['via']. "<br>" . $row['telefono']. "<br> ";
echo "<br />";
}
}
mysqli_close($conn);
?>
<p align="center">testo centrato in HTML</p>
<ul class="pagination">
<li><a href="?pageno=1">Primo</a></li>
<li><a href="?pageno=1">First</a></li>
<li class="<?php if($pageno <= 1){ echo 'disabled'; } ?>">
<a href="<?php if($pageno <= 1){ echo '#'; } else { echo "?pageno=".($pageno - 1); } ?>">Prev</a>
</li>
<li class="<?php if($pageno >= $total_pages){ echo 'disabled'; } ?>">
<a href="<?php if($pageno >= $total_pages){ echo '#'; } else { echo "?pageno=".($pageno + 1); } ?>">Next</a>
</li>
<li><a href="?pageno=<?php echo $total_pages; ?>">Last</a></li>
</ul>
<br><br>
</body>
</html>