Foros del Web » Programando para Internet » PHP »

Ayuda con un Select Multiple

Estas en el tema de Ayuda con un Select Multiple en el foro de PHP en Foros del Web. Hola a todos espero me puedan ayudar (lo puse en foro general sorry.) tengo el siguiente problema en un select multipple tengo los datos obtenidos ...
  #1 (permalink)  
Antiguo 04/12/2007, 21:31
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Ayuda con un Select Multiple

Hola a todos
espero me puedan ayudar (lo puse en foro general sorry.)

tengo el siguiente problema
en un select multipple tengo los datos obtenidos de una consulta en sql,
bueno yo qro seleccionar varios de estos datos e ingresarlos en una nueva tabla en la base de datos,
el problema esta en que en el ingreso de la base de datos me guarda la palabra array y no los valores que selecciono.

este es el codigo del select


Cita:
<form action="filtrocreado2.php" target="arriba" method="post" name="form1">
<?php
$result=mysql_query("SELECT DISTINCT administrador
FROM ab ;");

?>
<td><select name="campos[]" size="3" multiple>
<?php
do {
?>
<option value="<? echo $row['administrador'] ;?>"><? echo $row['administrador']; ?></option>
<?php
} while ($row= mysql_fetch_assoc($result));
$rows = mysql_num_rows($result);
if($rows > 0) {
mysql_data_seek($result, 0);
$row= mysql_fetch_assoc($result);
}
?>
</select></td></td><br />
<input type="submit" name="enviar" value="guardar">

y este es el insert


Cita:
<?php
$idPersona = $_POST['idPersona'];
$campos = $_POST['campos'];
$campo2 = $_POST['campo2'];
$campo3 = $_POST['campo3'];

$SQL = "INSERT INTO filtro (
`idPersona , campos , campo2 , campo3 ) VALUES ('$idPersona','$campos' ,'$campo2' ,'$campo3')";
mysql_query($SQL,$link) or die( mysql_error($link) );
  #2 (permalink)  
Antiguo 04/12/2007, 21:46
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Re: Ayuda con un Select Multiple

las opciones seleccionadas van a venir en el arreglo $_POST['campos'] q tambien sera un arreglo con todas las selecciones, ejemplo


$_POST['campos'][0] /*tendra el primer valor seleccionado*/
$_POST['campos'][1] /*el segundo*/
$_POST['campos'][2] /*el tercero*/

en tu ejemplo
$campos = $_POST['campos'][0];
$campo2 = $_POST['campos'][1];
$campo3 = $_POST['campos'][2];
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 04/12/2007, 22:17
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

Graxiasssssssssssss emiliodeg!!!

eso era
te pasate muchas gracias
  #4 (permalink)  
Antiguo 05/12/2007, 14:36
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

Ayuda con un Select Multiple

Hola!

bueno ayer tenia el problema de ingresar lso valores del select multile a la base de datos, eso gracias a emilio lo solucione, el problema ahora es que debo ingresar los datos de seleccion multiples en id diferentes :S

osea si elijo a, b y c

en estos momentos me arroja algo asi
Cita:
id=1, campo1=a, campo2=b, campo3=c
pero tiene q ser asi :s
Cita:
id=1 camp1=a
id=2 campo1=b
id=3 campo1=c

ayuda porfissssssssssss
  #5 (permalink)  
Antiguo 05/12/2007, 16:55
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Re: Ayuda con un Select Multiple

liliancita podrias explicar un poco mas el problema ya q no entiendo lo q queres hacer
__________________
Degiovanni Emilio
developtus.com
  #6 (permalink)  
Antiguo 05/12/2007, 18:00
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

mira emilio, de la manera como yo estaba ingresando los datos se guardan en los campos de la tabla entendiendose un unico id o llave primaria,

ahora mi consulta es:
debo ingresar los datos en la tablas con llaves distintas como nuevos ingresos, es decir cada dato q seleccione (del select multiple) debe ser un nuevo insert into en la tabla, cada dato se almacena por separado ... se entiende un poco mas... suelo ser enredada para explicar, es mas facil con una pizarra al lado xd

ojala me entiendas

saludos
  #7 (permalink)  
Antiguo 05/12/2007, 18:02
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Ayuda con un Select Multiple

Si, si los quieres en filas diferentes tienes que hacer un insert por cada fila.
  #8 (permalink)  
Antiguo 05/12/2007, 19:18
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

sip, algo asi es mi diea
hacer un for de 0 hasta el largo del arreglo del primer select y dentro del for hacer los insert
eso lo hago con un count(arreglo)??
  #9 (permalink)  
Antiguo 05/12/2007, 19:26
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Ayuda con un Select Multiple

Con un foreach recorrerás más fácil el array.
  #10 (permalink)  
Antiguo 05/12/2007, 22:37
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Re: Ayuda con un Select Multiple

supongamos q el arreglo viene en $_POST['datos], entonces
Código PHP:
for($i=0;$i<count($_POST['datos]);$i++){
mysql_query("insert into tabla (id, campo) values ($i, {$_POST['
datos][$i]})");/*si el id es autouncremental no hace falta q lo pngas*/

__________________
Degiovanni Emilio
developtus.com
  #11 (permalink)  
Antiguo 06/12/2007, 06:09
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

hola

se supone que asi qdaria
Código PHP:
for($i=0;$i<count($_POST['campos']);$i++){
mysql_query("insert into filtros (idPersona,nom_filtro,valor_filtro) values ($idPersona,$nom_filtro,{$_POST['campos'][$i]})"); 
pero me dice: Query was empty
  #12 (permalink)  
Antiguo 06/12/2007, 06:15
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Ayuda con un Select Multiple

Comprueba que te llegan bien los datos:

Código PHP:
print_r($_POST['campos']); 
Y así más fácil:

Código PHP:
foreach ($_POST['campos'] as $campo)
{
    
mysql_query("INSERT INTO...".$campo."");

  #13 (permalink)  
Antiguo 06/12/2007, 06:29
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

nor esulta :s

este es el codigo

Código PHP:
$result=mysql_query("SELECT DISTINCT  administrador
                             FROM ab ;");
        
        ?>
        <tr>
        <td><input type="text" size="2"name ="idPersona"/> </td>
        <td><input type="text" size="8"name ="nom_filtro"/> </td>            
        <td><select name="campo_zona[]" size="3" multiple>
        <?php
        
        
do { 
        
?>
        <option value="<? echo $row['administrador'] ;?>"><? echo $row['administrador']; ?></option>
                    <?php
        
} while ($rowmysql_fetch_assoc($result));
        
$rows mysql_num_rows($result);
        if(
$rows 0) {
        
mysql_data_seek($result0);
        
$rowmysql_fetch_assoc($result);
        for(
$i=0;$i<count($_POST['campo_zona']);$i++){
$SQL="insert into filtros (idPersona,nom_filtro,valor_filtro) values ($idPersona,$nom_filtro,{$_POST['campo_zona'][$i]})";
}
porfisssss!!!


salu2
  #14 (permalink)  
Antiguo 06/12/2007, 06:35
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Ayuda con un Select Multiple

Qué te sale con el print_r, te llegan bien los datos??
Cómo es que procesas los datos que llegan en el mismo sitio que muestras el formulario??
  #15 (permalink)  
Antiguo 06/12/2007, 06:56
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

no mira si lo hago desde formularios distintos pero es ahi donde me dice Query was empty


archivo filtro.php
Código PHP:
<form action="filtrocreado.php" target="arriba" method="post" name="form1">
        <?php
        $result
=mysql_query("SELECT DISTINCT  administrador
                             FROM ab ;"
);
        
        
?>
        <tr>
        <td><input type="text" size="2"name ="idPersona"/> </td>
        <td><input type="text" size="8"name ="nom_filtro"/> </td>            
        <td><select name="campo_zona[]" size="3" multiple>
        <?php
        
        
do { 
        
?>
        <option value="<? echo $row['administrador'] ;?>"><? echo $row['administrador']; ?></option>
                    <?php
        
} while ($rowmysql_fetch_assoc($result));
        
$rows mysql_num_rows($result);
        if(
$rows 0) {
        
mysql_data_seek($result0);
        
$rowmysql_fetch_assoc($result);
        } 

        }
        
?>
        </select></td></td><br />

archivo filtrocreado.php

Código PHP:
<?php include("conectar.php");
    
$link=conectar();

for(
$i=0;$i<count($_POST['campo_zona']);$i++){
$SQL="insert into filtros (idPersona,nom_filtro,valor_filtro) values ($idPersona,$nom_filtro,{$_POST['campo_zona'][$i]})";

mysql_query($SQL,$link) or die( mysql_error($link) );    
echo 
"<p>Filtro Creado</p>";
?>
  #16 (permalink)  
Antiguo 06/12/2007, 07:08
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

ya probe con el
Código PHP:
print_r($_POST['campos']); 
y si llegan bien los valores

pero no inserta en la base de datos
  #17 (permalink)  
Antiguo 06/12/2007, 07:32
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Ayuda con un Select Multiple

Si no inserta nada mostrará algún error php ni mysql??
En el último código que has puesto falta la llave de cerrar el for.
  #18 (permalink)  
Antiguo 06/12/2007, 07:55
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

ya le agregue el mysql_error y esto es lo que pasa

Cita:
Array ( [0] => EE ) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',EE)' at line 1
y el codigo sigue siendo :
Código PHP:
<?php include("conectar.php");
    
$link=conectar();
print_r($_POST['campo_zona']);  
 

for(
$i=0;$i<count($_POST['campo_zona']);$i++){
$SQL="insert into filtros (idPersona,nom_filtro,valor_filtro) values ($idPersona,$nom_filtro,{$_POST['campo_zona'][$i]})";
}

                
mysql_query($SQL,$link) or die( mysql_error($link) );    
echo 
"<p>Filtro Creado</p>";
?>
  #19 (permalink)  
Antiguo 06/12/2007, 08:01
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Ayuda con un Select Multiple

Mete el mysql_query dentro del for y pon comillas a los valores en el mysql:

Código PHP:
$sql "INSERT INTO... VALUES('$id', '$nombre'...)"
  #20 (permalink)  
Antiguo 06/12/2007, 08:17
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

ya yo creo q esto no qre simplemente porque mira lo hize asi ahora

Código PHP:
<?php include("conectar.php");
    
$link=conectar();
print_r($_POST['campo_zona']);  
 

for(
$i=0;$i<count($_POST['campo_zona']);$i++){

mysql_query("insert into filtros ('idPersona','nom_filtro','valor_filtro') values ($idPersona,$nom_filtro,$i,{$_POST['campo_zona'][$i]})");
}
y me devuleve esto
Cita:
Array ( [0] => EE )
Filtro Creado

no qre :(


graxxx q todo esto por estar ayudandome
  #21 (permalink)  
Antiguo 06/12/2007, 12:03
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Ayuda con un Select Multiple

Si así no se te ha creado es que falla la consulta, prueba a mostrar el error:

Código PHP:
mysql_query("...") or die(mysql_error()); 
Pon también comillas en los valores que introduces.
  #22 (permalink)  
Antiguo 06/12/2007, 13:43
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

yap este es el codigo

Código PHP:
for($i=0;$i<count($_POST['campo_zona']);$i++){
 
$result=("insert into filtros ('idPersona','nom_filtro','valor_filtro') values ('$idPersona','$nom_filtro','{$_POST['campo_zona'][$i]}')");
mysql_query($SQL,$link) or die( mysql_error($link) );

y este es el error
Cita:
Array ( [0] => ZN [1] => UU [2] => ZS ) Query was empty
:(
  #23 (permalink)  
Antiguo 06/12/2007, 13:58
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: Ayuda con un Select Multiple

No estas enviando ningun Query a tu base de datos, si te fijas asignas a $result un string con el query, pero a la funcion mysql_query no le pasas este valor, si no le pasas un valor de $SQL el cual no existe.

Saludos.
  #24 (permalink)  
Antiguo 06/12/2007, 14:03
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple

siii GAto eso era en el mysql_query($result,$link) tenia puesto antes sql y era result


vale te pasaste

muchas graciassss :)

son lo maximo
es genial trabajar asi

graxias por su ayuda!!!
  #25 (permalink)  
Antiguo 06/12/2007, 15:16
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda con un Select Multiple (Modificar)

Hola...

que pasa ahoar se preguntaran

bueno luego de lo que me ha costado y gracias a ud pude ingresar en al base de datos, ahora debo modificar

lo que yo se es que para modificar se hace algo asi
Código PHP:
    if ($tmp=$_POST['nom_filtro']){
     
     
$result=("UPDATE filtro SET nom_filtro = '".$tmp."' WHERE  id_filtros = $idfiltros;");
         
mysql_query($result,$link) or die( mysql_error($link) ); 
cierto?

y luego de hacer eso puedo ingresar los new datos de la misma forma que los ingrese, es decir, con el select multiple

como modifico?

porfiiiii


es lo ultimo q me falta osea es inserta, eliminar y modificar, los dos primeros ya tan ahora me falta su gran ayuda paar poder modificar plisssssssssss
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 09:45.