Pq al ejecutar esto me sale esto:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Nueva carpeta\proves.php on line 23, Seguido de los 15 resultados.
Cual puede ser el problema??
<html>
<head>
<title>Páginación de resultados</title>
</head>
<body bgcolor=#FFFFFF>
<?php
// Datos de conexión a la base
$base="mteixidor";
$con=mysql_connect("localhost","root","123456");
mysql_select_db($base,$con);
if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=15; // cantidad de resultados por página
$inicial = $pg * $cantidad;
$pegar = "SELECT * FROM pelis ORDER BY titol LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());
$contar = "SELECT * FROM tabla ORDER BY titol";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
// Imprimiendo los resultados
while($array = mysql_fetch_array($cad)) {
echo $array['titol']."<br>";
}
// Cerramos la conexión a la base
$con=mysql_close($con);
// Creando los enlaces de paginación
echo "<p class=fonty>";
if ($pg != 0) {
$url = $pg - 1;
echo "<a href='$PHP_SELF?pg=".$url."'>« Anterior</a> ";
} else {
echo " ";
}
for ($i = 0; $i <= $pages; $i++) {
if ($i == $pg) {
if ($i == "0") {
echo "<b> 1 </b>";
} else {
$i = $i+1;
echo "<b> ".$i." </b>";
}
} else {
if ($i == "0") {
echo "<a href=$PHP_SELF?pg=".$i.">1</a> ";
} else {
echo "<a href='$PHP_SELF?pg=".$i."'>";
$i = $i+1;
echo $i."</a> ";
}
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='$PHP_SELF?pg=".$url."'>Siguiente »</a>";
} else {
echo " ";
}
echo "</p>";
?>
</body>
</html>
mysql_num_rows() te esta diciendo que no es un parametro valido, tienes que testear si
$contarok es un resultado valido:
$contar = "SELECT * FROM tabla ORDER BY titol";
$contarok= mysql_db_query($base,$contar);
if (!$contarok) {
die('Invalid query: ' . mysql_error());
}
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
Citar
ara las sentencias SELECT, SHOW, DESCRIBE o EXPLAIN, mysql_query() regresa un resource en caso exitoso, y FALSE en error.
Para otro tipo de sentencia SQL, UPDATE, DELETE, DROP, etc, mysql_query() regresa TRUE en caso exitoso y FALSE en error.
Saludos.
Me salen las 15 filas seguido de este error:
1
Notice: Undefined variable: PHP_SELF in C:\wamp\www\Nueva carpeta\ex1.php on line 57
2
Notice: Undefined variable: PHP_SELF in C:\wamp\www\Nueva carpeta\ex1.php on line 57
4
.
...
Y al darle a otra pagina me sale la misma, como lo hago para k me muestre las 15 filas siguentes?
usa $_SERVER['PHP_SELF']
Y para que te modifique las filas, deben recoger el valor de la página que pasas via GET y pasarselo al limit. .
Ejemplo, entras a index.php:
<?php
$pg = 0;
if (isset($_GET['pg'] ) ) {
$pg = $_GET['pg'];
}
?>
En caso de no haber ningún "?pg", entonces te lo pondrá a cero, y luego en...
LIMIT $pg, $cantidad
te leerá desde la primera entrada.
Luego si vas a index.php?pg=2, como sí existe el "?pg" te cogerá el valor y te lo meterá como la primera fila a leer.
Tambien podrias pobrar generar una variable desde la consula sql por ejemplo usando
algo como count(*) as total