Comunidad de diseño web y desarrollo en internet online

Consulta a Base de datos a través de Select múltiple

Citar            
MensajeEscrito el 17 Nov 2012 06:50 pm
Hola a todos,

Mi problema pareciese ser simple pero ya llevo tiempo tratando de resolverlo y no puedo, espero me ayuden.

Bueno, tengo un formulario en php con un select múltiple, a cada opción le puse un ID porque creo que así podría hacer la consulta a la BD, ahora el tema es que cuando la persona seleccione mas de una opción, haga la consulta a la BD y muestre la información de dichas opciones elegidas.

Espero me puedan ayudar en lo que puedan, si necesitan mas información me avisan, de antemano muchas gracias.

Saludos.

Por panconjugo

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Nov 2012 04:58 pm
bueno aca un ejemplo de las consultas fijate bien los ejemplos
http://www.tutorialspoint.com/mysql/mysql-in-clause.htm

Código MySQL :

SELECT * FROM empleados WHERE id_empleado IN (10,15,35 )

en php para unir arrays tienes la opcion implode
http://es.php.net/implode

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Nov 2012 09:29 pm
Bueno... alla vamos... lo primero que tienes que hacer es poner el siguiente codigo HTML

Código HTML :

<form name="enviar" action="index.php" method="post">
      <select name="opciones[]" multiple="multiple">
         <option>val 1</option>
         <option>val 2</option>
         <option>val 3</option>
         <option>val 4</option>
      </select>

      <button type="submit">Enviar</button>
   </form>

si te fijas bien el nombre del select multiple tiene corchetes (

Código :

name="opciones[]"
), indicando que para la pagina del servidor se enviará en vez de una variable atómica... un arreglo.

Por otra parte, del lado del servidor recoges los valores como lo haces de forma tradicional

Código PHP :

<?php 
      if (isset($_POST['opciones'])) {
         print_r($_POST['opciones']);
      }
   ?>

donde

Código :

$_POST['opciones']
es un arreglo que contiene las opciones seleccionadas.

Espero te haya sido util.
Saludos
P.

Por pmolina88

74 de clabLevel



Genero:Masculino  

Ingeniero en Sistemas

firefox
Citar            
MensajeEscrito el 22 Nov 2012 01:31 am
Hola amigos, gracias a ambos por las respuestas y disculpas por no responder rapido pero el trabajo me tiene loco jeje.

Voy a probar las opciones y les cuento que tal me fue, Gracias nuevamente.
Saludos.

Por panconjugo

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Nov 2012 05:10 pm
Hola chicos, segui sus ayudas pero aun no logro dar con esto :( les dejare el link del ejemplo para que vean que es lo que quiero hacer

[url=http://creativemagenta.com/pilot/system.php][/url]

Donde dice JOURNALS es donde la persona podra elegir mas de una opcion (Presionando CTRL) entonces cuando se de click en GENERATE luego arrojara el informacion de dichas opciones elegidas, recorriendo la tabla de la base de datos buscando las opciones elegidas oviamente.

En el formulario tengo 3 select una llamado "sectiona", "sectionb[]" y "section[]". Como en el primer select solo hay una opcion no esta entre corchetes.

En el codigo PHP para tomar los valores seleccionados tengo esto:

Código PHP :

$sectiona = $_POST["sectiona"];
$sectionb = $_POST["sectionb"];
$sectionc = $_POST["sectionc"];

$resultadosectionA = mysql_query ("select description from journals where id_journal='$sectiona'") or die("Error en la consulta SQL");


Para mostrar por pantalla los valores seleccionados tengo esto:

Código PHP :

<? while( $row = mysql_fetch_array ( $resultadosectionA )) {echo $row [ "description" ];} ?>


Como pueden ver para la primera secion A funciona perfectamente, muestra la descripcion de dicha opcion elegida sin problemas, asi que intente hacer lo mismo para las otras sectiones donde se pueden elegir mas de una, escribiendo el mismo codigo pero no me arreja nada. He intentado e intentado pero nada, espero me puedan dar una mano, saludos y muchas gracias de antemano.

Por panconjugo

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Nov 2012 06:02 pm
amigo, leiste las recomendaciones que te pusieron en el foro a la final tu consulta deberia quedar algo asi

Código PHP :

$sectiona = implode("','", $_POST["sectiona"]);
$sectionb = $_POST["sectionb"];
$sectionc = $_POST["sectionc"];

$resultadosectionA = mysql_query ("SELECT description FROM journals WHERE id_journal IN ('$sectiona')") or die("Error en la consulta SQL");

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Nov 2012 07:46 pm
Gracias por tu respuesta

Ahora esta funcionando al 95%, hice lo que me dijiste, pero ahora el problema es que si no selecciono nada en las SectionB y C me aparece este siguiente mensaje de error:

Código :

Warning: implode() [function.implode]: Invalid arguments passed in /home/panugo/public_html/pilot/bld-cotrct.php on line 49


Saludos.

Por panconjugo

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Nov 2012 08:04 pm
bueno lo otro ya depende de voz ya que son validaciones, mira que php tiene funciones para saber si la VARIABLE es un ARRAY o no lo que IMPLODE indica en tu mensaje es que no tiene ningun array como argumento,

Código PHP :

$sql_journals = '';
if(!empty($_POST["sectiona"]) && is_array($_POST["sectiona"]))
{
    $sql_journals = "WHERE id_journal IN ('"  . implode("','", $_POST["sectiona"])  . "')";
}
//$sectiona = implode("','", $_POST["sectiona"]);
$sectionb = $_POST["sectionb"];
$sectionc = $_POST["sectionc"];

$resultadosectionA = mysql_query ("SELECT description FROM journals $sql_journals") or die("Error en la consulta SQL");

lo que te puse solo es un ejemplo a la rapida pero como deberias ahcerlo para validar aparte que segun la consulta el sitio esta a la merced de ataques SQL o injecciones SQL , osea un usuario mal intencionado aprovecha la falta de seguridad de tu consulta y puede ejecutar otro tipo de sentencias MYSQL

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Feb 2014 08:08 pm
Hola, me gustaría que pusieran el código con algún ejemplo, pues tengo el mismo problema

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Feb 2014 08:28 pm

eulersito escribió:

Hola, me gustaría que pusieran el código con algún ejemplo, pues tengo el mismo problema

pon tu codigo con el que tienes problemas y veras mejores respuestas :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Feb 2014 10:20 am
Bueno, ni que decir tiene que soy muy novato en esto. Lo que me gustaría es que al hacer selecciones múltiples en curso, tema y dificultad, los enunciados fueran extraídos de la base de datos. Gracias.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
<html xmlns="http://www.w3.org/1999/xhtml">

<img src="cabecera.jpg" width="1000" height="174" />


<head>
<title>Ex&aacute;menes</title>


</head>

<body>
<form name="editar" action="" method="POST">

<div align="center">
<table width="100%" align="center">
<tr>

<td bgcolor="#99FFFF"><div align="center">
<h3>Curso</h3>
</div></td><td><select name="curso[]" id="curso"multiple="multiple">
<option value="%" selected="selected">todo</option>
<option value="1 ciclo Primaria">1 ciclo Primaria</option>
<option value="2 ciclo Primaria">2 ciclo Primaria</option>
<option value="3 ciclo Primaria">3 ciclo Primaria</option>
<option value="1 ESO">1 ESO</option>
<option value="2 ESO">2 ESO</option>
<option value="3 ESO">3 ESO</option>
<option value="4 ESO">4 ESO</option>
<option value="1 Bachillerato">1 Bachillerato</option>
<option value="2 Bachillerato">2 Bachillerato</option>
</select></td>
</tr>
<tr>
<td bgcolor="#99FFFF"><div align="center">
<h3>Tema</h3>
</div></td><td><select name="tema" id="tema"multiple="multiple">
<option value="%" selected="selected">Todo</option>
<option value="suma">Suma</option>
<option value="resta">Resta</option>
<option value="multiplicacion">Multiplicaci&oacute;n</option>
<option value="division">Divisi&oacute;n</option>
<option value="ejercicios 2 operaciones">Ejericicios 2 operaciones</option>
<option value="ejercicios de mas de 2 operaciones">Ejercicios de m&aacute;s de 2 operaciones</option>
</select></td>
</tr>
<tr>
<td bgcolor="#99FFFF"><div align="center">
<h3>Dificultad</h3>
</div></td>
<td><select name="dificultad" id="dificultad" multiple="multiple">
<option value="%" selected="selected">Todo</option>

<option value="baja">baja</option>
<option value="media">media</option>
<option value="alta">alta</option>
</select></td>
</tr>
<tr>
<td>&nbsp;</td><td><input type="submit" name="Submit" value="Guardar en base de datos | Filtrar" /></td>
</tr>
</table>
</div>
</form>

<?php








$conexion = mysql_connect('localhost','root','')
or die ("NO se puede conectar");
$db = mysql_select_db('exam',$conexion)
or die ("NO se puede conectar");

//Creamos formulario con las listas de seleccion





$consulta = ("SELECT enunciado FROM ejercicios WHERE dificultad like '{$_POST['dificultad']}' AND curso like '{$_POST['curso']}' AND tema like '{$_POST['tema']}'");
$resultado = mysql_query ($consulta)
or die ("No conectiion");


//echo "<form action='mostrarproductos.php' method='post'>\n";
//echo "<form action='Untitled-1.php' method='post'>\n";
echo "<table cellpadding='5' border='1'>";

echo "<table bgcolor=\"#ACE6F0\" align=center style=\"border:2px outset black\">";
for ($i = 0; $i < mysql_num_fields($resultado); $i++)
{
print "<th>".mysql_field_name($resultado, $i)."</th>\n";
}
while ($registro = mysql_fetch_row($resultado))
{ foreach($registro as $clave)
echo "<tr>";echo "<tr><td valign='top' width='15%'>\n";
echo "<input type='checkbox' name='casilla[]'
value='$clave'\n";

{
echo "<td bgcolor=\"#ffffff\"style=\"border:2px groove black\" align=\"center\">",$clave,"</td>";
}
}
if (empty ($clave))
{}
else
{print_r($clave,'casilla');
echo "</tr></table>";}

echo "<p><input type='submit' value='A impresión'>
</form>\n";

?>


</html>

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Feb 2014 09:01 am
Hola de nuevo. Seguramente no está nada claro mi código:

Si en name="curso[]" quito los corchetes, me hace la consulta correctamente en la base de datos, pero solamente me devuelve la última opción seleccionada en el select multiple. Y se pongo los corchetes, me lanza el siguiente mensaje:
Array to string conversion in C:\xampp\htdocs\exam\index_julio2.php on line 89.

Insisto en que soy bastante novato, pero parecía que aquí tenían la solución. Gracias

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Feb 2014 04:47 am
bueno la idea ,es que una pregunta clara ,da respuestas claras, ahora por ejemplo no sabes lo dificil q es ver un CODIGO no Identado,y como muchos programadores no vemos siempre el foro desde el PC con nuestro Programa favorito para identar codigo ,lo vemos desde tablets, o Laptops de pantalla pequeña y solo para leer y responder,pero cuando se vee Codigo asi a lo crudo es dificil dar una respuesat clara, ya que primero tenemos que ordenar el codigo,ver cual es la parte importante y ver donde esta el problema.

bueno para los que quieran colaborar un poco lo dejo identado tu codigo

Código PHP :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
<html xmlns="http://www.w3.org/1999/xhtml">

<img src="cabecera.jpg" width="1000" height="174" />
<head>
   <title>Ex&aacute;menes</title>
</head>
<body>
<form name="editar" action="" method="POST">

   <div align="center">
      <table width="100%" align="center">
         <tr>
            <td bgcolor="#99FFFF"><div align="center">
               <h3>Curso</h3>
            </div></td><td><select name="curso[]" id="curso"multiple="multiple">
            <option value="%" selected="selected">todo</option>
            <option value="1 ciclo Primaria">1 ciclo Primaria</option>
            <option value="2 ciclo Primaria">2 ciclo Primaria</option>
            <option value="3 ciclo Primaria">3 ciclo Primaria</option>
            <option value="1 ESO">1 ESO</option>
            <option value="2 ESO">2 ESO</option>
            <option value="3 ESO">3 ESO</option>
            <option value="4 ESO">4 ESO</option>
            <option value="1 Bachillerato">1 Bachillerato</option>
            <option value="2 Bachillerato">2 Bachillerato</option>
         </select></td>
         </tr>
         <tr>
            <td bgcolor="#99FFFF"><div align="center">
               <h3>Tema</h3>
            </div></td><td><select name="tema" id="tema"multiple="multiple">
            <option value="%" selected="selected">Todo</option>
            <option value="suma">Suma</option>
            <option value="resta">Resta</option>
            <option value="multiplicacion">Multiplicaci&oacute;n</option>
            <option value="division">Divisi&oacute;n</option>
            <option value="ejercicios 2 operaciones">Ejericicios 2 operaciones</option>
            <option value="ejercicios de mas de 2 operaciones">Ejercicios de m&aacute;s de 2 operaciones</option>
         </select></td>
         </tr>
         <tr>
            <td bgcolor="#99FFFF"><div align="center">
               <h3>Dificultad</h3>
            </div></td>
            <td><select name="dificultad" id="dificultad" multiple="multiple">
               <option value="%" selected="selected">Todo</option>

               <option value="baja">baja</option>
               <option value="media">media</option>
               <option value="alta">alta</option>
            </select></td>
         </tr>
         <tr>
            <td>&nbsp;</td><td><input type="submit" name="Submit" value="Guardar en base de datos | Filtrar" /></td>
         </tr>
      </table>
   </div>
</form>

<?php
$conexion = mysql_connect('localhost','root','')
or die ("NO se puede conectar");
$db = mysql_select_db('exam',$conexion)
or die ("NO se puede conectar");

//Creamos formulario con las listas de seleccion

$consulta = ("SELECT enunciado FROM ejercicios WHERE dificultad like '{$_POST['dificultad']}' AND curso like '{$_POST['curso']}' AND tema like '{$_POST['tema']}'");
$resultado = mysql_query ($consulta)
or die ("No conectiion");


//echo "<form action='mostrarproductos.php' method='post'>\n";
//echo "<form action='Untitled-1.php' method='post'>\n";
   echo "<table cellpadding='5' border='1'>";

      echo "<table bgcolor=\"#ACE6F0\" align=center style=\"border:2px outset black\">";
      for ($i = 0; $i < mysql_num_fields($resultado); $i++)
      {
      print "<th>".mysql_field_name($resultado, $i)."</th>\n";
      }
      while ($registro = mysql_fetch_row($resultado))
      { foreach($registro as $clave)
      echo "<tr>";echo "<tr><td valign='top' width='15%'>\n";
         echo "<input type='checkbox' name='casilla[]'
                      value='$clave'\n";

         {
         echo "<td bgcolor=\"#ffffff\"style=\"border:2px groove black\" align=\"center\">",$clave,"</td>";
         }
         }
         if (empty ($clave))
         {}
         else
         {print_r($clave,'casilla');
         echo "</tr></table>";}

   echo "<p><input type='submit' value='A impresión'>
</form>\n";
?>
</html> 

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Feb 2014 04:53 am
bueno antes que nada aclaranos esto

Código :

<select name="curso[]" id="curso"multiple="multiple">
            <option value="%" selected="selected">todo</option>
            <option value="1 ciclo Primaria">1 ciclo Primaria</option>
            <option value="2 ciclo Primaria">2 ciclo Primaria</option>
            <option value="3 ciclo Primaria">3 ciclo Primaria</option>
            <option value="1 ESO">1 ESO</option>
            <option value="2 ESO">2 ESO</option>
            <option value="3 ESO">3 ESO</option>
            <option value="4 ESO">4 ESO</option>
            <option value="1 Bachillerato">1 Bachillerato</option>
            <option value="2 Bachillerato">2 Bachillerato</option>
         </select>

eso lo obtienes de alguna base de datos??? de alguna tabla en particular??
por que recuerda que LIKE es para hacer busquedas si se esta obteniendo de una base de datos el LIKE esta por demas y abria que cambiarlo

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Feb 2014 07:20 am
Empezaré dando las gracias por colaborar con un novato. En segundo lugar diré a modo de disculpa que mi código está hecho con una mezcla de códigos que voy copiando y pegando de por ahí y del resultado más o menos a ciegas de cosas que voy probando con dreamweaver.
Dicho esto, sí, con este select multiple, voy a una base de datos llamada exam y que tiene una única tabla llamada ejercicios.
Lo del like me parece recordar que lo cambié en un intento de que me funcionara la opción de cargar "todo" y me funcionó. Es posible que todo haya sido casualidad pero llegado a este punto, la respuesta es la correcta cuando yo marco una sola opción en este formulario llamado "curso".
Lo que no funciona es cuando intento hacer más de una selección pulsando la tecla ctrl. Por eso intenté poner los corchetes [] a la variable curso, pero entonces deja de funcionar todo. Gracias por la colaboración.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Feb 2014 06:28 pm
Por si sirve de algo: si cambio los "like" por "=", el código no funciona. Gracias.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Feb 2014 10:59 pm
cambia esto

Código PHP :

//Creamos formulario con las listas de seleccion

$consulta = ("SELECT enunciado FROM ejercicios WHERE dificultad like '{$_POST['dificultad']}' AND curso like '{$_POST['curso']}' AND tema like '{$_POST['tema']}'");

por esto

Código PHP :

//Creamos formulario con las listas de seleccion
$sql_curso = implode("','",$_POST['curso']);
$consulta = <<<SQL
   SELECT enunciado 
   FROM ejercicios 
   WHERE 
      dificultad    like '{$_POST['dificultad']}' AND 
      curso       IN    ('$sql_curso') AND 
      tema      like '{$_POST['tema']}'
SQL;
//con eso tienes parte del problema resuelto

y trata de indentar,por que preguntas CLARAS reciben respuestas Claras
" la indentación es un tipo de notación secundaria utilizado para mejorar la legibilidad del código fuente por parte de los programadores"

http://es.wikipedia.org/wiki/Indentaci%C3%B3n

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 12 Feb 2014 06:31 pm
Bueno, mil gracias por tu ayuda. Funciona genial. Es justo lo que necesitaba.
También me ha hecho ver que estaba muy lejos de conseguirlo yo solo. Necesito hacer un curso.
Voy a ver si soy capaz de extender la idea a las otras variables. Gracias otra vez.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Feb 2014 08:18 pm
Una consulta más. Quizá abusando de tu amabilidad. Antes funcionaba la opción "todo" utilizando el comodín %, pero ahora ha dejado de funcionar. ¿Hay alguna solución para esto?. Gracias.

¿Conoces algún buen curso en el que me pueda empapar de todo esto desde cero?. Más gracias.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Feb 2014 08:36 pm
¡Vaya!, veo que esto no es tan sencillo como repetir la misma idea en las otras variables. Éste es el código que me queda pero así no funciona nada:

Código :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
<html xmlns="http://www.w3.org/1999/xhtml">

<img src="cabecera.jpg" width="1000" height="174" />
<head>
   <title>Ex&aacute;menes</title>
</head>
<body>
<form name="editar" action="" method="POST">

   <div align="center">
      <table width="100%" align="center">
         <tr>
            <td bgcolor="#99FFFF"><div align="center">
               <h3>Curso</h3>
            </div></td><td><select name="curso[]" id="curso"multiple="multiple">
            <option value="%" selected="selected">todo</option>
            <option value="1 ciclo Primaria">1 ciclo Primaria</option>
            <option value="2 ciclo Primaria">2 ciclo Primaria</option>
            <option value="3 ciclo Primaria">3 ciclo Primaria</option>
            <option value="1 ESO">1 ESO</option>
            <option value="2 ESO">2 ESO</option>
            <option value="3 ESO">3 ESO</option>
            <option value="4 ESO">4 ESO</option>
            <option value="1 Bachillerato">1 Bachillerato</option>
            <option value="2 Bachillerato">2 Bachillerato</option>
         </select></td>
         </tr>
         <tr>
            <td bgcolor="#99FFFF"><div align="center">
               <h3>Tema</h3>
            </div></td><td><select name="tema[]" id="tema"multiple="multiple">
            <option value="%" selected="selected">Todo</option>
            <option value="suma">Suma</option>
            <option value="resta">Resta</option>
            <option value="multiplicacion">Multiplicaci&oacute;n</option>
            <option value="division">Divisi&oacute;n</option>
            <option value="ejercicios 2 operaciones">Ejericicios 2 operaciones</option>
            <option value="ejercicios de mas de 2 operaciones">Ejercicios de m&aacute;s de 2 operaciones</option>
         </select></td>
         </tr>
         <tr>
            <td bgcolor="#99FFFF"><div align="center">
               <h3>Dificultad</h3>
            </div></td>
            <td><select name="dificultad[]" id="dificultad" multiple="multiple">
               <option value="%" selected="selected">Todo</option>

               <option value="baja">baja</option>
               <option value="media">media</option>
               <option value="alta">alta</option>
            </select></td>
         </tr>
         <tr>
            <td>&nbsp;</td><td><input type="submit" name="Submit" value="Guardar en base de datos | Filtrar" /></td>
         </tr>
      </table>
   </div>
</form>

<?php
$conexion = mysql_connect('localhost','root','')
or die ("NO se puede conectar");
$db = mysql_select_db('exam',$conexion)
or die ("NO se puede conectar");


//Creamos formulario con las listas de seleccion
$sql_curso = implode("','",$_POST['curso']);
$sql_tema = implode("','",$_POST['tema']);
$sql_dificultad = implode("','",$_POST['dificultad']);
$consulta = <<<SQL
   SELECT enunciado 
   FROM ejercicios 
   WHERE 
      dificultad    IN    ('$sql_curso') AND 
      curso       IN    ('$sql_tema') AND 
      tema      IN    ('$sql_dificultad')
SQL;
$resultado = mysql_query ($consulta)
or die ("No conectiion");


//echo "<form action='mostrarproductos.php' method='post'>\n";
//echo "<form action='Untitled-1.php' method='post'>\n";
   echo "<table cellpadding='5' border='1'>";

      echo "<table bgcolor=\"#ACE6F0\" align=center style=\"border:2px outset black\">";
      for ($i = 0; $i < mysql_num_fields($resultado); $i++)
      {
      print "<th>".mysql_field_name($resultado, $i)."</th>\n";
      }
      while ($registro = mysql_fetch_row($resultado))
      { foreach($registro as $clave)
      echo "<tr>";echo "<tr><td valign='top' width='15%'>\n";
         echo "<input type='checkbox' name='casilla[]'
                      value='$clave'\n";

         {
         echo "<td bgcolor=\"#ffffff\"style=\"border:2px groove black\" align=\"center\">",$clave,"</td>";
         }
         }
         if (empty ($clave))
         {}
         else
         {print_r($clave,'casilla');
         echo "</tr></table>";}

   echo "<p><input type='submit' value='A impresión'>
</form>\n";
?>
</html> 

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Feb 2014 11:10 pm
Ok, sí que funciona. Me había equivocado y había bailado las variables en la consulta. Perdón.

Lo que sí que no funciona es lo del comodín % para poder seleccionar todas las opciones juntas.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Feb 2014 07:33 pm
es solo un ejempo

Código PHP :

//Creamos formulario con las listas de seleccion
$sql_curso = implode("','",$_POST['curso']);
$sql_tema = implode("','",$_POST['tema']);
$sql_dificultad = implode("','",$_POST['dificultad']);S

$sql_curso_consulta = $sql_curso != '%'? "curso       IN    ('$sql_tema') AND" : '';
$consulta = <<<SQL
   SELECT enunciado 
   FROM ejercicios 
   WHERE 
      dificultad    IN    ('$sql_curso') AND 
      $sql_curso_consulta 
      tema      IN    ('$sql_dificultad')
SQL;

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Feb 2014 10:28 pm
Hola de nuevo. Muchas gracias por tu colaboración. He probado el código que me propones pero me da el siguiente error:

Parse error: syntax error, unexpected '$sql_curso_consulta' (T_VARIABLE) in C:\xampp\htdocs\exam\index_julio2.php on line 77

es decir, en la línea:

$sql_curso_consulta = $sql_curso != '%'? "curso IN ('$sql_tema') AND" : '';

y aunque he intentado solucionar este error, no he podido hacerlo.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Feb 2014 10:40 pm
Inmediatamente antes de la línea que señalas, hay una "S" espuria al final, después del punto y coma.

Cuidado con copiar y pegar el código de ejemplo sin analizarlo primero.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Feb 2014 10:54 pm
Gracias por tan rápida respuesta. No sé muy bien si quieres decir que quite la "S"
Desde luego al quitarla desaparece el error de sintaxis, pero ahora el código no funciona nada aunque no da error

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Feb 2014 11:22 pm
Ok. De nuevo un error mío, otra vez bailé las variables. Sí que funciona con la variable "curso"

He intentado extender la idea a las tres variables de esta manera:

//Creamos formulario con las listas de seleccion
$sql_curso = implode("','",$_POST['curso']);
$sql_tema = implode("','",$_POST['tema']);
$sql_dificultad = implode("','",$_POST['dificultad']);

$sql_curso_consulta = $sql_curso != '%'? "curso IN ('$sql_curso') AND" : '';
$sql_tema_consulta = $sql_tema != '%'? "tema IN ('$sql_tema') AND" : '';
$sql_dificultad_consulta = $sql_dificultad != '%'? "dificultad IN ('$sql_dificultad') AND" : '';



$consulta = <<<SQL
SELECT enunciado
FROM ejercicios
WHERE

$sql_curso_consulta
$sql_tema_consulta
$sql_dificultad_consulta
SQL;

pero parece ser que esto no se puede hacer. No funciona.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Feb 2014 09:47 pm
El AND del ultimo esta de MAS

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Feb 2014 10:19 pm
Ok, muchas gracias. Ahora sí funciona

Por eulersito

15 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.