+ Reply to Thread
Results 1 to 6 of 6

Thread: problema mysql -> php solo lee el primer registro

  1. #1
    markosar200294 is online now x10Hosting Member markosar200294 is an unknown quantity at this point
    Join Date
    Sep 2010
    Posts
    56

    problema mysql -> php solo lee el primer registro

    Hola, Tengo esta consulta:
    en $edita hago una busqueda de resgistros que complan unas condiciones de idioma y nivel y me salen por ejemplo 4 registros. OK
    Entro en el While y convierto esta consulta en un array $filas que quiero manejar despues.
    En $comprobar verifico cada uno de los indices de $filas[].
    Si esta consulta resulta vacia entonces mando un mensaje y lo inserto en la otra tabla.
    El problema es que solo hace esto con el primer registro y no con los otros 3.
    Que pasa????

    $edita="SELECT Id FROM material_alumnos WHERE idioma='$idi'AND nivel='$niv'";
    $respuesta=mysql_query($edita,$conexion);
    while ($filas = mysql_fetch_array($respuesta)) {
    $comprobar="SELECT * FROM material_accedido WHERE Id_alumno='$pos' AND Id_material=$filas[0]";
    $respuesta=mysql_query($comprobar,$conexion);
    if (comprobar_cons_vacia ($respuesta)) {
    mensaje ("esta no existia");
    $query="INSERT INTO material_accedido (Id_alumno, Id_material, estado, oculto)
    VALUES ($pos, $filas[0], 0, 0)";
    $respuesta=mysql_query($query,$conexion);
    }
    } // if

  2. #2
    megahostimg17 is offline x10Hosting Member megahostimg17 is an unknown quantity at this point
    Join Date
    Jan 2011
    Posts
    3

    Thumbs up Re: problema mysql -> php solo lee el primer registro


  3. #3
    gomarc's Avatar
    gomarc is offline x10 Elder gomarc is an unknown quantity at this point
    Join Date
    Oct 2007
    Location
    USA
    Posts
    510

    Re: problema mysql -> php solo lee el primer registro

    Hola markosar200294,

    Nota que tu código altera la variable $respuesta dentro del loop WHILE y por tanto la condición $filas = mysql_fetch_array($respuesta) se cumple una sola vez.

    Una posible solución es no volver a usar la variable $respuesta hasta salir del WHILE loop. Es decir, cambia $respuesta = mysql_query(..) por $otra_variable = mysql_query(..) mientras dentro del WHILE.

    Por ejemplo:

    PHP Code:
    while ($filas mysql_fetch_array($respuesta)) 
    {
        
    $comprobar "SELECT * FROM material_accedido WHERE Id_alumno='$pos' AND Id_material=$filas[0]";
        
    $no_existe mysql_query($comprobar,$conexion);
        if (
    comprobar_cons_vacia ($no_existe)) 
        {
            
    mensaje ("esta no existia");
            
    $query "INSERT INTO material_accedido (Id_alumno, Id_material, estado, oculto)
                    VALUES (
    $pos$filas[0], 0, 0)";
            
    $agregar mysql_query($query,$conexion);
        }


    Por otra parte, me permito recomendarte que uses PDO Prepared SQL statements que es mucho mas seguro que el antiguo mysql_query()

  4. #4
    markosar200294 is online now x10Hosting Member markosar200294 is an unknown quantity at this point
    Join Date
    Sep 2010
    Posts
    56

    Re: problema mysql -> php solo lee el primer registro

    Lo primero agradecerte tu preocupacion. Tu solucion me ha inspirado bastante y con ella he podido avanzar un poco, muchas gracias.
    Lo segundo preguntarte de que va eso de PDO, no lo conozco.

  5. #5
    gomarc's Avatar
    gomarc is offline x10 Elder gomarc is an unknown quantity at this point
    Join Date
    Oct 2007
    Location
    USA
    Posts
    510

    Re: problema mysql -> php solo lee el primer registro

    markosar200294,

    No te desanimes si parece algo difícil al principio. Con tiempo aprenderás a dominarlo.

    Busca por google PDO tutorial y encuentra el que más te guste.

    Estos son los 3 primeros resultados (en inglés):

  6. #6
    tttony's Avatar
    tttony is offline x10 Sophmore tttony is an unknown quantity at this point
    Join Date
    Jan 2008
    Location
    ~ 10°10'27.10''' N 67°59'59'.59''' O elev. 457m
    Posts
    147

    Re: problema mysql -> php solo lee el primer registro

    la otra cuestion que debes cuidar es la seguridad
    PHP & MySQL Web Developer
    Free Domain co.cc

+ Reply to Thread

Similar Threads

  1. Replies: 3
    Last Post: 12-21-2010, 08:34 PM
  2. he ya me lelgo mi primer rewards
    By figu120 in forum General
    Replies: 9
    Last Post: 11-10-2008, 06:24 PM
  3. Problema con el registro
    By magico10 in forum Soporte
    Replies: 8
    Last Post: 10-19-2008, 08:46 PM
  4. problema mysql
    By syak_ in forum Soporte
    Replies: 3
    Last Post: 09-19-2008, 10:36 PM
  5. problema mysql
    By syak_ in forum Soporte
    Replies: 2
    Last Post: 09-16-2008, 05:18 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
x10hosting free hosting for the masses
dedicated servers