Foros del Web » Programando para Internet » PHP »

$rows=mysql_num_rows($res);

Estas en el tema de $rows=mysql_num_rows($res); en el foro de PHP en Foros del Web. $rows=mysql_num_rows($res); Pq me dice q esto es un argumento no válido? lo es? Pongo el "caxito" donde está metido :P case "MySQL": $rows=mysql_num_rows($res); return $rows; ...
  #1 (permalink)  
Antiguo 07/08/2002, 01:08
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2098
$rows=mysql_num_rows($res);

$rows=mysql_num_rows($res);

Pq me dice q esto es un argumento no válido? lo es?

Pongo el "caxito" donde está metido :P

case "MySQL":
$rows=mysql_num_rows($res);
return $rows;
break;;
  #2 (permalink)  
Antiguo 07/08/2002, 03:07
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Re: $rows=mysql_num_rows($res);

Hola,

Una pregunta, ¿que es $res? ¿de donde lo has sacado? ¿tiene asignado un valor? ¿es del tipo que te pone en el manual que debe tener el parametro de mysql_num_rows()? ¿tiene un valor valido para esa funcion? ¿podrias poner mas codigo, para que no tengamos que hacer suposiciones de lo que has hecho para llegar a ese punto?

No te lo tomes a mal, pero creo que hay una guia de como hacer preguntas en el foro, en el que recomienda aportar la maxima cantidad de informacion. Si nos haces una descripcion detallada de que es lo que haces, incluyes el codigo necesario, etc. recibiras contestaciones utiles y no como esta.

A veces no se reciben respuestas porque nadie sabe la solucion, pero otras es porque no se ha sabido hacer la pregunta.

Espero no haberte ofendido y que este mensaje ayude que las preguntas en los foros sean mas faciles de contestar.


Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 07/08/2002, 03:24
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Re: $rows=mysql_num_rows($res);

$rows=mysql_num_rows($res);

Esto implica que $res viene de:
$res = mysql_query("SQL");

Si esto es cierto y la consulta no ha dado error, $rows dará el número de registros. Si no es cierto, o la consulta ha dado error, $res es un resource link identificatos erróneo (o algo así)

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #4 (permalink)  
Antiguo 07/08/2002, 03:29
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2098
Re: $rows=mysql_num_rows($res);

Ok ok...

Jejeje.. Pongo poco pa no aburrir al personal y tal :)

No se ni d onde he sacado lo de $res, ice el script ace tiempo ya, y en &quot;aquellos tiempos&quot; no sabía lo util q llegaban a ser los comentarios, jeje...

function sql_fetch_row(&amp;$res, $nr)
{
global $dbtype;
switch ($dbtype) {

case &quot;MySQL&quot;:
$row = mysql_fetch_row($res);
return $row;
break;;

case &quot;mSQL&quot;:
$row = msql_fetch_row($res);
return $row;
break;;

case &quot;PostgreSQL&quot;:
case &quot;PostgreSQL_local&quot;:
if ( $res-&gt;get_total_rows() &gt; $res-&gt;get_fetched_rows() ) {
$row = pg_fetch_row($res-&gt;get_result(), $res-&gt;get_fetched_rows() );
$res-&gt;increment_fetched_rows();
return $row;
} else {
return false;
}
break;;

case &quot;ODBC&quot;:
case &quot;ODBC_Adabas&quot;:
$row = array();
$cols = odbc_fetch_into($res, $nr, $row);
return $row;
break;;

case &quot;Interbase&quot;:
$row = ibase_fetch_row($res);
return $row;
break;;

case &quot;Sybase&quot;:
$row = sybase_fetch_row($res);
return $row;
break;;

El caso es, q esto teoricamente sirve para &quot;llamar&quot; a una bd, q, en config.php se ha puesto cual es, y esto sería mas o menos, q en caso d q sea mysql, pues aga &amp;rows=my...

Y no m funciona, dice que hay error en esta línea... :(


PD: Acias x perfeccionarme, jeje.
  #5 (permalink)  
Antiguo 07/08/2002, 03:55
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Re: $rows=mysql_num_rows($res);

Ya sabes, estamos aqui para ayudar ;)

Esto se empieza a complicar, porque posiblemente sea que $res no tiene un valor valido para esa funcion. Con lo cual el error estara en la parte del codigo donde se asigna el valor, es decir, cerca de donde llamas a la funcion. Como estas intentando crear codigo que sea independiente de la BD que uses, tienes que tener cuidado de mantener una coherencia con los accesos a la BD. Porque puede que postees el codigo donde asignas valor a $res, y el codigo no tenga ningun fallo ... salvo que sea para acceder a una BD que no sea del tipo definido en la variable.

Me explico. Si tu variable vale &quot;Mysql&quot;, pero creas tu $res con funciones de Posgres, $res no tendra un valor valido para ninguna funcion mysql_.

Para evitar este tipo de problemas, lo que debes hacer es crear un conjunto de funciones (api) genericas (como la que nos has mostrado) y usarlas en todo momento para acceder a la BD. Otra solucion (bueno, la misma pero usando POO) es crear una clase &quot;madre&quot; que defina las funciones y atributos genericos para todas las BD y luego ir creando clases &quot;hijas&quot; para cada tipo de de BD (ya se, no es tan sencillo, pero este no es ni el lugar ni el momento para explicar conceptos de POO como abstracion,...).

Tanto para la version con funciones como para las clases, existen ya librerias &quot;maduras&quot; (probadas y testeadas por millones de usuarios), por ejemplo, phpLib.

Es buena idea hacer codigo portable, pero necesita mas tiempo para planificarlo y diseñarlo.

Aunque yo no sea el mas indicado (los comentarios brillan por su ausencia en mi codigo), hay que coger buenas constumbres en esto de la programacion y usar los comentarios sabiamente.

Bueno, creo que ya he escrito suficiente por lo menos para toda la semana, y teniendo en cuenta que estoy en el curro ...

Siento haber sido tan teorico.


Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 07/08/2002, 11:23
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2098
Re: $rows=mysql_num_rows($res);

Muchas gracias.
He hecho lo de las funciones genéricas, y ya no me da error :) .

Gracias otra vez.

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:15.