Foros del Web » Programando para Internet » PHP »

problema con multiple ingreso a traves de un form

Estas en el tema de problema con multiple ingreso a traves de un form en el foro de PHP en Foros del Web. Hola tengo el siguiente problema, yo ingreso datos a traves de select para realizar una busqueda, el problema se presenta en que dentro de la ...
  #1 (permalink)  
Antiguo 19/12/2007, 21:02
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta problema con multiple ingreso a traves de un form

Hola

tengo el siguiente problema, yo ingreso datos a traves de select para realizar una busqueda, el problema se presenta en que dentro de la priemra tabla contengo 5 controles de bsuqueda y debo llenar todos los controles de busqueda es decir si tengo 5 los 5 deben ser llenado para q funcione, no solo 1 o algunos que es el ideal

alguien sabe porque sucede esto?

otra cosa los controles que se repiten 5 o mas veces son los de la tabla 1
los de la tabla 2 son fijos, solo dos y por el form lo tengo fuera de las tablas

espero me entiendan la explicacion


Código PHP:
<form action="buscar.php" ame="form" method="post">

<
table >

<
tr>
<
td></td>
<
td><select name="idHito">
<
option value="0">uno</option>  
<
option value="1">dos</option>     


<
td><select name="table1">
<
option value="planificar">Planificar</option>
<
option value="registrar">Registrar</option
<
option value="programar">Programar</option
</
select></td>


<
td><select name="tipo">
<
option value="fecha">Fecha Registro</option
<
option value="fecha_ingreso">Fecha Ingreso</option
</
select></td>

<
td><select name="idHito2">
<
option value="0">uno</option>  
<
option value="1">dos</option>     


<
td><select name="table2">
<
option value="planificar">Planificar</option>
<
option value="registrar">Registrar</option
<
option value="programar">Programar</option
</
select></td>


<
td><select name="tipo2">
<
option value="fecha">Fecha Registro</option
<
option value="fecha_ingreso">Fecha Ingreso</option
</
select></td>

<!--
y asi por 5 veces-->

</
tr>
</
table>

</
table>
<
p>&nbsp</p>


<
table>

<
tr>
<
td><select name="idHito1[]" size="10" multiple>
<
option value="1">Planificar             </option>     
<
option value="2">Registrar                 </option>     
   
</
select></td>

<
td><select name="idHito2[]" size="10" multiple>
<
option value="1">Programar             </option>     
<
option value="2">Solicitar                 </option>     
</
select></td>

            
/
tr>
</
table>


<
input type="submit" name="enviar" value="Buscar">
</
form
ayuda porfissss

saludos
  #2 (permalink)  
Antiguo 19/12/2007, 22:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: problema con multiple ingreso a traves de un form

Publica el código de buscar.php, ahi es seguramente donde tienes tu problema.

Saludos.
  #3 (permalink)  
Antiguo 20/12/2007, 05:33
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: problema con multiple ingreso a traves de un form

Hola

este es el codigo buscar.php

Código PHP:
<?php session_start();
  include (
"conectar.php");  
  
$link conectar();  
    if (isset (
$_POST["idPersona"])){  
  
$idPersona$_POST["idPersona"];  
  
$_SESSION["idPersona"] = $idPersona;  
    

$_SESSION["id"]=$idPersona;
?>
html ...

<body>


if ($_POST['tipo']==fecha){   
    
    if (($tmp1=$_POST['idHito'])&&($tmp2=$_POST['fecha1'])&&($tmp4=$_POST['idHito1'])&&($tmp3=$_POST['fecha2'])&&($table1=$_POST['table1']) &&($table2=$_POST['table2'])){
    
        $SQL="SELECT AB.cod_sitio,AB.nombre, $table1.fecha
                            FROM $table1, AB
                            WHERE $table1.fecha
                            BETWEEN '".$tmp2."'
                            AND '".$tmp3."'
                            AND ab.idab = $table1.idab
                            AND $table1.idhito = '".$tmp1."'
                            UNION (
                            SELECT AB.cod_sitio,AB.nombre, $table2.fecha
                            FROM $table2,  AB
                            WHERE ab.idab = $table2.idab
                            AND $table2.idhito = '".$tmp4."');";
        $result=mysql_query($SQL,$link);
                            
                                    
    
    } elseif (($tmp1=$_POST['idHito'])&&($tmp2=$_POST['fecha1'])&&($tmp4=$_POST['idHito1'])&&($table1=$_POST['table1']) &&($table2=$_POST['table2'])){    
        
        $SQL="SELECT AB.cod_sitio,AB.nombre, $table1.fecha
                            FROM $table1, AB
                            WHERE $table1.fecha>='".$tmp2."'
                            AND ab.idab = $table1.idab
                            AND $table1.idhito = '".$tmp1."'
                            UNION (
                            
                            SELECT AB.cod_sitio,AB.nombre, $table2.fecha
                            FROM $table2,  AB
                            WHERE ab.idab = $table2.idab
                            AND $table2.idhito = '".$tmp4."');";
        $result=mysql_query($SQL,$link);
                                    
     } elseif (($tmp1=$_POST['idHito'])&&($tmp3=$_POST['fecha2'])&&($tmp4=$_POST['idHito1'])&&($table1=$_POST['table1']) &&($table2=$_POST['table2'])){
      
        $SQL="SELECT AB.cod_sitio,AB.nombre, $table1.fecha
                            FROM $table1, AB
                            WHERE $table1.fecha<='".$tmp3."'
                            AND ab.idab = $table1.idab
                            AND $table1.idhito = '".$tmp1."'
                            UNION (
                            
                            SELECT AB.cod_sitio,AB.nombre, $table2.fecha
                            FROM $table2, AB
                            WHERE ab.idab = $table2.idab
                            AND $table2.idhito = '".$tmp4."');";
        $result=mysql_query($SQL,$link);
    }else echo "no exite informacion!";
                                 
    while ($row=mysql_fetch_array($result)){
     
    ?>
    <tr>
    <td bgcolor="#82cafa"><?echo $row['cod_sitio']?></td>
    <td bgcolor="#82cafa"><?echo $row['nombre']?></td>
    <? }?>
    </tr>    
 <? 
 
 
} else { 
  
      if ((
$tmp1=$_POST['idHito'])&&($tmp2=$_POST['fecha1'])&&($tmp4=$_POST['idHito1'])&&($tmp3=$_POST['fecha2'])&&($table1=$_POST['table1']) &&($table2=$_POST['table2'])){
    
        
$SQL="SELECT AB.cod_sitio,AB.nombre, $table1.fecha
                            FROM $table1, AB
                            WHERE $table1.fecha_ingreso
                            BETWEEN '"
.$tmp2."%'
                            AND '"
.$tmp3."%'
                            AND ab.idab = $table1.idab
                            AND $table1.idhito = '"
.$tmp1."'
                            UNION (
                            
                            SELECT AB.cod_sitio,AB.nombre, $table2.fecha
                            FROM $table2, AB
                            WHERE ab.idab = $table2.idab
                            AND $table2.idhito = '"
.$tmp4."');";
       
$result=mysql_query($SQL,$link);

    } elseif ((
$tmp1=$_POST['idHito'])&&($tmp2=$_POST['fecha1'])&&($tmp4=$_POST['idHito1'])&&($table1=$_POST['table1']) &&($table2=$_POST['table2'])){    
        
        
$SQL="SELECT AB.cod_sitio,AB.nombre, $table1.fecha
                            FROM $table1, AB
                            WHERE $table1.fecha_ingreso LIKE '"
.$tmp2."%'
                            AND ab.idab = $table1.idab
                            AND $table1.idhito = '"
.$tmp1."'
                            UNION (
                            
                            SELECT AB.cod_sitio,AB.nombre, $table2.fecha
                            FROM $table2, AB
                            WHERE ab.idab = $table2.idab
                            AND $table2.idhito = '"
.$tmp4."');";
        
$result=mysql_query($SQL,$link);
                                
 } elseif ((
$tmp1=$_POST['idHito'])&&($tmp3=$_POST['fecha2'])&&($tmp4=$_POST['idHito1'])&&($table1=$_POST['table1']) &&($table2=$_POST['table2'])){
      
        
$SQL="SELECT AB.cod_sitio,AB.nombre, $table1.fecha
                            FROM $table1, AB
                            WHERE $table1.fecha_ingreso LIKE '"
.$tmp3."%'
                            AND ab.idab = $table1.idab
                            AND $table1.idhito = '"
.$tmp1."'
                            UNION (
                            
                            SELECT AB.cod_sitio,AB.nombre, $table2.fecha_ingreso
                            FROM $table2, AB
                            WHERE ab.idab = $table2.idab
                            AND $table2.idhito = '"
.$tmp4."');";
        
$result=mysql_query($SQL,$link);
 
 
 
}
                             
while (
$row=mysql_fetch_array($result)){
 
?>
<tr>
<td bgcolor="#82cafa"><?echo $row['cod_sitio']?></td>
<td bgcolor="#82cafa"><?echo $row['nombre']?></td>
<td bgcolor="#82cafa"><?echo $row['fecha']?></td>
</tr>



<? }
}
?>
saludos
  #4 (permalink)  
Antiguo 20/12/2007, 09:09
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: problema con multiple ingreso a traves de un form

hola

anteriormente les agregue el codico de buscar

alguien sabe a q
se debe que me obligue a ingresar en todos lso controles y no solo uno??

porfiss
  #5 (permalink)  
Antiguo 20/12/2007, 09:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: problema con multiple ingreso a traves de un form

El problema es tu código, ya que tu en tu if() estas comprobando todos los campos, no solo uno, y por eso es que te obliga a tenerlos todos llenos para que funcione.

Saludos.
  #6 (permalink)  
Antiguo 20/12/2007, 09:13
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: problema con multiple ingreso a traves de un form

jeje me podrias explicar por favor el problema es que no me queda clara la explicación que das al principio.

Saludillos.
  #7 (permalink)  
Antiguo 20/12/2007, 09:16
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Mensaje Re: problema con multiple ingreso a traves de un form

Deberias ir armando el SQL paso a paso.. osea si esta llen un campo ISSET($campo)
creas un variable $sql (por asi decirlo) y ahi vas agregando los campos..


if(isset(campo1))
{
$sql=$sql." AND campo1='$campo1' "
}

if(isset(campo2))
{
$sql=$sql." AND campo1='$campo1' "
}

algo asi.. siempre verificando que campos estan llenos para colocarlos en el SQL..!
  #8 (permalink)  
Antiguo 20/12/2007, 10:20
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: problema con multiple ingreso a traves de un form

hola

entonces la solucion seria hacer if(isset(campo))

mi duda ahora es si yo tengo if consicionales el if (isset(campo) lo hago dentro de los if

ejemplo dentro del if: if ($_POST['tipo']==fecha){


??
  #9 (permalink)  
Antiguo 20/12/2007, 10:30
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Mensaje Re: problema con multiple ingreso a traves de un form

si quieres hacer condiciones dobles puedes usar && o || para hacer condiciones


if(($_POST['tipo']==fecha) && (isset(campo)))
{
si la variable tipo==fehca y la variable campo tiene datos haga esto
}


if(($_POST['tipo']==fecha) || (isset(campo)))
{
si la variable tipo==fehca o la variable campo tiene datos haga esto o si ambas se cumplen o si solo una se cumple se haga esto..
}

no se si me entiendes ahora..?

Espero que si..

Salu2..!
  #10 (permalink)  
Antiguo 20/12/2007, 11:48
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: problema con multiple ingreso a traves de un form

si si te entiendo :)

ya mira la ultima consulta duda, como indico el campo en el otro archivo, es el primer codigo que`publique
ese el en el cual lleno los camspo del control


saludos

y grax
  #11 (permalink)  
Antiguo 20/12/2007, 13:49
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
De acuerdo Re: problema con multiple ingreso a traves de un form

if(isset($_POST['idHito']))
{
si esta lleno idHito;
}

if(isset($_POST['table1']))
{
haz esto
}

if(isset($_POST['tipo']))
{

}

Asi confirmas si estan llenos y las vas agregando a tu sql.. creo que eso necesitas no??
Cualquier cosa me avisas..!

Espero te sirva..!

Salu2..!
  #12 (permalink)  
Antiguo 21/12/2007, 05:49
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: problema con multiple ingreso a traves de un form

hola


es algo asi lo que necesito,
pero el codigo funciona asi exiten dos condiciones if ($_POST['tipo']==fecha) y if ($_POST['tipo']==fecha_ingreso) y dentro de estas condiciones van las otras condiciones de como idHito, table1, fecha1 etc.
Entonces por eso no se como hacer tu idea y que me tome uno mas ingreso


es como esta la grafica del programa

Cita:
Hito Actividad Fecha_Inicio Fecha_Termino Tipo
1) ----- ------------ --------------- ------------------ ------
2) ----- ------------ --------------- ------------------ ------
3) ----- ------------ --------------- ------------------ ------
4) ----- ------------ --------------- ------------------ ------
5) ----- ------------ --------------- ------------------ ------


Tabla 2

Boton Aceptar
espero que se entienda

bueno algo asi es la grafica o entorno de la pagina

y lo que yo quiero es poder ingresar datos en el campo1) o 2) etc o todos , + el datos de la tabla 2 y click en aceptar y deberia insertar, lo que hace en estos momentos es que deben estar los 5 controles llenos si no no funciona :(

eso es

saludossss
  #13 (permalink)  
Antiguo 21/12/2007, 07:09
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Pregunta Re: problema con multiple ingreso a traves de un form

Pos la verdad no te entiendo.. ya que estas revisando 2 fechas..? para que? explicame mejor que es lo que deseas hacer ya no te capto..??!!?!? si me pudieras explicar de una mejor manera con gusto te puedo ayudar..
  #14 (permalink)  
Antiguo 21/12/2007, 08:46
Avatar de liliancita  
Fecha de Ingreso: diciembre-2007
Mensajes: 189
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: problema con multiple ingreso a traves de un form

hola
grax por tu ayuda

mira la busqueda consiste en lo siguiente, yo elijo un hito y una actividad y elijo un rango de fechas es decir fecha de inicio y termino y el tipo de esta fecha la cual pude ser fecha de ingreso (que es la q registra el sistema) o fecha (que es uan fecha ingresada por el usuario), tambien si quiero no necesito dar un rango de fechaa buscar, solo buscar por fecha de inicio o fecha de termino, y posterior elijo una actividad dos que es la otra tabla y asi busco

eso es lo q tiene que hacer, permitiendome realizar la busqueda elijendo varios hitos, actividades, fecha, o solamente una

lo mas importante es el tipo de fecha por la que estoy buscando,
independiente si es un beetwen (fecha inicio-termino)o una fecha unica(inicio o termino)

espero haya qdado mas claro
si no me dices y sigo intentando aclarar
  #15 (permalink)  
Antiguo 21/12/2007, 09:20
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: problema con multiple ingreso a traves de un form

Si ahora si mira debes hacerlo armando tu sql..

entonces venis y primero revisas si la fecha de termino tiene datos ya que siempre va a haber una fecha la del sistema no necesitas revisarla entonces revisas la fecha de termino asi

if(isset($_POST[fechatermino]))

si no existe entonces quiere decir que tu busqueda la haras por una sola fecha entonces ya se te acorta el sql no ocupas el between luego venis y revisas que campos tienen datos y asi los vas incluyendo en tu sql que al final te quedara solamente con los campos por los que vas a buscar..

Debes armar tu sql con los datos ingresados e irlos colocando en tu sql verificando cuales tiene datos y cuales no.. para eso sirve isset para verificar si tienen datos si no devuelve falso..

Espero me entiendas..
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:15.