Problema con update...
Soy comerciante, pero me gusta el manejo de bases de datos, mi inquietud es la siguiente:
He aprendido a guardar imágenes en una carpeta del servidor y su (url_foto), (url_thumb) en dos campos de la db llamados igualmente (url_foto), (url_thumb)
En la carpeta raíz del sitio (www), tengo la carpeta (Fotos_usuarios y subcarpeta, thumb)
Codigo (Formulario subir_datos):
<form action="subir_datos.php" method="post" enctype="multipart/form-data" name="action" id="action">
Anuncio numero:<input name="num_anun" type="text" size="1" maxlength="2"/>
Nombre:<input name="nombre" type="text" />
E_mail:<input name="e_mail" type="text" />
Foto:<input name="archivo" type="file" size="30" />
<input name="action" type="hidden" value="upload" />
</form>
Codigo (subir_datos):
<?php
$status = "";
($_POST["action"] = "subir_datos") or die ("
<h1 align=center>Falta que envíe la foto</h1>
");
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);
($archivo != "") or die ("
<h1 align=center>Falta que envíe la foto</h1>
".$archivo);
// guardamos el archivo a la carpeta "../Fotos_usuarios/"
($tipo = "image/jpeg" || $tipo = "image/jpg") or die ("
<h1 align=center>Sólo se admiten imágenes en <b>.jpg</b> y <b>.jpeg</b></h1>
");
$destino = "../Fotos_usuarios/".$prefijo."_".$archivo;
(copy($_FILES['archivo']['tmp_name'],$destino)) or die ("
<h1 align=center>Error al subir la foto</h1>
".$archivo);
//aquí empieza el código de creación del thumbnail
$source=$destino; // archivo de origen
$dest="../Fotos_usuarios/thumb/tb_".$prefijo."_".$archivo; // archivo de destino
$width_d=133; // ancho de salida
$height_d=100; // alto de salida
list($width_s, $height_s, $type, $attr) = getimagesize($source, $info2); // obtengo información del archivo
$gd_s = imagecreatefromjpeg($source); // crea el recurso gd para el origen
$gd_d = imagecreatetruecolor($width_d, $height_d); // crea el recurso gd para la salida
imagecopyresampled($gd_d, $gd_s, 0, 0, 0, 0, $width_d, $height_d, $width_s, $height_s); // redimensiona
imagejpeg($gd_d, $dest); // graba
// Se liberan recursos
imagedestroy($gd_s);
imagedestroy($gd_d);
//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("mydb",$conexion) or die("No se puede seleccionar BD");
$num_anun=$_POST['num_anun'];
$nombre=$_POST['nombre'];
$e_mail=$_POST['e_mail'];
$url_foto="../Fotos_usuarios/".$prefijo."_".$archivo;
$url_thumb="../Fotos_usuarios/thumb/tb_".$prefijo."_".$archivo;
//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO fotos (num_anun, nombre, e_mail, url_foto, url_thumb) VALUES ('$num_anun, '$nombre, '$e_mail, '$url_foto', '$url_thumb')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
?>
--- Todo esta perfecto pero ahora quisiera poder actualizar tanto las url´s como la foto de algún usuario que se haya equivocado al enviar su archivo...
Codigo (UPDATE):
<?php
$conexion = mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("mydb",$conexion) or die("No se puede seleccionar BD");
//si es que dió click en el botón "OK"
if (isset($_POST['OK']))
{ // ejecutando el query select regresa un rowset
$datos = mysql_query("select e_mail, url_foto, url_thumb from datos where num_anun= '".$_POST['num_anun']."' AND e_mail= '".$_POST['e_mail']."'", $conexion) or die ("problema con query".mysql_error()) ;
// regresando renglon con registro
$reg = mysql_fetch_array($datos);
}
if (isset($_POST['OK2']))
{
$status = "";
($_POST['action']) or die ("
<h1 align=center>Falta que envíe la foto</h1>
");
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);
($archivo != "") or die ("
<h1 align=center>Falta que envíe la foto</h1>
".$archivo);
// guardamos el archivo a la carpeta "../Fotos_usuarios/"
($tipo = "image/jpeg" || $tipo = "image/jpg") or die ("
<h1 align=center>Sólo se admiten imágenes en <b>.jpg</b> y <b>.jpeg</b></h1>
");
$destino = ...
He aprendido a guardar imágenes en una carpeta del servidor y su (url_foto), (url_thumb) en dos campos de la db llamados igualmente (url_foto), (url_thumb)
En la carpeta raíz del sitio (www), tengo la carpeta (Fotos_usuarios y subcarpeta, thumb)
Codigo (Formulario subir_datos):
<form action="subir_datos.php" method="post" enctype="multipart/form-data" name="action" id="action">
Anuncio numero:<input name="num_anun" type="text" size="1" maxlength="2"/>
Nombre:<input name="nombre" type="text" />
E_mail:<input name="e_mail" type="text" />
Foto:<input name="archivo" type="file" size="30" />
<input name="action" type="hidden" value="upload" />
</form>
Codigo (subir_datos):
<?php
$status = "";
($_POST["action"] = "subir_datos") or die ("
<h1 align=center>Falta que envíe la foto</h1>
");
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);
($archivo != "") or die ("
<h1 align=center>Falta que envíe la foto</h1>
".$archivo);
// guardamos el archivo a la carpeta "../Fotos_usuarios/"
($tipo = "image/jpeg" || $tipo = "image/jpg") or die ("
<h1 align=center>Sólo se admiten imágenes en <b>.jpg</b> y <b>.jpeg</b></h1>
");
$destino = "../Fotos_usuarios/".$prefijo."_".$archivo;
(copy($_FILES['archivo']['tmp_name'],$destino)) or die ("
<h1 align=center>Error al subir la foto</h1>
".$archivo);
//aquí empieza el código de creación del thumbnail
$source=$destino; // archivo de origen
$dest="../Fotos_usuarios/thumb/tb_".$prefijo."_".$archivo; // archivo de destino
$width_d=133; // ancho de salida
$height_d=100; // alto de salida
list($width_s, $height_s, $type, $attr) = getimagesize($source, $info2); // obtengo información del archivo
$gd_s = imagecreatefromjpeg($source); // crea el recurso gd para el origen
$gd_d = imagecreatetruecolor($width_d, $height_d); // crea el recurso gd para la salida
imagecopyresampled($gd_d, $gd_s, 0, 0, 0, 0, $width_d, $height_d, $width_s, $height_s); // redimensiona
imagejpeg($gd_d, $dest); // graba
// Se liberan recursos
imagedestroy($gd_s);
imagedestroy($gd_d);
//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("mydb",$conexion) or die("No se puede seleccionar BD");
$num_anun=$_POST['num_anun'];
$nombre=$_POST['nombre'];
$e_mail=$_POST['e_mail'];
$url_foto="../Fotos_usuarios/".$prefijo."_".$archivo;
$url_thumb="../Fotos_usuarios/thumb/tb_".$prefijo."_".$archivo;
//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO fotos (num_anun, nombre, e_mail, url_foto, url_thumb) VALUES ('$num_anun, '$nombre, '$e_mail, '$url_foto', '$url_thumb')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
?>
--- Todo esta perfecto pero ahora quisiera poder actualizar tanto las url´s como la foto de algún usuario que se haya equivocado al enviar su archivo...
Codigo (UPDATE):
<?php
$conexion = mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("mydb",$conexion) or die("No se puede seleccionar BD");
//si es que dió click en el botón "OK"
if (isset($_POST['OK']))
{ // ejecutando el query select regresa un rowset
$datos = mysql_query("select e_mail, url_foto, url_thumb from datos where num_anun= '".$_POST['num_anun']."' AND e_mail= '".$_POST['e_mail']."'", $conexion) or die ("problema con query".mysql_error()) ;
// regresando renglon con registro
$reg = mysql_fetch_array($datos);
}
if (isset($_POST['OK2']))
{
$status = "";
($_POST['action']) or die ("
<h1 align=center>Falta que envíe la foto</h1>
");
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);
($archivo != "") or die ("
<h1 align=center>Falta que envíe la foto</h1>
".$archivo);
// guardamos el archivo a la carpeta "../Fotos_usuarios/"
($tipo = "image/jpeg" || $tipo = "image/jpg") or die ("
<h1 align=center>Sólo se admiten imágenes en <b>.jpg</b> y <b>.jpeg</b></h1>
");
$destino = ...
Respuesta de Chari Saiz
1