Foros del Web » Programando para Internet » PHP »

PROBLEMA CON mysql_num_rows

Estas en el tema de PROBLEMA CON mysql_num_rows en el foro de PHP en Foros del Web. No se si este haciendo algo mal, ya que el valor $fila lo uso en un IF y no lo respeta estoy haciendo algo mal? ...
  #1 (permalink)  
Antiguo 15/04/2008, 10:17
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
PROBLEMA CON mysql_num_rows

No se si este haciendo algo mal, ya que el valor $fila lo uso en un IF y no lo respeta estoy haciendo algo mal?


Código PHP:
$consulta="SELECT nombre FROM azona WHERE nombre='$nombre'"
$resultado=mysql_query($consulta$conectar);  
$fila=mysql_num_rows($resultado); 
  #2 (permalink)  
Antiguo 15/04/2008, 10:22
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: PROBLEMA CON mysql_num_rows

Hola
Puedes poner lo que tienes dentro del if
y un consejo si vas usar variables evita ponerlos dentro de comillas simples

Saludos!

Última edición por Genetix; 15/04/2008 a las 10:39
  #3 (permalink)  
Antiguo 15/04/2008, 10:33
Avatar de jago86  
Fecha de Ingreso: abril-2008
Ubicación: Ibarra - Ecuador
Mensajes: 77
Antigüedad: 16 años
Puntos: 1
Re: PROBLEMA CON mysql_num_rows

Acabo de probar tu código (de tu post anterior), funciona correctamente, o al menos a mi me funciona bien, no veo razón para lo que te esta pasando. Intenta hacer un echo de la variable $fila en vez del alert, solo para ver que valor ha tomado y salir de dudas, aunque si el insert se realiza correctamente (es decir entro por el true del if)no es lógico que te presente el alert del else. Pero prueba lo que te he dicho y nos cuentas que pasó.
  #4 (permalink)  
Antiguo 15/04/2008, 10:38
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

WOW! hice el echo, me imprimio el 0, eso lo hace bien pero cuando ya le puse el query

$query="INSERT INTO azona VALUES ('$nombre')";
$nuevo=mysql_query($query, $conectar);

Ahi ya se truena todo no sale el alert que quiero, mmm no se a que se deba...
si tienes una idea te gradeceria mucho que me la hicieras saber
gracias
  #5 (permalink)  
Antiguo 15/04/2008, 10:47
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: PROBLEMA CON mysql_num_rows

Para los q no seguimos tu post anterior, sería de ayuda q pusieras el código completo
  #6 (permalink)  
Antiguo 15/04/2008, 11:02
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

Esta primer parte funciona sin problemas.
Código PHP:
<?php 
include ("conection.php"); 
$conectar=Conectar(); 
$nombre=$_POST['nombre']; 
if(
strlen($nombre)>0
{
$consulta="SELECT nombre FROM azona WHERE nombre='$nombre'"
 
$resultado=mysql_query($consulta$conectar);  
 
$fila=mysql_num_rows($resultado); 
 if(
$fila<1)

Aqui es donde se pone trucutu el codigo por que hace el query pero no pone el alert que se marca pone el de else, y cuando quito el query si pone el alert.
Código PHP:
{$q="INSERT INTO azona VALUES ('$nombre')";
  $nuevo=mysql_query($q,$conectar);
  ?>
   
   <script language="JavaScript"> 
    alert("La nueva área se registro exitosamente."); 
    parent.location.href = "altas01.php"; 
 <?php
 
}
Estos else funcionan a la perfeccion.
Código PHP:
else 
 { 
  ?> 
  <script language="JavaScript"> 
            alert("Ese nombre de área ya se ha registrado."); 
            parent.location.href = "altas01.php"; 
        </script> 
        <?php 
        

        } 
             else { 
         
?> 
         <script language="JavaScript"> 
            alert("Llene todos los campos."); 
            parent.location.href = "altas01.php"; 
        </script> 
        <?php 
        

?>
Ojala alguien me diga que hice mal o no se que pueda ser.
  #7 (permalink)  
Antiguo 15/04/2008, 11:08
Avatar de jago86  
Fecha de Ingreso: abril-2008
Ubicación: Ibarra - Ecuador
Mensajes: 77
Antigüedad: 16 años
Puntos: 1
Re: PROBLEMA CON mysql_num_rows

xrobx tu has visto que en la BD se están guardando los INSERT? Solo para salir de dudas.
  #8 (permalink)  
Antiguo 15/04/2008, 11:08
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: PROBLEMA CON mysql_num_rows

Veo de momento:
if($fila<1)
{
$q="INSERT INTO azona VALUES ('$nombre')";
...
¿No sería nombre='$nombre'?

No sé si conté mal pero me parece que sobra un }.
Prueba y nos dices
  #9 (permalink)  
Antiguo 15/04/2008, 11:15
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: PROBLEMA CON mysql_num_rows

En tu INSERT INTO te falta el nombre del campo en el que lo vas a insertar, tiene ke ser algo asi:

$var="INSERT INTO nombre_tabla (nombre_del_campo) VALUES ('variable')";

Salu2
__________________
"Eres grande por que caminas entre gigantes"
  #10 (permalink)  
Antiguo 15/04/2008, 11:19
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

los insert los hace sin problema, la unica bronca es que el alert no lo muestra, es decir muestra el del esle... y eso se me hace bien raro por que deberia hacerlo.

Código PHP:
<?php 
include ("conection.php"); 
$conectar=Conectar(); 
$nombre=$_POST['nombre']; 
if(
strlen($nombre)>0
    {
$consulta="SELECT nombre FROM azona WHERE nombre='$nombre'"
      
$resultado=mysql_query($consulta$conectar);  
       
$fila=mysql_num_rows($resultado); 
        if(
$fila<1
         {
$q="INSERT INTO azona VALUES ('$nombre')";
         
$nuevo=mysql_query($q,$conectar);
         
?>
                <script language="JavaScript"> 
            alert("La nueva área se registro exitosamente."); 
            parent.location.href = "altas01.php"; 
            </script>
         <?php
        
}
         else 
        { 
         
?> 
         <script language="JavaScript"> 
         alert("Ese nombre de área ya se ha registrado."); 
         parent.location.href = "altas01.php"; 
         </script> 
         <?php 
        

      } 
    else 
    {
?> 
      <script language="JavaScript"> 
      alert("Llene todos los campos."); 
      parent.location.href = "altas01.php"; 
      </script> 
     <?php 
     

?>
  #11 (permalink)  
Antiguo 15/04/2008, 11:20
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: PROBLEMA CON mysql_num_rows

Trata de agrager OR DIE al ejecutar tu consultas para ver ke errores te marca y asi poder solucionarlos, cambia tu codigo asi:

Código:
$consulta="SELECT nombre FROM azona WHERE nombre='$nombre'";  
$resultado=mysql_query($consulta) or die('Consulta fallida: ' . mysql_error()) ;   
$fila=mysql_num_rows($resultado);
salu2
__________________
"Eres grande por que caminas entre gigantes"
  #12 (permalink)  
Antiguo 15/04/2008, 11:26
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: PROBLEMA CON mysql_num_rows

Prueba hacerlo asi:


Código:
<?php  
include ("conection.php");  
$conectar=Conectar();  
$nombre=$_POST['nombre'];  
if(strlen($nombre)>0)  
    {
	
	  $consulta="SELECT nombre FROM azona WHERE nombre='$nombre'";  
      $resultado=mysql_query($consulta, $conectar);   
       $fila=mysql_num_rows($resultado);  
        if($fila<1)  
         { 
		 
		   $q="INSERT INTO azona VALUES ('$nombre')"; 
           $nuevo=mysql_query($q,$conectar);
		 
		    echo "<script languaje=javascript>".
                "alert(\"La nueva área se registro exitosamente.\");".
                "location.href=\"altas01.php\";".
                "</script>";
		  
          
        } 
         else  
        {
		     echo "<script languaje=javascript>".
                "alert(\"Ese nombre de área ya se ha registrado.\");".
                "location.href=\"altas01.php\";".
                "</script>";     
           
        }  
      }  
    else  
    {
	    echo "<script languaje=javascript>".
                "alert(\"Llene todos los campos.\");".
                "location.href=\"altas01.php\";".
                "</script>";   
	
     }  
?>
__________________
"Eres grande por que caminas entre gigantes"
  #13 (permalink)  
Antiguo 15/04/2008, 11:34
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

:( Grcias pero nomas no, sigue saliendo el alert de el else
eso es lo unico que me sale mal, que no respeta la decision y se mete al else...
  #14 (permalink)  
Antiguo 15/04/2008, 11:38
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: PROBLEMA CON mysql_num_rows

de cual de tus dos else?
__________________
"Eres grande por que caminas entre gigantes"
  #15 (permalink)  
Antiguo 15/04/2008, 11:49
Avatar de jago86  
Fecha de Ingreso: abril-2008
Ubicación: Ibarra - Ecuador
Mensajes: 77
Antigüedad: 16 años
Puntos: 1
Re: PROBLEMA CON mysql_num_rows

Prueba poniendo el alert antes del INSERT para ver que pasa.
  #16 (permalink)  
Antiguo 15/04/2008, 11:49
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

En el primero has de cuenta se mete al if, hace el INSERT pero en vez de poner el alert de ese if pone el del else.

Código PHP:
if($fila<1)  
         {$q="INSERT INTO azona VALUES ('$nombre')"; 
         $nuevo=mysql_query($q,$conectar); 
         ?> 
                <script language="JavaScript">  
            alert("La nueva área se registro exitosamente.");  
            parent.location.href = "altas01.php";  
            </script> 
         <?php 
        

         else  
        {  
         
?>  
         <script language="JavaScript">  
         alert("Ese nombre de área ya se ha registrado.");  
         parent.location.href = "altas01.php";  
         </script>  
         <?php  
        
}
  #17 (permalink)  
Antiguo 15/04/2008, 11:51
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: PROBLEMA CON mysql_num_rows

Insetar un valor que No este en tu BD e inserta un valor ke si este en tu bd (repetido) y verifica ke valores toma $fila en kada caso, para asi poder definir bien tu IF.


Código:
       .
       .
       .
       $resultado=mysql_query($consulta, $conectar);   
       $fila=mysql_num_rows($resultado); 

       echo $fila;

        if($fila<1)  
         { ......
__________________
"Eres grande por que caminas entre gigantes"
  #18 (permalink)  
Antiguo 15/04/2008, 11:58
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

eso ya lo comprobe gracias el mysql_num_rows sirve perfecto, me he dado cuenta que si me marca el alert que quiero pero solo cuando llego al limite de nuemero de caracteres que tiene el campo en la base de datos es de 17, por ejemplo si pongo Taller me pone el alert de else pero si pongo Taller Mecanico me pone el de el if, no se como solucionar esto.
  #19 (permalink)  
Antiguo 15/04/2008, 12:00
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: PROBLEMA CON mysql_num_rows

Mira puede verse de principiante para algunos pero es muy util rastrer con ECHOS en donde estas posicionado dentro del codigo, copia esto y ejecutalo y comentas como te fue.


Código:
<?php  
include ("conection.php");  
$conectar=Conectar();  
$nombre=$_POST['nombre'];  
if(strlen($nombre)>0)  
    {
	
	  $consulta="SELECT nombre FROM azona WHERE nombre='$nombre'";  
      $resultado=mysql_query($consulta, $conectar) or die('Consulta fallida: ' . mysql_error());  
       $fila=mysql_num_rows($resultado);  
        if($fila<1)  
         { 
		   ECHO "ENTRE AL SEGUNDO IF";
		   $q="INSERT INTO azona VALUES ('$nombre')"; 
           $nuevo=mysql_query($q,$conectar) or die('Consulta fallida: ' . mysql_error());
		 
		    echo "<script languaje=javascript>".
                "alert(\"La nueva área se registro exitosamente.\");".
                "location.href=\"altas01.php\";".
                "</script>";
		  
          
        } 
         else  
        {
		     echo "<script languaje=javascript>".
                "alert(\"Ese nombre de área ya se ha registrado.\");".
                "location.href=\"altas01.php\";".
                "</script>";     
           
        }  
      }  
    else  
    {
	    echo "<script languaje=javascript>".
                "alert(\"Llene todos los campos.\");".
                "location.href=\"altas01.php\";".
                "</script>";   
	
     }  
?>
__________________
"Eres grande por que caminas entre gigantes"
  #20 (permalink)  
Antiguo 15/04/2008, 12:13
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

Pasa algo bien raro hago un echo $fila; antes de entrar a (if $fila<1)
y cuando el campo llenado es menor a limite de caracteres da valor de 1
y cuando es igual o mayo al numero da 0
  #21 (permalink)  
Antiguo 15/04/2008, 12:19
Avatar de jago86  
Fecha de Ingreso: abril-2008
Ubicación: Ibarra - Ecuador
Mensajes: 77
Antigüedad: 16 años
Puntos: 1
Re: PROBLEMA CON mysql_num_rows

Explícate mejor, que limite tiene tu campo, y como es eso de que el campo llenado es mayor al limite?? Si es mayor al limite entonces no puede estar guardado completamente, espero haberte entendido bien. El problema parece estar en la comprobacion de los datos ingresados con los que estan en tu BD, has hecho lo que te sugirio ferbux? Eso tambien te puede ser de utilidad para ver por dondees que se va tu if.
  #22 (permalink)  
Antiguo 15/04/2008, 12:21
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: PROBLEMA CON mysql_num_rows

Entonces ahi esta tu problema, en el valor con el ke komparas tu if.
__________________
"Eres grande por que caminas entre gigantes"
  #23 (permalink)  
Antiguo 15/04/2008, 12:28
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

Sorry por cantinflear, ahi va a ver si me explico mejor.

Mi campo NOMBRE de la tabla AZONA tiene capacidad para un maximo de 17 caracteres, siempre que le introduces un nombre lo guarda, siempre hace el insert, el problema es que no muestra el alert que se indica en el IF, solo lo muestra cuando pones 17 caracteres es decir cuando llenaste hasta el limite el campo NOMBRE. Me explico?
  #24 (permalink)  
Antiguo 15/04/2008, 12:45
Avatar de jago86  
Fecha de Ingreso: abril-2008
Ubicación: Ibarra - Ecuador
Mensajes: 77
Antigüedad: 16 años
Puntos: 1
Re: PROBLEMA CON mysql_num_rows

Vuelvo a preguntar, has hecho lo que te sugirio ferbux? Si no hazlo con unas lineas más que he escrito:

Código PHP:
<?php  
include ("conection.php");  
$conectar=Conectar();  
$nombre=$_POST['nombre'];  
if(
strlen($nombre)>0)  
    {
    echo 
"Texto ingresado:".$nombre;
      
$consulta="SELECT nombre FROM azona WHERE nombre='$nombre'";  
      
$resultado=mysql_query($consulta$conectar) or die('Consulta fallida: ' mysql_error());  
       
$fila=mysql_num_rows($resultado);  
        if(
$fila<1)  
         { 
           ECHO 
"ENTRE AL SEGUNDO IF";
           
$q="INSERT INTO azona VALUES ('$nombre')"
           
$nuevo=mysql_query($q,$conectar) or die('Consulta fallida: ' mysql_error());
         
            echo 
"<script languaje=javascript>".
                
"alert(\"La nueva área se registro exitosamente.\");".
                
"location.href=\"altas01.php\";".
                
"</script>";
          
          
        } 
         else  
        {
                  echo 
"ENTRE AL ELSE DEL SEGUNDO IF. Variable fila: $fila";
             echo 
"<script languaje=javascript>".
                
"alert(\"Ese nombre de área ya se ha registrado. \");".
                
"location.href=\"altas01.php\";".
                
"</script>";     
           
        }  
      }  
    else  
    {
        echo 
"<script languaje=javascript>".
                
"alert(\"Llene todos los campos.\");".
                
"location.href=\"altas01.php\";".
                
"</script>";   
    
     }  
?>
Revisa bien cada una de las variables que intervienen.
  #25 (permalink)  
Antiguo 15/04/2008, 12:57
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

Ya lo hice todo va bien pero como te digo, $fila toma valor de 0 solo cuando entran 17 caracteres, y cuando entran menos toma valor de 1 pero aun asi hace el insert :S
  #26 (permalink)  
Antiguo 15/04/2008, 13:12
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: PROBLEMA CON mysql_num_rows

pues cambia tu condicion del if a if($fila==0)si en ke siempre toma 0 cuando son 17 caracteres y el else si toma 1 cuando son menos.
__________________
"Eres grande por que caminas entre gigantes"
  #27 (permalink)  
Antiguo 15/04/2008, 13:27
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

yeah ya salio chamacos no ma... gracias por su pasciencia neta gracias
aqui no dan puntos ni nada de eso vea? si para darles unos
pero ya quedo gracias... che php me vuelve loco pero me gusta
jajajajajajasaludos
  #28 (permalink)  
Antiguo 15/04/2008, 13:38
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: PROBLEMA CON mysql_num_rows

Si, se da karma, pero no te preokupes eso no es relevante, lo ke importa es ke solucionaste tu problema, solo una cosa puedes postear tu solución para ke le sirva a alguna otra persona ke se tope con ese tipo de errores.

salu2
__________________
"Eres grande por que caminas entre gigantes"
  #29 (permalink)  
Antiguo 15/04/2008, 13:50
 
Fecha de Ingreso: marzo-2008
Ubicación: Queretaro
Mensajes: 69
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PROBLEMA CON mysql_num_rows

A si si pues aqui esta mi codigo.

<?php
include ("conection.php");
$conectar=Conectar();
$nombre=$_POST['nombre'];
if(strlen($nombre)>0)
{ $consulta="SELECT nombre FROM azona WHERE nombre='$nombre'";
$resultado=mysql_query($consulta) or die('Consulta fallida: ' . mysql_error());
$fila=mysql_num_rows($resultado);
if($fila==0) //Se tenia que cambiar esta condicion
{echo $fila;
$q="INSERT INTO azona VALUES ('$nombre')";
$nuevo=mysql_query($q,$conectar);

?>
<script language="JavaScript">
alert("El área se registro con exito.");
parent.location.href = "altas01.php";
</script>
<?php

}

else
{
?>
<script language="JavaScript">
alert("Ese nombre de área ya se ha registrado.");
parent.location.href = "altas01.php";
</script>
<?php
}
}
else
{?>
<script language="JavaScript">
alert("Llene todos los campos.");
parent.location.href = "altas01.php";
</script>
<?php
}
mysql_free_result($fila); //Y liberar memoria de la variable por que se quedaba guardado el valor que tenia de la opercaion anterior.
?>
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:05.