Foros del Web » Programando para Internet » PHP »

PHP OO No se guarda en la bd

Estas en el tema de No se guarda en la bd en el foro de PHP en Foros del Web. Hola a todos, tengo un problema y es que no se guarda en la db la url de la imagen. He provado con todo y ...
  #1 (permalink)  
Antiguo 26/04/2014, 06:57
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
No se guarda en la bd

Hola a todos, tengo un problema y es que no se guarda en la db la url de la imagen. He provado con todo y nada.

enviado.php:

Código PHP:
<html>
La imagen fue enviada con exito.<br><strong>Datos:</strong><br>
<ul>
  <li>Tipo <?=$tipo?></li>
  <li>Ubicacion http://localhost/<?=$destino '/' .$cad.'.'.$tipo?></li>
</ul><br />


<?php
http
://localhost/=$destino.'/'.$cad.'.'.$tipo
?>
<img src="http://localhost/<?=$destino.'/'.$cad.'.'.$tipo?>" width="229" height="157">

<?php
session_start
();
require_once(
'./config/funciones.php');
conectar('localhost''root''123456''ofserker');

$uid $_SESSION['uid'];

$insertar = ("INSERT INTO users WHERE uid='$uid' (foto) values (http://localhost/=$destino.'/'.$cad.'.'.$tipo)");

if(!
$insertar)
echo 
'No se han guardado los datos'."<br>";
else
echo 
"Se han guardado los datos correctamente"."<br>";
header("refresh: 60; url=./perfil.php");
?>
Atentamente, OfSerker
  #2 (permalink)  
Antiguo 26/04/2014, 07:35
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 3 meses
Puntos: 46
Respuesta: No se guarda en la bd

Creo que tienes un problema con las comillas. ¿Aparece el mensaje de guardado correctamente?

Código PHP:
Ver original
  1. $insertar = ("INSERT INTO users WHERE uid='$uid' (foto) values ('http://localhost/".$destino."/".$cad.$tipo."')");

Prueba esa línea y me cuentas.

Salu2.

Edito: Acabo de ver que has abierto 3 temas distintos para el mismo problema, te recomiendo centrarte en uno como te ha dicho un moderador: http://www.forosdelweb.com/f18/php-i...erfil-1097861/
__________________
@jslirola - Programador Web Freelance.
  #3 (permalink)  
Antiguo 26/04/2014, 07:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se guarda en la bd

Exactamente ese es el problema.
¿te has dado cuenta que este pedazo no está puesto como cadena de texto?:
Código PHP:
Ver original
  1. http://localhost/=

Trata de seguir el problema en el mismo thread.
Que sean partes del mismo problema, y qye necesites resolver las partes, no quiere decir que por cada parte del problema debas abrir un tema nuevo. Puede tomarse como suma de mensajes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 26/04/2014, 07:53
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Pregunta Respuesta: No se guarda en la bd

Hola, me sale el echo que se ha guardado en la bd pero cuando entro no esta -,-.

Aqui te paso la línea que he canviado:

enviado.php
Código PHP:
echo "Se han guardado los datos correctamente Id= $uid"."<br>";
header("refresh: 60; url=./perfil.php"); 
Ahora, las fotos de mi bd y del enviado.php:



Me centro en este tema ya que esto es un error, lo otro es como hacer un perfil.

Atentamente, OfSerker
  #5 (permalink)  
Antiguo 26/04/2014, 07:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se guarda en la bd

Cita:
Hola, me sale el echo que se ha guardado en la bd pero cuando entro no esta -,-.
No, lo que te sale es el mensaje que tu especificaste, pero no significa que lo hayas programado bien (es muy habitual que no lo hagan al principio).
Debes validar todo fallo posible, porque esa query, de la forma que la tenías armada sin duda esta disparando un error de sintaxis en la base de datos.

Postea el codigo de la inserción completo tal y como está ahora.

Edito. En realidad si lo que pusiste arriba es lo que tienes no lo va a disparar, porque no lo estás mandando a la base:
Código PHP:
Ver original
  1. $insertar = ("INSERT INTO users WHERE uid='$uid' (foto) values (http://localhost/=$destino.'/'.$cad.'.'.$tipo)");
  2. // Ajá... ¿Y donde está el mysq_query() o lo que sea que corresponda que uses?
  3. if(!$insertar)
  4.  
  5. // cuando comparas una cadena de texto como True o False, siempre que tenga algo será TRUE.
Allí en ningun momento lo mandas a ejecutar...
Recuerda que PHP no ejecuta consultas, las envía a la base de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 26/04/2014, 08:06
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se guarda en la bd

Te dije que solo cambie esa línea. Bueno, si quieres te lo paso:

enviado.php:

Código PHP:
<html>
La imagen fue enviada con exito.<br><strong>Datos:</strong><br>
<ul>
  <li>Tipo <?=$tipo?></li>
  <li>Ubicacion http://localhost/<?=$destino '/' .$cad.'.'.$tipo?></li>
</ul><br />


<?php
http
://localhost/=$destino.'/'.$cad.'.'.$tipo
?>
<img src="http://localhost/<?=$destino.'/'.$cad.'.'.$tipo?>" width="229" height="157">

<?php
session_start
();
require_once(
'./config/funciones.php');
conectar('localhost''root''123456''ofserker');

$uid $_SESSION['uid'];

$insertar = ("INSERT INTO users WHERE uid='$uid' (foto) values ('http://localhost/".$destino."/".$cad.$tipo."')");

if(!
$insertar)
echo 
'No se han guardado los datos'."<br>";
else
echo 
"Se han guardado los datos correctamente Id= $uid"."<br>";
header("refresh: 60; url=./perfil.php");
?>
Atentamente, OfSerker.
  #7 (permalink)  
Antiguo 26/04/2014, 08:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se guarda en la bd



Me parece que no estás entendiendo lo que te dije..

Esta línea no hace absolutamente nada. Solamente carga una cadena de texto en una variable:
Código PHP:
Ver original
  1. $insertar = ("INSERT INTO users WHERE uid='$uid' (foto) values ('http://localhost/".$destino."/".$cad.$tipo."')");
Pero no ejecuta la query. Sólo crea la cadena de texto con ella. Y una cadena de texto, si se la valida, es siempre TRUE en el IF().
Para mostrarte esto, hagamos una prueba imaginaria:
Código PHP:
Ver original
  1. $destino = "loquesea.php";
  2.  
  3. $insertar = ("INSERT INTO users values ('http://localhost/".$destino."/')");
  4. echo $insertar;
  5. if(!insertar)
  6. {echo "False para $insertar";}
  7. else
  8. {echo "True para $insertar";}
  9. if(!destino)
  10. {echo "False para $destino";}
  11. else
  12. {echo "True para $destino";}
Esto da por resultado:
Cita:
INSERT INTO users values ('http://localhost/loquesea.php/')
True para INSERT INTO users values ('http://localhost/loquesea.php/')
True para loquesea.php
Además de eso, tienes un error gravísimo en SQL, porque WHERE no es cláusula de INSERT. Creo que estás confundiendo el INSERT con el UPDATE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 26/04/2014, 10:10
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se guarda en la bd

Luego lo provaré.

¿Pero si subo la imagen de perfil $foto se insertará dentro del campo foto del user que haya subido la foto de perfil?

Atentamente, OfSerker
  #9 (permalink)  
Antiguo 26/04/2014, 11:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se guarda en la bd



A ver si se entiende bien.
No estás insertando nada, porque en ningún momento estás ejecutando es query en la base de datos.

Suponiendo que esa query sea para MySQL, y estés usando la librería de enlace a datos de PHP denominada MYSQL, como mínimo deberías tener esto:
Código PHP:
Ver original
  1. $insertar = mysql_query("INSERT INTO users WHERE uid='$uid' (foto) values ('http://localhost/".$destino."/".$cad.$tipo."')");
¿Se nota ahora lo que falta?

En ningún momento, en ese script, estás usando mysql_query ni nada parecido. Nada.

Tengo la impresión de que ni siquiera estás consultando un tutorial de PHP sobr el tema. Al menos deberías ver el manual de referencia de PHP, donde hay ejempos de esto.
http://www.php.net/manual/es/function.mysql-query.php
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 26/04/2014, 11:15
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se guarda en la bd

Busque y busque y ya lo solucioné:

Código PHP:
<?php
$insertar 
"UPDATE users SET foto='http://localhost/$destino/$cad.$tipo' WHERE uid='$uid'"
mysql_query($insertar) or die("Error query ".mysql_error());

if(!
$insertar)
{
echo 
"No se ha insertado la foto en tu perfil";
}
else
{
echo 
"Se ha insertado la foto en tu perfil";
}
?>
Atentamente, OfSerker

Etiquetas: bd, html
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 19:21.