Foros del Web » Programando para Internet » PHP »

No he podido gravar mis variables

Estas en el tema de No he podido gravar mis variables en el foro de PHP en Foros del Web. Buenas noches, estoy tratando de montar un envio de postales, desde mi propia base de datos, pero aun no he podido todo me sale bien, ...
  #1 (permalink)  
Antiguo 23/09/2008, 20:43
 
Fecha de Ingreso: septiembre-2008
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
No he podido gravar mis variables

Buenas noches, estoy tratando de montar un envio de postales, desde mi propia base de datos, pero aun no he podido todo me sale bien, pero cuando la persona a quien le envie la postal la va a visualizar le muestra este error.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/.../public_html/postal/leepostal.php on line 16
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 '' at line 1


He revisado la bases de datos y estan bien, pero al parecer cuando lleno el formularion no me lo carga en la base de datos, cual sera el problema.

la tabla postal tiene como campo principal id_postal de tipo int(5)

aqui le voy a colcar el codigo a ver si alguien ve el error

//Conectamos a la BD
$connectid=mysql_conexion();



//Creamos un numero aleatorio para el id_postal que no este utilizado ya
//Primero creo una semilla para los numeros aleatorios
srand ((double) microtime() * 1000000);

//Generamos un numero aleatorio distinto hasta que tengamos un numero libre
do
{
$aleatorio = rand(0,32000);
$resultid = mysql_db_query("basededatos","Select * From postal Where id_postal=" . $aleatorio);
$dameFila=mysql_fetch_array($resultid);
}while ($dameFila);


//Insertamos los datos necesarios en la BD
$sentencia_sql = "INSERT INTO postal (id_postal,texto,email_destinatario,nombre_destina tario,email_remitente,nombre_remitente,id_imagen,a visar) ";
$sentencia_sql .= "Values (" . $aleatorio . ",'" . $variables_formulario[5] . "','" . $variables_formulario[0] . "','" . $variables_formulario[1] ;
$sentencia_sql .= "','" . $variables_formulario[2] ."','" . $variables_formulario[3] ."'," . $variables_formulario[6] .",'".$variables_formulario[4]."')";
mysql_db_query("basededatos",$sentencia_sql);

ahora bien, tenemos la otra pagina que se conecta con este codigo, que es en donde supuestamente la persona pueda ver la postal

aqui esta mi query es donde esta el error:

//Conectamos a la BD
$connectid=mysql_conexion();

//Ejecutamos sentencia SQL y recogemos resultado en damefila
$resultid = mysql_db_query("basededatos","SELECT * FROM postal WHERE id_postal=" . $id_postal);
$dameFila=mysql_fetch_array($resultid) or die( mysql_error() ); AQUI ME DICE QUE ESTA EL ERROR

//Si el identificador es correcto, deberiamos tener valores en damefila
if ($dameFila) //Si existe esa postal la muestro
{

POr favor que alguien me ayude, gracias
  #2 (permalink)  
Antiguo 23/09/2008, 21:11
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No he podido gravar mis variables

Por favor, pon:

Código php:
Ver original
  1. $resultid = mysql_db_query("basededatos","SELECT * FROM postal WHERE id_postal=" . $id_postal) or die(mysql_error());
Lo más seguro es que $id_postal debas encerrarlo entre comillas simples, y que si proviene de la URL, debas emplear en su lugar $_GET['id_postal']:
Código php:
Ver original
  1. $id_postal = $_GET['id_postal']; // Debes validar este dato por motivos de seguridad !!
  2. # $id_postal = (int)$id_postal; // Esto toma el valor entero correspondiente a $id_postal, úsalo si tu id es numérico
  3.  
  4. $resultid = mysql_db_query("basededatos","SELECT * FROM postal WHERE id_postal='$id_postal'") or die(mysql_error());
Saludos,
  #3 (permalink)  
Antiguo 24/09/2008, 07:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: No he podido gravar mis variables

Hola gracias por tu mensaje, coloque lo que me dijistes pero no me muestra la imagen que he selecionado, y tampoco me arroja ningun error simplemente me muestra la pagina vacia, ¿sera como habia dicho antes que no esta guardando los datos en la base de datos? o algunas variables no me estan funcionando como deberian.
  #4 (permalink)  
Antiguo 24/09/2008, 07:46
 
Fecha de Ingreso: septiembre-2008
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: No he podido gravar mis variables

si al parecer no me esta guardando los datos en la base de datos, lo que me dijistes esta bien, he llenado la base de datos manualmente desde al phpmyadmin y corro el nº de id_potal y me muestra por lo menos algo, porque la imagen no la cargan tampoco. pero es algo con la base de datos que no me esta guardando los datos
  #5 (permalink)  
Antiguo 24/09/2008, 20:55
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No he podido gravar mis variables

Raro. Igual, pon

Código php:
Ver original
  1. mysql_db_query("basededatos",$sentencia_sql) or die("ERROR:<br />Consulta: <b>$sentencia_sql</b><br />".mysql_error());
en la parte donde haces el INSERT. Si te arroja algún error, lo publicas aquí.

Saludos,
  #6 (permalink)  
Antiguo 26/09/2008, 09:45
 
Fecha de Ingreso: septiembre-2008
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: No he podido gravar mis variables

Buenos dias, he colocado el codigo que me distes y este es el error:

ERROR:
Consulta: Insert Into postal (id_postal,texto,email_destinatario,nombre_destina tario,email_remitente,nombre_remitente,id_imagen,a visar) Values (15435,'prueba','[email protected]','felix','corr [email protected]','felix',,'')
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 ''')' at line 1


Por favor si me pueden ayudar he revisado pero no se donde estar el error, ¿quizas el formulario esta mal elaborado?
  #7 (permalink)  
Antiguo 26/09/2008, 10:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: No he podido gravar mis variables

¿No sera que las variables del formulario le falta el tipo de cada campo por ejemplo si es numericos o de texto, ?

aqui voy a colocar las variables del formulario:

{
//Guardamos las cookies para futuras visitas
SetCookie("nombre",$nombre_origen,time()+86400*365 );
SetCookie("email",$email_origen,time()+86400*365);

//Creamos el array variables_formulario tipo sesion con los datos del formulario
$variables_formulario[0]=$_POST['email_destino']; (¿tipo de campo?)
$variables_formulario[1]=$_POST['nombre_destino'];
$variables_formulario[2]=$_POST['email_origen'];
$variables_formulario[3]=$_POST['nombre_origen'];
$variables_formulario[5]=$_POST['texto'];
$variables_formulario[6]=$_POST['id_imagen'];

//Miramos si el checkbox esta validado
if (isset($avisar))
$variables_formulario[4]="checked";
else
$variables_formulario[4]="";
}
  #8 (permalink)  
Antiguo 26/09/2008, 10:02
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: No he podido gravar mis variables

Que tal felixmg, el ultimo dato no lo esta tomando en el INSERT, id_imagen,a visar
ese a visar así se llama el campo en tu tabla?, revisa los datos como los estas tomando me imagino que de un formulario.


Saludos.

Última edición por Carlojas; 26/09/2008 a las 10:14
  #9 (permalink)  
Antiguo 26/09/2008, 10:13
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: No he podido gravar mis variables

Según lo que espones es claro no te esta llegando el id_imagen $variables_formulario[6] = $_POST['id_imagen'] , verifica que efectivamente ese sea el nombre que tiene el campo en el formulario.



Saludos.
  #10 (permalink)  
Antiguo 26/09/2008, 10:42
 
Fecha de Ingreso: septiembre-2008
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: No he podido gravar mis variables

saludos Carlojas, ok el campo es, "avisar", lo que pasa es que lo tomo asi porque no cupo toda la consulta en una sola linea, ahora bien voy a colocar el formulario aqui a ver si puedes ver el error por favor:

<form action="enviopostal.php" method="post">
<table align="center" border="0" cellpadding="2" cellspacing="2">
<td colspan="2" align="center" style="celda1"><font color="#9933ff">Ten la amabilidad de rellenar el formulario</font></td>
<tr>
<td align="center">Email destinatario<br><input type="Text" name="email_destino" size="20" maxlength="50" value="<?php echo $variables_formulario[0]; ?>"></td>
<td align="center">Nombre destinatario<br><input type="Text" name="nombre_destino" size="20" maxlength="50" value="<?php echo $variables_formulario[1]; ?>"></td>
</tr>
<tr>
<td align="center">Email remitente<br><input type="Text" name="email_origen" size="20" maxlength="50" value="
<?php
if (isset($email))
echo $email;
else
echo $variables_formulario[2];
?>
"></td>
<td align="center">Nombre remitente<br><input type="Text" name="nombre_origen" size="20" maxlength="50" value="
<?php
if (isset($nombre))
echo $nombre;
else
echo $variables_formulario[3];
?>
"><td>
</tr>
<tr>
<td align="center" colspan="2"><input type="Checkbox" name="avisar" <?php echo $variables_formulario[4]; ?>>Quiero ser avisado de la recepci&oacute;n</td>
</tr>
<tr>
<td align="center" colspan="2">Texto postal<BR><textarea name="texto" cols="40" rows="6"><?php echo $variables_formulario[5]; ?></TEXTAREA></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="Submit" value="Enviar" name="enviar">
&nbsp;&nbsp;&nbsp;<INPUT type="Submit" value="Ver postal" name="ver"></td>
</tr>
</table>
<input type="Hidden" name="id_imagen" value="<?php echo $id ?>">
</form>
  #11 (permalink)  
Antiguo 26/09/2008, 13:11
 
Fecha de Ingreso: septiembre-2008
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: No he podido gravar mis variables

Creo que ya he dado con el primer error de insertar a la base de datos, el detalle esta que no se como hacerlo si me pueden ayudar por favor. aqui le coloco el codigo

//Creamos el array variables_formulario tipo sesion con los datos del formulario
$variables_formulario[0]=$_POST['email_destino'];
$variables_formulario[1]=$_POST['nombre_destino'];
$variables_formulario[2]=$_POST['email_origen'];
$variables_formulario[3]=$_POST['nombre_origen'];
$variables_formulario[5]=$_POST['texto'];
$variables_formulario[6]=$_POST['id_imagen'];

//Miramos si el checkbox esta validado
if (isset($avisar))
$variables_formulario[4]="checked"; AQUI ESTA UNO DE LOS ERRORES, NO SE COMO COLOR LA VARIABLE =$_POST
else
$variables_formulario[4]="";
}

POr favor si alguien me puede decir
  #12 (permalink)  
Antiguo 26/09/2008, 20:06
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No he podido gravar mis variables

Bueno debería ser $_POST['avisar']. Pero ese no es el error. El error está en que $variables_formulario[6] es un elemento vacío. Viendo tu formulario, me he percatado que id_imagen es un campo al que le asignas como valor $id. De donde sacas $id? Si es de la URL, recuerda que debes poner $_GET['id']

Saludos,
  #13 (permalink)  
Antiguo 27/09/2008, 17:34
 
Fecha de Ingreso: septiembre-2008
Mensajes: 15
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: No he podido gravar mis variables

Okram Muchas Gracias, claro se me habia pasado ese detalle que venia de la url
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:28.