Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/07/2009, 19:34
iovan
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
De acuerdo PHP y MySQL organizar tablas y mostrar su contenido

Código PHP:
 
Hola buenas noches, por ahora tengo una duda demaciado sencilla.

Verán estoy creando un album fotografico que funciona asi:

Mediante un formulario en php creo las tablas en mi base de datos, donde cada el nombre de la tabla correspondería a el nombre del album y el contenido de la tabla (id, nombre, tipo, imagen, etc..) corresponde al contenido del album, es decir a todas las imagenes del mismo album.

formulario crear tablas (crear album)
Código PHP:
<?php
mysql_connect
('localhost','root','mypass') or die('No se ha podido conectar el servidor de datos');
mysql_select_db('imagenes') or die('No se puede seleccionar la base de datos especificada'); 

$db mysql_connect("localhost""root""gateway");

//con esto creo la tabla es decir el album
if ($album_name=="")
{
echo 
"Escriba un nombre para su album";
} else {
$sql "CREATE TABLE `".$_POST['album_name']."` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `nombre` varchar(255) default NULL,
  `tipo` varchar(255) default NULL,
  `imagen` longblob NOT NULL,
  KEY `id` (`id`)
) TYPE=MyISAM DEFAULT CHARSET=latin1;"

mysql_query($sql$db);
if ( 
mysql_error () ) 
{
echo 
"El nombre ya ha sido usado o no es válido";
} else {
echo 
"Se ha creado el album";
}
}
?>
<form method="post" action="">
Nombre del Album:
  <input name="album_name" type="text" maxlength="100">
  <input type="submit" value="crear">
</form>
Mediante otro formulario:
1.- consulto cuantas tablas existen en la base de datos y las ordeno en lista desplegable de formulario
2.- Incluyo un campo tipo file para subir la imagen a la base de datos
3.- El campo <select></select> con el nombre de las tablas mysql organizadas en <option></option> que sería el destino a donde se subirá la imagen, es decir el album correspondiente a la imagen.

Código PHP:
<?php
mysql_connect
('localhost','root','mypass') or die('No se ha podido conectar el servidor de datos');
mysql_select_db('imagenes') or die('No se puede seleccionar la base de datos especificada'); 
?>
<!-- formulario subir imagen -->
<b>Subir imagen al album </b><br />
<form enctype="multipart/form-data" method="post" action="subir.php">
  <select name="album">
<?php
$result 
mysql_list_tables("imagenes");
If (!
$result) {
        echo 
"DB Error, No se pueden listar las tablas";
        echo 
"
"
;
        echo 
'MySQL Error: ' mysql_error();
}
While (
$row mysql_fetch_row($result)) {
        echo 
" <option value='$row[0]'>$row[0]</option>";
}
mysql_free_result($result);

?>
</select>
Nombre: <input type="text" name="nombre" maxlength="256" />
<br />
Imagen: <input type="file" name="archivo" />
<br />
<input type="submit" value="subir"/>
</form>
El archivo subir.php tiene el script necesario para subir la imagen.

Código PHP:
<?php
 
# Eial 2004 la versión orginial se encuentra en [url]http://www.programacionweb.net[/url]
 
if (is_uploaded_file($_FILES['archivo']['tmp_name']) === TRUE)
 
{
 
$imagen mysql_escape_string(join(@file($_FILES['archivo']['tmp_name']))); 
 
$nombre mysql_escape_string($_POST['nombre']);
 
$tipo $_FILES['archivo']['type'];
 
# Configurar las dos lineas siguientes 
 
@mysql_connect('localhost','root','mypass') or die('No se ha podido conectar el servidor de datos');
 
@
mysql_select_db('imagenes') or die('La base de datos es inexistente');
 
    if (isset(
$nombre))
 
    {
 
        if (@
mysql_result(@mysql_query("SELECT nombre FROM "$album ." WHERE nombre='$nombre'"),'nombre')) die('El nombre de la imagen esta actualmente en uso');
 
    }
 
@
mysql_query("INSERT INTO "$album ."(nombre,tipo,imagen) VALUES('$nombre','$tipo','$imagen')");
 
$id = @mysql_insert_id();
 
echo 
"
<html>
<body>
<p align='center'>Se ha subido la imagen a la base de datos</p> 
Album: "
$album "<br>
Nombre: "
$nombre ."<br>
Tipo: "
$tipo ."<br>
ID: "
$id ."<br>
Subir otra imagen <a href='index.php'> click aqui</a><br>
<form action='imagenes.php'>
<input type='hidden' name='album' value='"
$album ."'>
<input type='hidden' name='id' value='"
.$id."'>
<input type='submit' value='Ver imagen'>
</form>
</body>
</html>
"
;
 
exit;
 
}
 
else
 
{
 
echo 
'
No se pudo subir intenta de nuevo
'
;
 
}
 
?>
y el archivo imagenes.php donde se muestran las imagenes recien subidas.

imagenes.php
Código PHP:
<?php
 
# Eial 2004 la versión orginial se encuentra en [url]http://www.programacionweb.net[/url]
 
# Configurar las dos lineas siguientes
 
@mysql_connect('localhost','root','mypass') or die('No se puede conectar con el servidor mysql'); 
 
@
mysql_select_db('imagenes') or die('No se puede seleccionar la base de datos especificada'); 
 
$datos = ($_GET['id']) ? 'id=' mysql_escape_string($_GET['id']) : "nombre='" mysql_escape_string($_GET['nombre']) . "'";
 
$resultado = @mysql_query("SELECT imagen,tipo FROM "$album ." WHERE " $datos);
 
$imagen = @mysql_fetch_assoc($resultado) or die('Imagen inexistente');
 
header("Content-type: $imagen[tipo]");
print 
$imagen['imagen']; 
?>
Tengo una duda muy sencilla pero solo queria darme a entender bien, por favor prueben el código para que me pueda dar a entender mejor.

¿Como puedo mostrar las todas las imagenes de una tabla a la vez con un link?
Las imagenes se organiza por id en la DB. y para verlas se utiliza el siguiente una estructura parecida al siguiente achivo

Código PHP:
<a href="ver_imagen.php?id=' . $id . '">ver imagen</a
Código PHP:
<?php
$datos 
= ($_GET['id']) ? 'id=' mysql_escape_string($_GET['id']) : "nombre='" mysql_escape_string($_GET['nombre']) . "'";
$resultado = @mysql_query("SELECT imagen,tipo FROM tabla WHERE " $datos);
$imagen = @mysql_fetch_assoc($resultado) or die('Imagen inexistente');

header("Content-type: $imagen[tipo]");
print 
$imagen['imagen']; 
?>

Por favor ayudenme

Muchas gracias.

P.D: Estoy realizando un PHPScript (pagina web para novios) Ya tiene sistema de mensajeria instantanea (ProChatRomm v5) con todos los plugins y un tema modificado por mi, el chat lo ejemplifique al máximo Sencillo y amoroso, una seccion de cartas ( Mis cartas enviadas , Mis cartas recibidas, escribir carta ) Login de usuarios, Perfil, los cartas incluyen opcion a usar editor sencillo o abanzando TinyMCE, le voy a poner un script para subir videos, imagenes (es en lo que estoy actualmente) y musica.

Echenme la mano porfavor no pido dudas imposibles, acabamos juntos este script y lo colgamos en descarga directa para programacionweb.net y forosdelweb.com o para la que si me ayude. Saludos!
Espero me echen la mano, muchas gracias.
Deseo terminar este script para mi novia lo mas pronto posible

Saludos!