Regresar a la página ComoCrearTuWeb.com
Resultados 1 al 5 de 5

Tema: mysql_fetch_array siempre me devuelve '0'

  1. #1
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    557
    Poder de Reputación
    21

    mysql_fetch_array siempre me devuelve '0'

    Hola, probrablemente este tema este muy traido. Y de hecho he revisao algunos que lo tratan pero no encuentro solucion.
    A ver, tengo una bbdd a la cual me conecto sin problemas. En ella una tabla llamada usuarios con 4 campos: id, nombre, email, contraseña.
    Intento hacer un sistema de registro con un form asi:
    Código PHP:
    <?
    function registro(){
    ?>
    <div id="registro">
    <form action="registrando.php" method="post">
    <table border="1" cellpadding="0" cellspacing="0">
    <tr><td align="center"><img alt="marcador" src="imagenes/carpetas.gif" height="50" width="150"/></td></tr>
    <tr><td align="center">Comparte tus fotos de Sevilla</td></tr>
    <tr><td align="left"><input type="text" name="nombre" value=" " />Nombre</td></tr>
    <tr><td align="left"><input type="text" name="correo" value=" " />E-mail</td></tr>
    <tr><td align="left"><input type="password" name="passwd" value="" />Contraseña</td></tr>
    <tr><td align="left"><input type="password" name="passwd_dos" value="" />Repetir contraseña</td></tr>
    <tr><td><input type="submit" value="Registrar" /></td></tr>
    </table>
    </form>
    </div>
    <?
    }
    ?>
    Aparece perfecta en las paginas.
    Despues el archivo que lo recoge (registrando.php), es asi:
    Código PHP:
    <?
    include("conect.php");

    $nombre=$_POST["nombre"];
    $email=$_POST["correo"];
    $passwd=$_POST["passwd"];
    $passwd_dos=$_POST["passwd_dos"];

    //Aqui consulto si hay un nombre en la bbdd llamado como el recogido en el form
    $verificar mysql_query("SELECT nombre FROM usuarios WHERE nombre = '$_POST[nombre]' ");

    /* y aqui e donde tengo el problema
    con mysql_fetch_array siempre me devuelve '0' 
    y consecuentemente me indica que cualquie nombre no esta en la bbdd, aunque esté*/
    if($row mysql_fetch_array($verificar)){
    echo 
    "Problema: ";
    echo 
    "Ese nombre ya existe. Por favor vuelve y elige otro.";
    pie("Fin");
    exit;
    }
    else{
    if(!
    valid_email($email)){
    echo 
    "Problema: ";
    echo 
    "No es una dirección email válida.  Por favor vuelve e inténtalo de nuevo.";
    pie("Fin");
    exit;
    }
    if (
    $passwd =!$passwd_dos){
    echo 
    "Problema: ";
    echo 
    "No coinsiden las contraseñas.  Por favor vuelve e inténtalo de nuevo.";
    pie("Fin");
    exit;
    }

    /* y aqui no se porque no lo inserta*/
    $ingresar mysql_query ("INSERT INTO usuarios(nombre, correo, contraseña)
    values ('
    $nombre','$email','$passwd')") or die ('ERROR AL SUBIR');
    echo 
    "Enhorabuena ya formas parte de esta Tu web";
    pie("Fin");
    }
    exit;
    ?>
    Como digo en los comentarios tengo los problemas, y no veo la solucion.
    ¿Podeis echarme una manita porfa?
    Gracias.
    Última edición por gjulian; 05/06/2012 a las 20:30
    Lo mejor de caerse al tropezar, es volverse a levantar.

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,046
    Poder de Reputación
    27
    Hola:

    Haz esto después de la consulta a la base de datos:

    Código PHP:
    $nr mysql_num_rows$verificar );
    // En lugar del if( $row = mysql_fetch... pon esto:
    if( $nr == ) {  // Si es 0, entonces no existe el usuario
      // Aquí pondrás lo que haces si no existe el usuario
    } else { // El usuario ya existe
      // Aquí pondrás lo que se hace si ya existe

    Hay algo que nunca había visto, ¿qué es pie()?

    Saludos.

  3. #3
    Me va gustando esto... Habitante Avatar de SurKaiser
    Fecha de Ingreso
    15 oct, 11
    Mensajes
    246
    Poder de Reputación
    16
    Aqui : $verificar = mysql_query("SELECT nombre FROM usuarios WHERE nombre = '$_POST[nombre]' ");

    Intentalo de esta manera :

    $verificar = mysql_query("SELECT nombre FROM usuarios WHERE nombre='".$nombre."'");
    Mi web en construccion :
    surkaiser . com . es
    "El conocimiento es Poder"

  4. #4
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    557
    Poder de Reputación
    21
    Gracias SurKaiser y skaparate. Pero no venía por ahí el problema.
    El Problema era que tenía puesto en el form:
    Código HTML:
    <tr><td align="left"><input type="text" name="nombre" value=" "/>Nombre</td></tr>
    el value="" con intencion de que no apareciera nada en el interior del input al presentarlo en pantalla por primera vez.
    Aun sigo teniendo el prblema del INSERT me da ERROR AL SUBIR. Y no veo que puede ser.
    Lo mejor de caerse al tropezar, es volverse a levantar.

  5. #5
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    557
    Poder de Reputación
    21
    $ingresar = mysql_query ("INSERT INTO usuarios(nombre, correo, contraseña)
    values ('$nombre','$email','$passwd')") or die ('ERROR AL SUBIR');
    ¿Como c... iba a subirse si tenia puesto el campo correo en vez de email?
    Torpe de mi.
    Código PHP:
    $ingresar mysql_query ("INSERT INTO usuarios(nombre, email, contraseña)
    values ('
    $nombre','$email','$passwd')") or die ('ERROR AL SUBIR'); 
    Gracias de todas formas chicos. ¿Se nota que estoy verde aun?
    Lo mejor de caerse al tropezar, es volverse a levantar.

Temas Similares

  1. siempre problemas
    Por perezosa en el foro Curso Paso a Paso con Html-Kit.
    Respuestas: 1
    Último Mensaje: 26/07/2010, 14:38
  2. ¿hacer editables campos devuelt por $row = mysql_fetch_array
    Por gjulian en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 2
    Último Mensaje: 04/06/2010, 11:13

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •