Foros del Web » Programando para Internet » PHP »

Ayuda plz! Asociar imagen de base de datos con texto

Estas en el tema de Ayuda plz! Asociar imagen de base de datos con texto en el foro de PHP en Foros del Web. Pues estoy empezando en esto del php y como es logico me he encallado en un script que estoy haciendo y no se como arreglarlo.. ...
  #1 (permalink)  
Antiguo 08/08/2009, 17:06
Avatar de didix16  
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 10 años, 6 meses
Puntos: 0
Ayuda plz! Asociar imagen de base de datos con texto

Pues estoy empezando en esto del php y como es logico me he encallado en un script que estoy haciendo y no se como arreglarlo.. Veris lo que yo quiero hacer es asociar las imagenes de la base de datos con su corresponiente texto, por ejemplo tengo la columna ID, Imagen y la columna nombre donde en esta estan los nombres asociados a la imagen y a la id(esta está en primary_key). Y en el script tengo javascript y php que me imprimen lo que seria una tabla con las imagenes y el texto, pero si o ago de una forma que yo se, me sale por cada imagen, todos los nombres asociados a esa imagen y asi consequitvamente... No se si me explico xD. Bueno aqui os dejo mis scripts:
ESTE SERIA EL ARCHIVO ver_imagen.php
Código:
<?php 
// Parámetros para recuperar la imagen
# Recuperamos el parámetro GET con el id único de la foto que queremos mostrar
$idfoto = (isset($_GET["idfoto"])) ? $_GET["idfoto"] : exit();
# Recuperamos el parámetro GET para elegir entre la miniatura o la foto real
$tam = (isset($_GET["tam"])) ? $_GET["tam"] : 1;
// Escojemos la foto real o la miniatura según la variable $tam
switch($tam) {
	case "1":
		$campo = "foto";break;;
	case "2":
		$campo = "thumb";break;;
	default:
		$campo = "foto";break;;
}
// Recuperamos la foto de la tabla
$sql = "SELECT $campo, mime
		FROM tabla 
		WHERE idfoto = $idfoto";
# Conexión a la base de datos
$link = mysql_connect("localhost", "root", "") or die(mysql_error($link));;
mysql_select_db("usuarios", $link) or die(mysql_error($link));
$conn = mysql_query($sql, $link) or die(mysql_error($link));
$datos = mysql_fetch_array($conn);
// La imagen
$imagen = $datos[0];
// El mime type de la imagen
$mime = $datos[1];
// Gracias a esta cabecera, podemos ver la imagen 
// que acabamos de recuperar del campo blob
header("Content-Type:$mime");
// Muestra la imagen
echo $imagen;
?>
</body>
</html>
Luego donde representa que se ha de mostrar todo el resultado final es este:
Código:
<?
$link = mysql_connect("localhost", "root", "") or die(mysql_error($link));;
mysql_select_db("usuarios", $link) or die(mysql_error($link));
  
      $queEmp = "SELECT * FROM tabla ORDER BY nombre ASC";
      $resEmp = mysql_query($queEmp, $link) or die(mysql_error());
      $totEmp = mysql_num_rows($resEmp);
	  //$rowEmp = mysql_fetch_assoc($resEmp);



echo'<table border="1" cellspacing="0" align="center">';
if ($totEmp>0) {
	 
while ($rowEmp = mysql_fetch_assoc($resEmp)){
	echo "<tr>";
	echo '<td><img src="ver_imagen.php?idfoto='.$rowEmp['idfoto'].'"></td>';
	echo "<td>".$rowEmp['nombre']."</td>";
        echo "</tr>";
}
echo'</table>';
?>
Entonces lo que ago es a partir del archivo ver_imagen.php es con javascript muestro la imagen en una tabla con las 21 imagenes y en teoria a su lado tendria que haber el nombre de cada imagen almacenado en la BD, pero ese script de php lo que hace es imprimir todos los valores que hay en la columna.. y el javascript lo que hace es repetir 21 veces ese proceso, por eso me saca todos los nombres por cada imagen...
Donde me falla es aqui document.write("<td>';if ($totEmp>0) {
while ($rowEmp = mysql_fetch_assoc($resEmp)){
echo $rowEmp['nombre'];}}echo'</td>");

Ma gustaria saber si hay alguna forma de combinar el javascript y php para que quede bien... o alguna ayuda o solucion a este problema, les estaria eternamente agradecido
EDIT: Bueno no hace falta ayuda, ya consegui solucinarlo xD. Pongo el codigo aqui pro si a alguien le interesa almacenar imagenes en BD y luego ponerlas en su pagina php junto con texto. La parte en negrita es la parte solucionada

Última edición por didix16; 09/08/2009 a las 07:09 Razón: Solucinado
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 01:20.