duda php+mysql

Iniciado por CrÄsH, 26 Febrero 2009, 00:10 AM

0 Miembros y 1 Visitante están viendo este tema.

CrÄsH

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";
$contarokmysql_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."'>&laquo; Anterior</a>&nbsp;";
} 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>&nbsp;";
}
}
}
if (
$pg $pages) {
$url $pg 1;
echo 
"<a href='$PHP_SELF?pg=".$url."'>Siguiente &raquo;</a>";
} else {
echo 
" ";
}
echo 
"</p>";
?>

</body>
</html>
~~~~~~~~~~~~~~~~

AlbertoBSD

mysql_num_rows() te esta diciendo que no es un parametro valido, tienes que testear si $contarok es un resultado valido:

Código (php) [Seleccionar]

$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.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

CrÄsH

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?
~~~~~~~~~~~~~~~~

Agente Naranja

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:

Código (php) [Seleccionar]
<?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...
Código (sql) [Seleccionar]

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.

[u]nsigned

Tambien podrias pobrar generar una variable desde la consula sql por ejemplo usando
algo como count(*) as total

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!