Jump to content

Paginação PHP


klasss
 Share

Recommended Posts

Boas,

Anda-me a dar um erro na segunda pagina quando so tenho um resultado.

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1, 1' at line 1

<?php

include("conectar.php");

$quantidade = 1;
$pagina = (isset($_GET ['pagina'])) ? (int)$_GET['pagina'] : 1;
$inicio = ($quantidade * $pagina) - $quantidade;
$sql ="";

(.................)


$sqltotal = "SELECT id FROM tb_trabalhador";
$qrtotal = mysql_query($sqltotal) or die(mysql_error());
$numtotal = mysql_num_rows($qrtotal);
$totalpagina = ceil ($numtotal/$quantidade);

echo '<a href="?pagina=1">Primeira página</a>';

for ($i = 1; $i <= $totalpagina; $i++){
if($i == $pagina)
echo $i;
else
echo"<a href=\"?pagina=$i\">$i</a>";
}

echo '<a href="?pagina=$totalpagina">Ultima Pagina</a>';

?>
Link to comment
Share on other sites

<?php

include("conectar.php");

$quantidade = 1;
$pagina = (isset($_GET ['pagina'])) ? (int)$_GET['pagina'] : 1;

$inicio = ($quantidade * $pagina) - $quantidade;

$sql ="";
if (isset($_POST['estado']) AND ($_POST['Distrito']) AND ($_POST['Concelho']))
{
switch([$_POST['estado'] , $_POST['Distrito'], $_POST['Concelho']])
{
case ['Indiferente','Indiferente','Indiferente']:
	$sql = "select * from tb_detalhe_trabalhador inner join tb_trabalhador on   tb_detalhe_trabalhador.id = tb_trabalhador.id inner join tb_equipamentos on tb_detalhe_trabalhador.id = tb_equipamentos.id ORDER BY tb_trabalhador.id asc LIMIT $inicio,	 $quantidade";
	$qr = mysql_query($sql) or die(mysql_error());
	break;

case ['Indiferente','Aveiro','Indiferete']:
	$sql = "select * from tb_detalhe_trabalhador inner join tb_trabalhador on tb_detalhe_trabalhador.id = tb_trabalhador.id inner join tb_equipamentos on tb_detalhe_trabalhador.id = tb_equipamentos.id Where tb_trabalhador.Distrito = 'Aveiro' or 'AVEIRO' or 'aveiro' ORDER BY tb_trabalhador.id asc LIMIT $inicio, $quantidade";
	$qr = mysql_query($sql) or die(mysql_error());
	break;
}
}

$qr = mysql_query($sql) or die(mysql_error());

while($exibe = mysql_fetch_array($qr)){
echo "<table>";
echo  "<tr><td>Nome:</td>";
echo "<td>".$exibe["Nome"]."</td></tr>";
}

$sqltotal = "SELECT id FROM tb_trabalhador";
$qrtotal = mysql_query($sqltotal) or die(mysql_error());
$numtotal = mysql_num_rows($qrtotal);
$totalpagina = ceil ($numtotal/$quantidade);

echo '<a href="?pagina=1">Primeira página</a>';

for ($i = 1; $i <= $totalpagina; $i++){
if($i == $pagina)
	echo $i;
else
	echo"<a href=\"?pagina=$i\">$i</a>";
}

echo '<a href="?pagina=$totalpagina">Ultima Pagina</a>';

?>

Aqui a paginação deixa de funcionar na segunda pagina s:

Edited by yoda
Link to comment
Share on other sites

Talvez seja normal. Podes já ter ultrapassado o limite.

http://localhost/xxx/Procurarquery.php?pagina=0 -> retorna linhas?

http://localhost/xxx/Procurarquery.php?pagina=1 -> retorna linhas?

$limit   = 10;   // limit of records
$total   = 100; // total of records
$pages   = ceil($total / $limit); // number of pages to split
$current = $_GET['pagina'];	// current page
$start   = ($current == 1 ? 0 : ($limit * $current) - $limit);	// start at

Isto para melhor percepção.

Link to comment
Share on other sites

Sim, Este trabalho é localhost.

Ainda fiz umas alterações mas o resultado agora é:

Notice: Undefined index: estado Notice: Undefined index: distrito Notice: Undefined index: concelho

<?php

include("conectar.php");

$quantidade = 1;
$pagina = (isset($_POST ['pagina'])) ? (int)$_POST['pagina'] : 1;
$inicio = ($quantidade * $pagina) - $quantidade;
$sql ="";

$estado = ''.@$_POST['estado'];
$Distrito = ''.@$_POST['Distrito'];
$Concelho = ''.@$_POST['Concelho'];


switch([$_POST['estado'] , $_POST['Distrito'], $_POST['Concelho']])
{
case ['Indiferente','Indiferente','Indiferente']:
$sql = "select * from tb_detalhe_trabalhador inner join tb_trabalhador on tb_detalhe_trabalhador.id = tb_trabalhador.id inner join tb_equipamentos on tb_detalhe_trabalhador.id = tb_equipamentos.id ORDER BY tb_trabalhador.id asc LIMIT $inicio, $quantidade";
break;
(...)
echo "</table>";
}

$sqltotal = "SELECT id FROM tb_trabalhador";
$qrtotal = mysql_query($sqltotal) or die(mysql_error());
$numtotal = mysql_num_rows($qrtotal);
$totalpagina = ceil ($numtotal/$quantidade);

echo '<form>';
echo '<input type="hidden" name="estado" value="'.htmlentities($estado).'">';
echo '<input type="hidden" name="Distrito" value="'.htmlentities($Distrito).'">';
echo '<input type="hidden" name="Concelho" value="'.htmlentities($Concelho).'">';
for ($i = 1; $i <= $totalpagina; $i++){
  if($i == $pagina)
  echo $i;
  else
  echo '<input type="submit" name="pagina" value="'.$i.'">';
}
echo '</form>';
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.