viernes, 22 de marzo de 2013

Mostrar imagen en PHP con MySQL / PhpMyAdmin

Únicamente se ocupan 6 cosas:
- una carpeta llamada Fotos que contenga 4 fotos de ejemplo
- crear la base de datos
- crear una conexión a la base de datos
- Ingresar la imagen
- Guardar la dirección de la imagen en la base de datos
- y Mostrar la imagen



La base de datos a usar para este ejemplo se llama "test" y la tabla se llama foto y los campos son "id" en INT auto numérico y "direccion" en varchar 40




Mi conexión es la siguiente, no olviden modificar el nombre de usuario y el password  conexion.php:

<!-- CONEXION A LA BASE DE DATOS, TODAS LAS PAGINAS USAN ESTA CONEXION -->
<?php
$server = "localhost";//nombre del servidor en PhpMyAdmin
$usuario = "root";//nombre del usuario
$pwd = "";//contraseña del PhpMyAdmin
$db = "test";//nombre de la base de datos

//manda los datos almacenados en las variables al PhpMyAdmin
$conexion = mysql_connect($server,$usuario,$pwd,$db);

//condición que verifica si hay conexion con la base de datos
if (!$conexion)
{
die("No se pudo conectar con la base de datos.");
}
mysql_select_db($db); //selecciona la base de datos a usar
?>



Luego hay que ingresar la imagen a guardar, la página se llama ingresar.php :

<!--- CAMPOS PARA EL INGRESO DE DATOS, LOS MANDA AL add_pass.php Y ABRE DICHA PAGINA  --->
<form action="add.php" method="POST" enctype="multipart/form-data" style="padding:5px;">
Nombre de la foto: <input name="userfile" type="file" class="box" id="userfile"><br /><br />
<div style="margin-left: 70px;"><input name="guardar" value="Guardar" type="submit" /></div>
</form>




En el código que muestro en "action" pongo la página a la que voy a dirigir mi información en este caso es "add.php". Y luego en la página add.php voy a poner lo siguiente:

<?php
include 'conexion.php';//siempre que se realicen querys a la base de datos hay que poner la conexion

if(isset($_POST['guardar']))
{
$fileName = $_FILES['userfile']['name'];
$foto= "Fotos/$fileName";

$sql ="INSERT into foto (direccion) VALUES ('$foto')";
mysql_query($sql);

$query="SELECT * FROM foto WHERE id='18'";
$result =mysql_query($query);
if($row = mysql_fetch_array($result))
{
$direccion= $row['direccion'];
echo $direccion;
echo '<img src="'.$direccion.'">';
echo "<img src='$direccion'>";

?>
<img src="<?php echo $row["direccion"]; ?>" />

<?php
}
}
?>




En este caso estamos mostrando la imagen en el mismo php en el que lo guardamos, así que ahí finaliza todo el proceso. 

6 comentarios:

  1. Muchas gracias me sirvió mucho para lo que necesitaba

    ResponderEliminar
    Respuestas
    1. Por nada, cualquier duda aqui estamos para ayudar en lo que se pueda.

      Eliminar
  2. hola tengo un registro de imagenes en mysql.. me puedes facilitar un codigo para mostrarlas cambiando de 1 en 1...? porque hasta ahora solo consigo que cambien pero yo tengo que asignarles la url de la imagen... y yo quiero que las traiga de la BD.

    ResponderEliminar
    Respuestas
    1. Hola, procurare subir un ejemplo antes de que termine este día.

      Eliminar
    2. te dejo el LINK: http://happystudy-alextkd.blogspot.com/2014/12/guardar-imagen-en-mysql-con-php.html

      Eliminar
  3. Amigo un saludo quisiera ver si me puedes ayudar en lo siguiente mostrar unas imágenes las cuales están ingresadas a una base de datos manualmente (su url) y con un formulario html o php con un campo para ingresarle la url de la imagen y un boton enviar y me las muestre en el browser o localhost, te agradecería enormente tu ayuda, gracias de antemano.

    ResponderEliminar

Deprecated: mysql_select_db(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in

¿Les ha sucedido que intentan, hacer un query de conexión y les sale un mensaje de que la extensión que están usando es obsoleta? Les pon...