Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/05/2012, 13:08
Wainman
 
Fecha de Ingreso: abril-2012
Mensajes: 15
Antigüedad: 12 años
Puntos: 0
tomar datos del formulario con checkbox y enviar a DB

hola todos. Estoy probando hace dias lo de las checkbox.
La idea es: Quiero grabar un proveedor en la db con sus respectivas areas que ofrecen, yo los llamo paquetes. por ejemplo un paquete puede ser bombas centrifugas, otro es tanques plasticos, etc.
Yo creo un formulario con checkbox dinamicos con todas los paquetes que tengo en otra tabla y al dar de alta un proveedor selecciono con los checkbox que paquetes ofrece ese proveedor.
Bueno, todo bien hasta ahi. Lo que no me sale es grabar estos datos a la base de datos.
quiero grabar las id_paquete de cada provedor en una celda separada por comas.
EJ: 1, 3, 4, 123, 242, etc. Para asi mas adelante utilizarlo por si busco algun paquete me diga que proveedores lo ofrecen. Digo todo completo ya que tal vez esto de grabar con las comas no es la mejor forma y me pueden decir una mejor. Igualmente el problema es que no puedo grabar estos datos.

tabla a la que guardo todo es la proveedores

les pongo mi problema completo:

FORMULARIO (funciona bien):
Código:
<html>
<head>
<title>Alta Proveedores</title>
</head>
<body>
<div id="container" style="width: 1024px">

  <p>Alta Proveedor</p>
  <form action="grabarproveedores.php" method="post" style="width: 1000px">

<?php
$dbtable = 'pais';
include("connect.php");
        $consulta="select pais_pais from paises order by pais_pais asc";
        $result=mysql_query($consulta);


?>
    <p>&nbsp; </p>
    <table width="960" border="1" cellspacing="0" cellpadding="0">
      <tr>
        <td width="102">Razon social:</td>
        <td width="490"><input type="text" name="razon" style="width: 450px"  /></td>
      </tr>
      <tr>
        <td>Direccion: </td>
        <td><input type="text" name="direccion" style="width: 450px"/></td>
      </tr>
      <tr>
        <td> Pais:</td>
        <td><select name="pais">
        <?php
	while($fila=mysql_fetch_row($result)){
		echo "<option value='".$fila['0']."'>".$fila['0']."</option>";
	}
	?>
        </select></td>
      </tr>
      <tr>
        <td>Telefono:</td>
        <td><input type="text" name="telefono" style="width: 250px" /></td>
      </tr>
      <tr>
        <td>E-mail:</td>
        <td><input type="text" name="email" style="width: 450px" /></td>
      </tr>
      <tr>
        <td>Contacto:</td>
        <td><input type="text" name="contacto" style="width: 450px" /></td>
      </tr>
          <td>Equipos Mecanicos ofrecidos:</td>
        <td>
      
            
            
         <table width="100%">    
             <?php 
// variable para las columnas de checkbox que quiero poner en el formulario. 
  $numcolumnas = 2;
  // consulto todos los paquetes de compra que estan en mecanica (M) en orden acendente. para crear los checkbox de mecanica
  
  $consulta = mysql_query("SELECT * FROM paquetes where area_paquete ='M' order by desc_paquete");
  $total_resultados = mysql_num_rows($consulta);
   if ($total_resultados>0) {
     echo "<tr><td colspan=\"$numcolumnas\">Hay $total_resultados elementos</td></tr>";
     $i = 1;
     while($fila = mysql_fetch_array($consulta)){
       $resto = ($i % $numcolumnas); 
       if($resto == 1){ /*si es el primer elemento creamos una nueva fila*/ 
         echo "<tr>";
     }
echo "<td><input type='checkbox' name= paquetesm value='" .$fila['id_paquete']."'>" .$fila['desc_paquete']."</td>";
     /*mostramos el valor del campo especificado*/ 
    if($resto == 0){
      /*cerramos la fila*/ 
      echo "</tr>"; 
    }
   $i++; 
 }

 if($resto != 0){
  /*Si en la &uacute;ltima fila sobran columnas, creamos celdas vac&iacute;as*/
   for ($j = 0; $j < ($numcolumnas - $resto); $j++){
     echo "<td></td>"; 
    }
   echo "</tr>";
  } 
}else{ 
  echo "<tr><td>0 elementos encontrados</td></tr> ";
 } ?> 
 
          </table>
          
          </td>
            <tr>
        <td>Instrumentos Ofrecidos:</td>
        <td> <table width="100%">    
             <?php 

  $numcolumnas = 2;
  $consulta = mysql_query("SELECT * FROM paquetes where area_paquete ='I' order by desc_paquete");
  $total_resultados = mysql_num_rows($consulta);
   if ($total_resultados>0) {
     echo "<tr><td colspan=\"$numcolumnas\">Hay $total_resultados elementos</td></tr>";
     $i = 1;
     while($fila = mysql_fetch_array($consulta)){
       $resto = ($i % $numcolumnas); 
       if($resto == 1){ /*si es el primer elemento creamos una nueva fila*/ 
         echo "<tr>";
     }
echo "<td><input type='checkbox' name= paquetesi value='" .$fila['id_paquete']."'>" .$fila['desc_paquete']."</td>";
     /*mostramos el valor del campo especificado*/ 
    if($resto == 0){
      /*cerramos la fila*/ 
      echo "</tr>"; 
    }
   $i++; 
 }

 if($resto != 0){
  /*Si en la &uacute;ltima fila sobran columnas, creamos celdas vac&iacute;as*/
   for ($j = 0; $j < ($numcolumnas - $resto); $j++){
     echo "<td></td>"; 
    }
   echo "</tr>";
  } 
}else{ 
  echo "<tr><td>0 elementos encontrados</td></tr> ";
 } ?> 
 
          </table> </td>
      </tr>
       <tr>
        <td>Tuberias y accesorios</td>
        <td> <table width="100%">    
             <?php 

  $numcolumnas = 2;
  $consulta = mysql_query("SELECT * FROM paquetes where area_paquete ='T' order by desc_paquete");
  $total_resultados = mysql_num_rows($consulta);
   if ($total_resultados>0) {
     echo "<tr><td colspan=\"$numcolumnas\">Hay $total_resultados elementos</td></tr>";
     $i = 1;
     while($fila = mysql_fetch_array($consulta)){
       $resto = ($i % $numcolumnas); 
       if($resto == 1){ /*si es el primer elemento creamos una nueva fila*/ 
         echo "<tr>";
     }
echo "<td><input type='checkbox' name= 'paquetest[]' value='" .$fila['id_paquete']."'>" .$fila['desc_paquete']."</td>";
     /*mostramos el valor del campo especificado*/ 
    if($resto == 0){
      /*cerramos la fila*/ 
      echo "</tr>"; 
    }
   $i++; 
 }

 if($resto != 0){
  /*Si en la &uacute;ltima fila sobran columnas, creamos celdas vac&iacute;as*/
   for ($j = 0; $j < ($numcolumnas - $resto); $j++){
     echo "<td></td>"; 
    }
   echo "</tr>";
  } 
}else{ 
  echo "<tr><td>0 elementos encontrados</td></tr> ";
 } ?> 
 
          </table> </td>
      </tr>
    </table>
      
    <p align="right">
      <input type="Reset" value="Limpiar" />
      <input name="Submit" type="submit" value="Registrar" />
      
      <br />
      <br>
      
    </p>
</form>
    <!-- end #container -->
    
   
   
</div>
</body>
</html>
El PHP de grabado de datos se ve asi, por ahora:

Código PHP:
$conexion=mysql_connect("localhost","testu","testp"
  or die(
"Problemas en la conexion");
mysql_select_db("compras",$conexion) or
  die(
"Problemas en la seleccion de la base de datos");
mysql_query("insert into provedores(razon_prov,direccion_prov,pais_prov,telefono_prov,email_prov,compras_prov) values 
   ('$_REQUEST[razon]','$_REQUEST[direccion]',$_REQUEST[pais],'$_REQUEST[telefono]','$_REQUEST[email]','$_REQUEST[contacto]')"

   
$conexion) or die("Problemas en el select ".mysql_error());
mysql_close($conexion);



// FALTA CODIGO DE ingreso de los id_paquetes al proveedor.


echo "El proveedor Fue dado de alta.";