Foros del Web » Programando para Internet » PHP »

Problema con recepcion de una consulta

Estas en el tema de Problema con recepcion de una consulta en el foro de PHP en Foros del Web. Hola todos, tengo una consulta a la base de datos que la realizo asi... Código PHP: function  consultaP ( $idmodulo = 1 , $numero = ...
  #1 (permalink)  
Antiguo 09/04/2008, 06:44
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Pregunta Problema con recepcion de una consulta

Hola todos, tengo una consulta a la base de datos que la realizo asi...

Código PHP:
function consultaP($idmodulo=1,$numero=5)

        
$res mysql_query("SELECT * FROM pregunta WHERE idmodulo='".$idmodulo."' ORDER BY RAND() LIMIT 0,".$numero);
while (
$p2 mysql_fetch_assoc($res)) 
            {
         
    echo 
"<tr><td bgcolor=#666666 height=25><div align=center><span class=style9><strong>
        <input name="
.$p2['idpregunta']."  type=hidden value=".$p2['idpregunta']." />
        "
.$p2['pregunta']." </strong></span></div></td></tr>"
        
           
$resultado =  mysql_query("SELECT * FROM respuestas WHERE idpregunta='".$p2['idpregunta']."' ");
        while (
$linea mysql_fetch_assoc($resultado))
        {
            echo 
"<tr><td bgcolor=#f4f4f4>&nbsp;&nbsp;".$linea["respuesta"]."<input type=checkbox name=".$linea["idrespuesta"]." id=checkbox /></td></tr>";
        }
    } 

Y mi problema es al recivir los datos..... que al hacerlo de la siguiente manera me tira el error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\servidor\web\EXAMENES\sistema_examenes\libreria \respuestas.php on line 10

Código PHP:
conectar();
$iduser $_POST['iduser'];
$fecha $_POST['fecha'];
$mod$_POST['modulo'];
if ( 
$_REQUEST[$p2['idpregunta']] )
$preg mysql_query("SELECT * FROM respuestas WHERE idpregunta in(".$p2['idpregunta'].")");  
while (
$p mysql_fetch_array($preg)) 
            { 
        
        echo 
"".$p['idpregunta']."<br />";
        echo 
"".$p['respuesta']."<br />";

            }
desconectar(); 
Alguna idea de que puede ser... o si tienen algun ejemplo de como podria pasar los valores de la primer consulta a la segunda consulta les agradeciera....

Saludos
  #2 (permalink)  
Antiguo 09/04/2008, 07:14
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Re: Problema con recepcion de una consulta

Esta mal el codigo, no puedes poner comillas dentro de otras comillas, php creera que ya se ha terminado el string. Si te hace falta poner la comilla ponle un barra delante (\")

Tambien esteria bien que comprubes el resultado:

if (!$preg) {
die('Error en la consulta a la base de datos: ' . mysql_error());
}
  #3 (permalink)  
Antiguo 09/04/2008, 07:47
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Problema con recepcion de una consulta

Que tal, cmarrero la primera consulta esta dentro de una funcion y no veo donde la estas llamando para ejecutar, otra cosa estas haciendo un link con otra pagina donde tienes la segunda consulta? si es asi, tienes que hacerlo de dos formas o pasas las variables que quieres recoger en la otra página por la url o tienes que agregar campos hidden en un formulario con el valor de la consulta y hacer submit, si tienes más código seria bueno que lo postearas a ver como es el flujo pq creo que en ese código no hay errores de sintaxis. El error que te da es de la consulta de base de datos que lo que me imagino es que no esta trayendo tu variable [$p2['idpregunta']], aparte que tipo de variable es esa?, un arreglo¿?. Espero que te sirva de ayuda... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #4 (permalink)  
Antiguo 09/04/2008, 16:05
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Pregunta Re: Problema con recepcion de una consulta

Me olvide de poner el llamado a la funcion... pero si lo hago... y no me recive el llamado a $p2[].... ese es mi problema y no le encuentro solucion...

Trate con $_REQUEST...$_POST... Y NO AHI CASO..

Necesito saber como puedo tomar esos datos..

Graicas
  #5 (permalink)  
Antiguo 09/04/2008, 16:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con recepcion de una consulta

¿De donde obtienes $p2?

Saludos.
  #6 (permalink)  
Antiguo 09/04/2008, 16:51
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Pregunta Re: Problema con recepcion de una consulta

Del array del primer archivo que postee en la pregunta... .$p2['idpregunta'].
  #7 (permalink)  
Antiguo 09/04/2008, 17:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con recepcion de una consulta

Tienes un GRAVE problema de concepto de como funciona PHP, tu no puedes declarar $p2 en una pagina y esperar que esta variable exista en la otra pagina así mágicamente.

Para pasar la variable $p2 a tu otra pagina necesitas hacerlo de diferentes formas:
- Vía variables de sesión
- Vía un formulario html (via POST)
- Vía un link html (parte de GET)

Te recomendaría que leyeras un libro de PHP básico antes de adentrarte a programar con bases de datos.

Saludos.
  #8 (permalink)  
Antiguo 09/04/2008, 17:26
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Re: Problema con recepcion de una consulta

Perdon por no espesificar bien.... el primer archivo lo envio por un formulario con el metodo post....

Si te fijas en la funcion tiene un input hidden, y las preguntas un checkbox...

Perdon por no espesificarlo bien, pense que se sobre entendia...

Intento hacer lo siguiente... para que me comprendan un poco mejor....


Tengo una tabla pregunta, otra respuesta, otra examen....

Hago una consulta donde me asocia la tabla pregunta con la de respuestas, para que me tire una pregunta y las respuestas posibles de esa pregunta.

El usuario responde...

Y aqui mi problema... cuando el usuario responde necesito que se guarde en mi Base de datos.. los id de las preguntas por mas que no las halla respondido, y los id de las respuestas que respondio el usuario.... de esa manera sabre que respuestas respondio y cuales no....

Luego tengo que hacer la consulta para mostrarles esos datos al usuario, para mostrar esos datos tengo que relacionar las tablas examen, con la de respuestas y preguntas...

Y la consulta la deseo mostrar con el id del usuario, la pregunta, las respuestas posibles, la que es correcta, y la que respondio el usuario...

He hecho muchas pruebas.... incansables, pero como me cuesta ya que no soy experto en php....

Espero que se haya entendido lo que deseo hacer.....
  #9 (permalink)  
Antiguo 09/04/2008, 18:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con recepcion de una consulta

Hola cmarrero,

Aun así, si te fijas en tu código expuesto nunca descargas $p2 de ningún lado, al tu pasarla en tu campo "hidden" no tienes forma de distinguir.

Deberías de hacer mejor algo así por cada pregunta:
Código PHP:
<input type="checkbox" name="preguntas[<?php echo $p2['idpregunta']; ?>][]" value="<?php $linea["idrespuesta"]; ?>" id="checkbox" />
Así en el otro lado puedes ciclar tus preguntas:
Código PHP:
foreach( $_POST['preguntas'] as $idpregunta => $respuestas ) {
       echo 
"Pregunta $idpregunta marco las siguientes respuestas:";
       
print_r$respuestas );

Así podrás conocer el id de la pregunta y los subsecuentes id de las respuestas que eligió.

Saludos.
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 11:45.