Foros del Web » Programando para Internet » PHP »

Error mysql_num_rows.

Estas en el tema de Error mysql_num_rows. en el foro de PHP en Foros del Web. En primero lugar dar las gracias por adelantado. He mirado temas parecidos por el foro pero no consigo que funcione asi que he decidido publicar ...
  #1 (permalink)  
Antiguo 22/08/2008, 06:13
 
Fecha de Ingreso: agosto-2008
Mensajes: 6
Antigüedad: 15 años, 8 meses
Puntos: 0
Error mysql_num_rows.

En primero lugar dar las gracias por adelantado.

He mirado temas parecidos por el foro pero no consigo que funcione asi que he decidido publicar el código a ver si alguien me puede echar una mano.

Al enviar el formulario me sale el siguiente error

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/registro.php on line 60

El código es el siguiente

Código PHP:
if($_POST[registrar]) {
if(empty($_POST[nick]) || empty($_POST[Password]) || empty($_POST[email])) {
?> 
<table width="467" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> 
    <td height="42" valign="top" background="imagenes/tabla1.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td height="16" colspan="2"></td>
        </tr>
        <tr> 
          <td width="6%">&nbsp;</td>
          <td width="94%"><font color="#FFCC00"><strong>Registro de nuevo usuario</strong></font></td>
        </tr>
      </table></td>
  </tr>
  <tr> 
    <td background="imagenes/tabla2.gif"><table width="440" border="0" align="center" cellpadding="4" cellspacing="2">
        <tr> 
          <td><p align="center"><font face="Tahoma" style="font-size: 8pt" color="#FFFFFF"> 
              <strong><font color="#EEEEEE">Lo sentimos pero su registro no se 
              ha completado porque hay campos obligatorios sin completar. Por 
              favor, rell&eacute;nalos</font></strong></font></p></td>
        </tr>
        <tr> </tr>
      </table></td>
  </tr>
  <tr> 
    <td><img src="imagenes/tabla3.gif" width="467" height="21"></td>
  </tr>
</table>
<?
}
else {



if (!
ini_get('register_globals')) {
    
$superglobales = array($_SERVER$_ENV$_FILES$_COOKIE$_POST$_GET);
    if (isset(
$_SESSION)) {
        
array_unshift($superglobales$_SESSION);
    }
    foreach (
$superglobales as $superglobal) {
        
extract($superglobalEXTR_SKIP);
    }
}



$db_host="x";
$db_user="x";
$db_pass="x";
$db_name="x";


$admin_email="xxx";


$comprobar mysql_query("select * from usuarios where nick='$_POST[nick]' or email='$_POST[email]'");
if(
mysql_num_rows($comprobar) != 0) {
?>
<table width="467" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> 
    <td height="42" valign="top" background="imagenes/tabla1.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td height="16" colspan="2"></td>
        </tr>
        <tr> 
          <td width="6%">&nbsp;</td>
          <td width="94%"><font color="#FFCC00"><strong>Registro de nuevo usuario</strong></font></td>
        </tr>
      </table></td>
  </tr>
  <tr> 
    <td background="imagenes/tabla2.gif"><table width="440" border="0" align="center" cellpadding="4" cellspacing="2">
        <tr> 
          <td><p align="center"><font face="Tahoma" style="font-size: 8pt" color="#FFFFFF"> 
              <strong><font color="#EEEEEE">Lo sentimos pero hay otro usuario 
              registrado con su mismo nick o email. Introduzca una cuenta diferente</font></strong></font></p></td>
        </tr>
        <tr> </tr>
      </table></td>
  </tr>
  <tr> 
    <td><img src="imagenes/tabla3.gif" width="467" height="21"></td>
  </tr>
</table>
<?

$fecha 
date("M d, Y"); $Password md5($_POST[Password]);


if (!
ini_get('register_globals')) {
    
$superglobales = array($_SERVER$_ENV$_FILES$_COOKIE$_POST$_GET);
    if (isset(
$_SESSION)) {
        
array_unshift($superglobales$_SESSION);
    }
    foreach (
$superglobales as $superglobal) {
        
extract($superglobalEXTR_SKIP);
    }
}



$db_host="localhost";
$db_user="xxx";
$db_pass="xxx";
$db_name="xxx";


$admin_email="xxxx";




include(
"foro/config.php");
$idddd mysql_query("SELECT MAX(user_id) AS total FROM phpbb_users");
$row mysql_fetch_array($idddd);
$user_id $row[total] + 1;
$reg_date time();


mysql_query("INSERT INTO phpbb_users (user_id, username, user_regdate, user_password, user_email, user_active) values ('$user_id','$_POST[nick]','$reg_date','$Password','$_POST[email]','1')");
mysql_query("insert into usuarios (nick,contrasena,email,fecha,sexo,web,avatar) values ('$_POST[nick]','$Password','$_POST[email]','$fecha','$_POST[sexo]')");
?>
<table width="467" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> 
    <td height="42" valign="top" background="imagenes/tabla1.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td height="16" colspan="2"></td>
        </tr>
        <tr> 
          <td width="6%">&nbsp;</td>
          <td width="94%"><font color="#FFCC00"><strong>Registro de nuevo usuario</strong></font></td>
        </tr>
      </table></td>
  </tr>
  <tr> 
    <td background="imagenes/tabla2.gif"><table width="440" border="0" align="center" cellpadding="4" cellspacing="2">
        <tr> 
          <td><p align="center"><font face="Tahoma" style="font-size: 8pt" color="#FFFFFF"> 
              <strong><font color="#EEEEEE">El usuario <? echo $_POST[nick?> 
              ha sido registrado correctamente en la web. Haz click aqu&iacute; 
              para iniciar sesi&oacute;n en la web y acceder a los contenidos</font></strong></font></p></td>
        </tr>
        <tr> </tr>
      </table></td>
  </tr>
  <tr> 
    <td><img src="imagenes/tabla3.gif" width="467" height="21"></td>
  </tr>
</table>
<?
}
}
//
}else {
?><SCRIPT type="text/javascript">
<!--
function showimage() {
if (!document.images)
return
document.images.avatar.src=
'imagenes/avatares/' + document.formulario.avatar.options[document.formulario.avatar.selectedIndex].value
}
//-->
</SCRIPT>
<?
el error me lo tira en la linea 60 que corresponde con:

Código PHP:
$comprobar mysql_query("select * from usuarios where nick='$_POST[nick]' or email='$_POST[email]'");
if(
mysql_num_rows($comprobar) != 0) { 
A ver si alguien me puede echar un cable.

Mil gracias.
  #2 (permalink)  
Antiguo 22/08/2008, 06:18
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Error mysql_num_rows.

quizas ocurra que la consulta no devuelve registros.

Podrias probar la consulta

Código PHP:
select from usuarios where nick='$_POST[nick]' or email='$_POST[email]' 
en phpmyadmin por ejemplo y ver si devuelve resultados y si la sintaxis es correcta, ademas de que se ejecute con los valores adecuados ($_POST["nick"]...)

tambien creo que debes poner
Código PHP:
$_POST["nick"
en lugar de
Código PHP:
$_POST[nick
igual con $_POST["email"]

NOTA: me parece muy arriesgado realizar un consulta directamente con los datos recibidos por $_POST

Última edición por nx00; 22/08/2008 a las 06:25
  #3 (permalink)  
Antiguo 22/08/2008, 06:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 6
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error mysql_num_rows.

Muchas Gracias Nx00

Lamentablemente la conexion funciona bien, y al ponerle las comillas me da error de sintaxis...

Gracias de nuvo.
  #4 (permalink)  
Antiguo 22/08/2008, 06:35
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Error mysql_num_rows.

con comillas debe quedar asi:

Código PHP:
$comprobar mysql_query("select * from usuarios where nick='".$_POST["nick"]."' or email='".$_POST["email"]."'"); 
  #5 (permalink)  
Antiguo 22/08/2008, 06:48
 
Fecha de Ingreso: agosto-2008
Mensajes: 6
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error mysql_num_rows.

Ahora si me lo admite pero me saca fallo en la linea 59


Código PHP:
if(mysql_num_rows($comprobar) != 0) { 
  #6 (permalink)  
Antiguo 22/08/2008, 07:40
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Error mysql_num_rows.

que error ?
  #7 (permalink)  
Antiguo 25/08/2008, 04:56
 
Fecha de Ingreso: agosto-2008
Mensajes: 6
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error mysql_num_rows.

Cita:
Iniciado por nx00 Ver Mensaje
que error ?
seguimos igual Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/registro.php on line 59
  #8 (permalink)  
Antiguo 25/08/2008, 05:56
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 0
Respuesta: Error mysql_num_rows.

Parece idiota pero conectas previamente con la base de datos? *-)
Un saludo
  #9 (permalink)  
Antiguo 25/08/2008, 07:11
 
Fecha de Ingreso: agosto-2008
Mensajes: 6
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error mysql_num_rows.

Si, si conecto con la base de datos.

gracias

Última edición por n3ron; 25/08/2008 a las 07:17
  #10 (permalink)  
Antiguo 25/08/2008, 07:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Error mysql_num_rows.

Buenas, ese error es debido a que la consulta que realizas no es correcta. No es debido mysql_num_rows(), sino, a mysql_query(). No porque no devuelva filas, si delvolviera mysql_num_rows sería = 0. Es porque la query está mal.

Comprueba que la consulta es correcta si puedes en phpmyadmin.

Puede ser por problema de privilegios (si los hay) de acceso a los campos de la tabla en cuestion.
  #11 (permalink)  
Antiguo 25/08/2008, 13:36
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 0
Respuesta: Error mysql_num_rows.

Imagino que habrás intentado usar "mysql_error();" inmediatamente después del query:
Cita:
$comprobar = mysql_query("select * from usuarios where nick='".$_POST['nick']."' or email='".$_POST['email']."'");
echo mysql_error();
if(mysql_num_rows($comprobar) != 0) {
Si hay un error en la consulta te dirá de que se trata con mayor o menor grado de ayuda pero te lo dirá y sabremos por donde tirar...

Un saludo

PD: Se que la anterior respuesta por mi parte parecia muy tonta pero esque me ha ocurrido varias veces volverme loco por no haber conectado previamente xD (espero no haberte molestado)
  #12 (permalink)  
Antiguo 25/08/2008, 15:29
(Desactivado)
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error mysql_num_rows.

Mira estos videos
http://tiendaonline.100webspace.net/product_info.php?products_id=30
  #13 (permalink)  
Antiguo 26/08/2008, 01:59
 
Fecha de Ingreso: agosto-2008
Mensajes: 6
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error mysql_num_rows.

Cita:
Iniciado por r3dd3vil2 Ver Mensaje
Imagino que habrás intentado usar "mysql_error();" inmediatamente después del query:

Si hay un error en la consulta te dirá de que se trata con mayor o menor grado de ayuda pero te lo dirá y sabremos por donde tirar...

Un saludo

PD: Se que la anterior respuesta por mi parte parecia muy tonta pero esque me ha ocurrido varias veces volverme loco por no haber conectado previamente xD (espero no haberte molestado)
Este es el echo del error... creo que ya casi está.. Que puede ser ?

Unknown column 'nick' in 'where clause'
  #14 (permalink)  
Antiguo 26/08/2008, 02:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Error mysql_num_rows.

no existe la columna "nick" en la tabla "usuarios"
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 22:55.