Foros del Web » Programando para Internet » PHP »

Problema con una variable (no es tan sencillo como parece)

Estas en el tema de Problema con una variable (no es tan sencillo como parece) en el foro de PHP en Foros del Web. Hola Pues ya ando medio por un problemita q tengo con una variable, o ya no se si es la variable. Resulta que tengo en ...
  #1 (permalink)  
Antiguo 29/08/2008, 10:04
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 18 años, 5 meses
Puntos: 2
Pregunta Problema con una variable (no es tan sencillo como parece)

Hola

Pues ya ando medio por un problemita q tengo con una variable, o ya no se si es la variable. Resulta que tengo en una pagina (Agregar.php) un menu (de echo son 4 pero ninguno me funciona) y paso la variable a traves de un boton a la pagina Agregar-All.php.

Les pongo el codigo de Agregar.php
Código:
       <table width="541" height="246">
    <tr valign="baseline">
      <td colspan="2" nowrap><p>Localizacion de su inmueble</p>
         <table>
         <tr valign="baseline">
                <td align="right" nowrap="nowrap" class="Estilo3"><div align="left">Estado:</div></td>
                <td><div id="demoIzq"><?php generaPaises(); ?></div></td>
                </tr> 			 
              <tr valign="baseline">
                <td align="right" nowrap="nowrap" class="Estilo3"><div align="left">Municipio:</div></td>
                <td><div id="demoIzq" >
					<select disabled="disabled" name="estados" id="estados">
						<option value="0">Selecciona opcion...</option>
					</select>
				</div></td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap="nowrap" class="Estilo3"><div align="left">Colonia:</div></td>
                <td>      <div id="demoIzq">
					<select name="colonias" disabled="disabled" id="colonias">
						<option value="0">Selecciona opcion...</option>
					</select>
				</div></td>
              </tr>
             </table>        </td>
    </tr>
    <tr valign="baseline">
      <td colspan="2" nowrap><div align="left" class="Estilo2">Agrega tu anuncio</div></td>
    </tr>
    <tr valign="baseline">
      <td width="114" height="24" nowrap><div align="left"><span class="Estilo3">Propiedad</span></div>      </td>
      <td width="415" nowrap>
        <div align="left">
          <p>
            <select name="idpropiedad" id="idpropiedad">
              <option value="">Elija...</option>
              <?php  do { ?>
              <option value="<?php  echo $propiedad['idpropiedad']?>"><?php echo $propiedad['propiedad']?> </option>
              <?php } while ($propiedad =mysql_fetch_assoc($prop))?>
            </select>
          </p>
          </div></td>
    </tr>
    <tr valign="baseline">
      <td height="26" nowrap>&nbsp;</td>
      <td nowrap>
        <div align="right"><input type="submit" name="button" id="button" value="Enviar" /></div></td>
    </tr>
   </table>     </form>
Y en Agregar-All.php recibo la variable, la imprimo para verificar q si la estoy recibiendo
Código PHP:
$propsel $_POST['idpropiedad'];
echo 
$propsel
Pues esta variable la quiero insertar en una tabla, pero aqui viene mi problema por que no la inserta, se queda el campo en blanco. Mi codigo para insertar es:

Código PHP:
$propsel $_POST['idpropiedad'];
echo 
$propsel;
$edo $_POST['paises'];
$mun $_POST['estados'];
$col $_POST['colonias'];

$idper $_SESSION['idper'];
$fecha date("Y-m-d");


if ((isset(
$_POST["MM_insert2"])) || (isset($_POST["MM_insert3"])) || (isset($_POST["MM_insert1"])) ) {

    
//particular
if ((isset($_POST["MM_insert2"])) && ($_POST["MM_insert2"] == "form2")) {

      
$insertSQL sprintf("INSERT INTO particular (titulo, idtransaccion, idpropiedad, idcuartos, idbanos, amplitud, piscina, seguridad, portero, muebles, cochera, jardin, estacionamiento, descripcion, idedo, idmun, idcol, idimagen, precio, idpersona, fecha_publicacion) VALUES (%s, %s, '$propsel', %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, '$edo', '$mun', '$col', %s, %s, '$idper', '$fecha')",
                           
GetSQLValueString($_POST['titulo'], "text"),
                           
GetSQLValueString($_POST['idtransaccion'], "text"),
                           
GetSQLValueString($_POST['idcuartos'], "text"),
                           
GetSQLValueString($_POST['idbanos'], "text"),
                           
GetSQLValueString($_POST['amplitud'], "text"),
                           
GetSQLValueString(isset($_POST['piscina']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['seguridad']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['portero']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['muebles']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['cochera']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['jardin']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['estacionamiento']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString($_POST['descripcion'], "text"),
                           
GetSQLValueString($_POST['idimagen'], "text"),
                           
GetSQLValueString($_POST['precio'], "text"));          
          
mysql_select_db($database_inmo$inmo);
          
$Result1 mysql_query($insertSQL$inmo) or die(mysql_error());                       
     } elseif ((isset(
$_POST["MM_insert3"])) && ($_POST["MM_insert3"] == "form3")) {

      
$insertSQL sprintf("INSERT INTO edificio (titulo, idtransaccion, idpropiedad, idpersona, fecha_publicacion, idedo, idmun, idcol) VALUES (%s, %s, '$propsel',  '$idper', '$fecha', '$edo', '$mun', '$col')",
                           
GetSQLValueString($_POST['titulo'], "text"),
                           
GetSQLValueString($_POST['idtransaccion'], "text"),
                           
GetSQLValueString($_POST['idimagen'], "text"),
                           
GetSQLValueString($_POST['idpersona'], "text"),
                           
GetSQLValueString($_POST['fecha_publicacion'], "date"));
                        
      
mysql_select_db($database_inmo$inmo);
      
$Result1 mysql_query($insertSQL$inmo) or die(mysql_error());

    } else {

 
$insertSQL sprintf("INSERT INTO comercial (titulo, idtransaccion, idpropiedad, idimagen, idpersona, fecha_publicacion, idedo, idmun, idcol) VALUES (%s, %s, ‘$propsel’, %s, ‘$idper’, $fecha, %s, %s, %s)",
                           
GetSQLValueString($_POST['titulo'], "text"),
                           
GetSQLValueString($_POST['idtransaccion'], "text"),
                           
GetSQLValueString($_POST['idimagen'], "text"),
                                              
GetSQLValueString($_POST['paises'], "text"),
                           
GetSQLValueString($_POST['estados'], "text"),
                           
GetSQLValueString($_POST['colonias'], "text"));
    
      
mysql_select_db($database_inmo$inmo);
      
$Result1 mysql_query($insertSQL$inmo) or die(mysql_error());
          }
    
      
$insertGoTo "Index.php";
      if (isset(
$_SERVER['QUERY_STRING'])) {
        
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
        
$insertGoTo .= $_SERVER['QUERY_STRING'];
    }
      
header(sprintf("Location: %s"$insertGoTo));
  } 
Como pueden ver dependiendo de la variable que recibo es como muestra un formulario e inserta en determinada tabla. He realizado varias pruebas como asignarle a mi variable de $propsel un valor determinado Ej. $propsel = 2; y ahi si lo inserta

La duda q tengo es ¿por q no inserta la variable?
De echo estoy recibiendo una variable de sesion y esa si la inserta al igual que una variable de fecha q estoy declarando.

Espero darme a entender y de antemano agradezco sus comentarios y cualquier idea o sugerencia q me puedan dar.

Última edición por Yedi; 29/08/2008 a las 10:14 Razón: Quiero agregar la notificacion
  #2 (permalink)  
Antiguo 29/08/2008, 13:50
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 18 años, 5 meses
Puntos: 2
Respuesta: Problema con una variable (no es tan sencillo como parece)

Hola, nadie tiene alguna idea?? ayuda please
  #3 (permalink)  
Antiguo 29/08/2008, 14:33
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 20 años, 2 meses
Puntos: 71
Respuesta: Problema con una variable (no es tan sencillo como parece)

si pones esto asi:
Código HTML:
...
<?php  do { ?>
              <option value="<?php  echo $propiedad['idpropiedad']?>"><?php echo $propiedad['propiedad']?> </option>
              <?php } while ($propiedad =mysql_fetch_assoc($prop))?>
...
Te escribira al principio datos vacios, ya que, primero hace lo de dentro del do, y luego comprueba si se cumple la condicion en el while, cambia esas lineas por estas:
Código HTML:
...
<?php  while ($propiedad =mysql_fetch_assoc($prop)){ ?>
              <option value="<?php  echo $propiedad['idpropiedad']?>"><?php echo $propiedad['propiedad']?> </option>
              <?php } ?>
...
pruebalo, y nos cuentas.
  #4 (permalink)  
Antiguo 29/08/2008, 15:22
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 18 años, 5 meses
Puntos: 2
Respuesta: Problema con una variable (no es tan sencillo como parece)

Gracias Doobie por tu sugerencia, lo probe pero me sigue haciendo lo mismo: pasa la variable a la pagina pero no la inserta en la bd
  #5 (permalink)  
Antiguo 29/08/2008, 15:37
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 8 meses
Puntos: 10
Respuesta: Problema con una variable (no es tan sencillo como parece)

Tu problema son los tipos de datos que le estás enviando a la consulta, supongo que $propsel debe de ser entero

Código PHP:
$propsel $_POST['idpropiedad'];
echo 
$propsel;
$edo $_POST['paises'];
$mun $_POST['estados'];
$col $_POST['colonias'];

$idper $_SESSION['idper'];
$fecha date("Y-m-d");


if ((isset(
$_POST["MM_insert2"])) || (isset($_POST["MM_insert3"])) || (isset($_POST["MM_insert1"])) ) {

    
//particular
if ((isset($_POST["MM_insert2"])) && ($_POST["MM_insert2"] == "form2")) {

      
$insertSQL sprintf("INSERT INTO particular (titulo, idtransaccion, idpropiedad, idcuartos, idbanos, amplitud, piscina, seguridad, portero, muebles, cochera, jardin, estacionamiento, descripcion, idedo, idmun, idcol, idimagen, precio, idpersona, fecha_publicacion) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, '$edo', '$mun', '$col', %s, %s, '$idper', '$fecha')",
                           
GetSQLValueString($_POST['titulo'], "text"),
                           
GetSQLValueString($_POST['idtransaccion'], "text"),
                           
GetSQLValueString($propsel"int"),
                           
GetSQLValueString($_POST['idcuartos'], "text"),
                           
GetSQLValueString($_POST['idbanos'], "text"),
                           
GetSQLValueString($_POST['amplitud'], "text"),
                           
GetSQLValueString(isset($_POST['piscina']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['seguridad']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['portero']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['muebles']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['cochera']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['jardin']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString(isset($_POST['estacionamiento']) ? "true" """defined","'Y'","'N'"),
                           
GetSQLValueString($_POST['descripcion'], "text"),
                           
GetSQLValueString($_POST['idimagen'], "text"),
                           
GetSQLValueString($_POST['precio'], "text"));          
          
mysql_select_db($database_inmo$inmo);
          
$Result1 mysql_query($insertSQL$inmo) or die(mysql_error());                       
     } elseif ((isset(
$_POST["MM_insert3"])) && ($_POST["MM_insert3"] == "form3")) {

      
$insertSQL sprintf("INSERT INTO edificio (titulo, idtransaccion, idpropiedad, idpersona, fecha_publicacion, idedo, idmun, idcol) VALUES (%s, %s, %s, '$idper', '$fecha', '$edo', '$mun', '$col')",
                           
GetSQLValueString($_POST['titulo'], "text"),
                           
GetSQLValueString($_POST['idtransaccion'], "text"),
                           
GetSQLValueString($propsel"int"),
                           
GetSQLValueString($_POST['idimagen'], "text"),
                           
GetSQLValueString($_POST['idpersona'], "text"),
                           
GetSQLValueString($_POST['fecha_publicacion'], "date"));
                        
      
mysql_select_db($database_inmo$inmo);
      
$Result1 mysql_query($insertSQL$inmo) or die(mysql_error());

    } else {

 
$insertSQL sprintf("INSERT INTO comercial (titulo, idtransaccion, idpropiedad, idimagen, idpersona, fecha_publicacion, idedo, idmun, idcol) VALUES (%s, %s, %s, %s, ‘$idper’, $fecha, %s, %s, %s)",
                           
GetSQLValueString($_POST['titulo'], "text"),
                           
GetSQLValueString($_POST['idtransaccion'], "text"),
                           
GetSQLValueString($propsel"int"),
                           
GetSQLValueString($_POST['idimagen'], "text"),
                           
GetSQLValueString($_POST['paises'], "text"),
                           
GetSQLValueString($_POST['estados'], "text"),
                           
GetSQLValueString($_POST['colonias'], "text"));
    
      
mysql_select_db($database_inmo$inmo);
      
$Result1 mysql_query($insertSQL$inmo) or die(mysql_error());
          }
    
      
$insertGoTo "Index.php";
      if (isset(
$_SERVER['QUERY_STRING'])) {
        
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
        
$insertGoTo .= $_SERVER['QUERY_STRING'];
    }
      
header(sprintf("Location: %s"$insertGoTo));
  } 
Por cierto si ya estás utilizando sprintf deberías de utilizarlo para las demás variables que le estás enviando y no imprimirlas directo en la cadena.
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #6 (permalink)  
Antiguo 29/08/2008, 15:51
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: Problema con una variable (no es tan sencillo como parece)

el error es simple,
en agregar.php
Código PHP:
 <select name="idpropiedad" id="idpropiedad">
              <option value="">Elija...</option>
              <?php  do { ?>
              <option value="<?php  echo $propiedad['idpropiedad']?>"><?php echo $propiedad['propiedad']?> </option>
              <?php } while ($propiedad =mysql_fetch_assoc($prop))?>
            </select>
la variable: $propiedad['idpropiedad'], no esta asignada por lo tanto lo toma como nulo.

saludos, primero define la variable. luego me comentas
  #7 (permalink)  
Antiguo 29/08/2008, 15:55
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 18 años, 5 meses
Puntos: 2
Respuesta: Problema con una variable (no es tan sencillo como parece)

TolerantX ya le cambie el dato y aun asi no lo inserta.. Y chwc me dices q la variable no esta asignada, podrias explicarme mas a detalle por q no te entiendo muy bien :(
  #8 (permalink)  
Antiguo 02/09/2008, 12:04
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 18 años, 5 meses
Puntos: 2
Respuesta: Problema con una variable (no es tan sencillo como parece)

Bueno pues resulta q jamas pude ver donde o por que estaba mi error asi q decidi usar otro metodo no tan bueno pero me funciono.

Resulta q como si recibia mi variable en la pagina, decidi imprimirla en un campo de texto y de ahi obtener el valor. Ya que obtuve el valor, puse la variable para insertarlo en la BD y listo.. solo asi pude hacerlo. Se q no es bueno lo q hize pero creeanme q no encontre otra manera de hacer q insertara mi variable

Gracias a los que me dieron alguna pista.
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 14:12.