Foros del Web » Programando para Internet » PHP »

paginador no vincula foto !!???

Estas en el tema de paginador no vincula foto !!??? en el foro de PHP en Foros del Web. Hola, he conseguido un sencillo script, el cual me funciona a medias. La aplicacion que deberia hacer es la siguiente: paginar fotos que hay en ...
  #1 (permalink)  
Antiguo 28/08/2008, 10:40
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
paginador no vincula foto !!???

Hola, he conseguido un sencillo script, el cual me funciona a medias.
La aplicacion que deberia hacer es la siguiente: paginar fotos que hay en base de datos en un campo llamado "foto"
pues el paginador que tengo instalado, en la barra del navejador, si me modifica los "......php?pg=2"".....php?pg=3" dependiendo del numero que clicke, pero lo que no hace es visualizar la foto que hay en la base de datos.
Como lo hago ??? debo insertar una foto y vincularla a un juego de registros ?????? no se muy bien como funciona eso !!!!

os dejo el script:
<?
// Datos de conexión a la base
$base="mibase";
$con=mysql_connect("localhost","mibase","X");
mysql_select_db($base,$con);

if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=10; // cantidad de resultados por página
$inicial = $pg * $cantidad;

$pegar = "SELECT * FROM fotos ORDER BY fotoid LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());

$contar = "SELECT * FROM fotos ORDER BY fotoid";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);

// Imprimiendo los resultados
while($array = mysql_fetch_array($cad)) {
echo $array['titulo']."<br>";
}

// Cerramos la conexión a la base
$con=mysql_close($con);

// Creando los enlaces de paginación
echo "<p>";
if ($pg <> 0)
{
$url = $pg - 1;
echo "<a href='diap-usuarios-provaaaa6.php?pg=".$url."'>« Anterior</a> ";
}
else {
echo " ";
}

for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $pg) {
echo "<font face=Arial size=2 color=ff0000><b> $i </b></font>";
}
else {
echo "<a href='diap-usuarios-provaaaa6.php?pg=".$i."'>".$i."</a> ";
}
}

if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='diap-usuarios-provaaaa6.php?pg=".$url."'>Siguiente »</a>";
}
else {
echo " ";
}
echo "</p>";
?>
  #2 (permalink)  
Antiguo 28/08/2008, 11:23
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: paginador no vincula foto !!???

: / amigo y donde esta su link a la imagen que quiere mostrar ???
digo su <img src="" />
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 28/08/2008, 11:26
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: paginador no vincula foto !!???

Cita:
Iniciado por kaninox Ver Mensaje
: / amigo y donde esta su link a la imagen que quiere mostrar ???
digo su <img src="" />
ademas de eso, como guardas la imagen? guardas el nombre? la url completa? lo guardas como tipo blob (cosa mala)?
  #4 (permalink)  
Antiguo 29/08/2008, 02:15
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: paginador no vincula foto !!???

Disculpad que falte informacion. La vinculacion de la foto es:

<img src="subir-fotos-personal/diapositivas/<?php echo $row_paginador['foto']; ?>">

Te explico el funcionamiento de my web a grandes rasgos por si sirve de ayuda:
El usuario tiene la opcion de enviar fotos las cuales se almacenan en una carapeta remota, pero antes de enviar la foto, passan por un formulario, el cual se almacena la informaion en la base de datos donde ahy el campo"foto" que es donde se guarda el nombre del la foto.

el scripr de paginador me queda asi:

<img src="subir-fotos-personal/diapositivas/<?php echo $row_paginador['foto']; ?>"><?
// Datos de conexión a la base
$base="mibase";
$con=mysql_connect("localhost","mibase","X");
mysql_select_db($base,$con);

if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=10; // cantidad de resultados por página
$inicial = $pg * $cantidad;

$pegar = "SELECT * FROM fotos ORDER BY fotoid LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());

$contar = "SELECT * FROM fotos ORDER BY fotoid";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);

// Imprimiendo los resultados
while($array = mysql_fetch_array($cad)) {
echo $array['titulo']."<br>";
}

// Cerramos la conexión a la base
$con=mysql_close($con);

// Creando los enlaces de paginación
echo "<p>";
if ($pg <> 0)
{
$url = $pg - 1;
echo "<a href='diap-usuarios-provaaaa6.php?pg=".$url."'>« Anterior</a> ";
}
else {
echo " ";
}

for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $pg) {
echo "<font face=Arial size=2 color=ff0000><b> $i </b></font>";
}
else {
echo "<a href='diap-usuarios-provaaaa6.php?pg=".$i."'>".$i."</a> ";
}
}

if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='diap-usuarios-provaaaa6.php?pg=".$url."'>Siguiente »</a>";
}
else {
echo " ";
}
echo "</p>";
?>
  #5 (permalink)  
Antiguo 29/08/2008, 02:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: paginador no vincula foto !!???

¿¿¿¿¿¿de donde sale el $row_paginador?????
  #6 (permalink)  
Antiguo 29/08/2008, 02:31
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: paginador no vincula foto !!???

sale del juego de registros creado por Dreamweaver:
Es esto lo que preguntas ??? espero que si...

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$currentPage = $_SERVER["PHP_SELF"];

$maxRows_fotospersonal = 1;
$pageNum_fotospersonal = 0;
if (isset($_GET['pageNum_fotospersonal'])) {
$pageNum_fotospersonal = $_GET['pageNum_fotospersonal'];
}
$startRow_fotospersonal = $pageNum_fotospersonal * $maxRows_fotospersonal;

mysql_select_db($database_mibase, $mibase);
$query_fotospersonal = "SELECT * FROM fotos";
$query_limit_fotospersonal = sprintf("%s LIMIT %d, %d", $query_fotospersonal, $startRow_fotospersonal, $maxRows_fotospersonal);
$fotospersonal = mysql_query($query_limit_fotospersonal, $mibase) or die(mysql_error());
$row_fotospersonal = mysql_fetch_assoc($fotospersonal);

if (isset($_GET['totalRows_fotospersonal'])) {
$totalRows_fotospersonal = $_GET['totalRows_fotospersonal'];
} else {
$all_fotospersonal = mysql_query($query_fotospersonal);
$totalRows_fotospersonal = mysql_num_rows($all_fotospersonal);
}
$totalPages_fotospersonal = ceil($totalRows_fotospersonal/$maxRows_fotospersonal)-1;

$queryString_fotospersonal = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_fotospersonal") == false &&
stristr($param, "totalRows_fotospersonal") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_fotospersonal = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_fotospersonal = sprintf("&totalRows_fotospersonal=%d%s", $totalRows_fotospersonal, $queryString_fotospersonal);
?>
  #7 (permalink)  
Antiguo 29/08/2008, 04:42
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: paginador no vincula foto !!???

Corrígeme si me equivoco (el código es un poco lioso), lo que se almacena en el campo 'foto' de la tabla 'fotos' es <img src="subir-fotos-personal/diapositivas/<?php echo $row_paginador['foto']; ?>"> donde <?php echo $row_paginador['foto']; ?> es el nombre de la foto (foto.jpg por ejemplo).

Lo que no veo en el código, y es lo que te preguntaba, son, la llamada de $row_paginador, ni tampoco la insercción a la tabla 'fotos' del contenido del campo 'foto'.

El código que muestras es más o menos el tuyo pero generado por Dreamweaver (que como te he dicho antes, es un poco lioso).

Podrías comprobar que el contenido del campo 'foto' se guarda correctamente en la BBDD comprobando el código resultante generado en la parte de usuario (HTML), o directamente en la BBDD ya que al haber ' y " en el contenido de campo puede haber dado lugar a que no se haya rellenado correctamente.

Si no es así, podrías mostrar el código de insercción del campo y el código de obtención de los datos de $row_paginador[] (mi pregunta ????)

De antemano doy por hecho que la url de la página está correcta.

Un saludo.
  #8 (permalink)  
Antiguo 29/08/2008, 07:01
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Antetodo disculpa mi poca claridad en las respuestas pues no soy programador.
Lo que guarda en el campo "foto"de la tabla"fotos" es el nombre del archibo"ejemplo: moto.jpg es lo que se queda registrado en el campo "foto""
Respecto a tu pregunta, el campo "foto" queda perfectamente guardado el nombre del archobo "moto.jpg" cuando el usuario envia la foto.
Voy a ver si encuentro lo del codigo que me pides de la insercion del campo y la obtencion de datos.

Perdona pero no entiendo lo de la $row , estoy buscando por google la definicion y la aplicacion que tiene pero no encuentro nada asi que no se que es lo que necesitas... lo siento...

Primero hago esto para recoger la id del registro :


<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO fotos (nombre, usuario, lugarfoto, descripcion, foto) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['usuario'], "text"),
GetSQLValueString($_POST['lugarfoto'], "text"),
GetSQLValueString($_POST['descripcion'], "text"),
GetSQLValueString($_POST['foto'], "text"));

mysql_select_db($database_mibase, $mibase);
$Result1 = mysql_query($insertSQL, $mibase) or die(mysql_error());

$id_ultimo = mysql_insert_id(); //recogemos la id del ultimo insert, el de arriba
$_SESSION['id'] = $id_ultimo; // guardamos la variable id en una variable de sesion asi al enviar la foto se guardara en la id registrada


$insertGoTo = "enviar-fotos-paso2_personal_restringido.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>

El formulario a rellenar que se gurda en Base de datos es este:

<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">Nombre:</td>
<td><input name="nombre" type="text" onMouseOver="MM_showHideLayers('Layer8','','show') " value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Usuario:</td>
<td><input type="text" name="usuario" value="<?php echo $_SESSION['MM_Username']; ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Lugarfoto:</td>
<td><input type="text" name="lugarfoto" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Descripcion:</td>
<td><textarea name="descripcion" cols="32" rows="8"></textarea></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">&nbsp;</td>

<td><input type="submit" value="Enviar datos"></td>
</tr>
</table>
<input type="hidden" name="foto" value="">
<input type="hidden" name="MM_insert" value="form1">
</form>

La foto los usuarios la envian asi:

<form action="subir_archivo_personal-restringido.php" method="POST" enctype="multipart/form-data" name="form1">
<p align="center">
<input name="archivo" type="file" id="archivo" onMouseOver="MM_showHideLayers('Layer11','','show' );MM_showHideLayers('Layer11','','show')" value="" size="32" />
<input type="submit" name="Submit" value="Enviar" />
</p>
<div class="Estilo83" id="Layer11" onfocus="MM_showHideLayers('Layer11','','show')">< span class="Estilo85">Los nombres de los archivos deben constar de letras y numero tansolo.</span> <span class="Estilo73 Estilo84">El archibo o foto que vas a enviar no puede tener caracteres especiales ( no reconoce los signos &quot;()!?&iquest;_-&amp;%$ entre otros, ) </span></div>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">
<label></label>
</p>
<p align="center" class="Estilo79 Estilo40">
<input name="radiobutton" type="radio" value="radiobutton" checked>
<span class="Estilo86"><span class="Estilo87">Enviando la foto nos das permiso para que podamos publicar la imagen<em><strong> en nuestra web</strong></em></span>. </span></p>
<p align="center">
<label></label>
<label></label>
&nbsp;</p>
</form>

Asi recogo la $row_paginador:


mysql_select_db($database_mibase, $mibase);
$query_paginador = "SELECT * FROM fotos";
$paginador = mysql_query($query_paginador, $mibase) or die(mysql_error());
$row_paginador = mysql_fetch_assoc($paginador);
$totalRows_paginador = mysql_num_rows($paginador);

Alguna sugerencia ?

Última edición por GatorV; 31/08/2008 a las 20:21
  #9 (permalink)  
Antiguo 01/09/2008, 00:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: paginador no vincula foto !!???

Este código sirve para subir la foto:

<form action="subir_archivo_personal-restringido.php" method="POST" enctype="multipart/form-data" name="form1">
<p align="center">
<input name="archivo" type="file" id="archivo" onMouseOver="MM_showHideLayers('Layer11','','show' );MM_showHideLayers('Layer11','','show')" value="" size="32" />
<input type="submit" name="Submit" value="Enviar" />
</p>
<div class="Estilo83" id="Layer11" onfocus="MM_showHideLayers('Layer11','','show')">< span class="Estilo85">Los nombres de los archivos deben constar de letras y numero tansolo.</span> <span class="Estilo73 Estilo84">El archibo o foto que vas a enviar no puede tener caracteres especiales ( no reconoce los signos &quot;()!?&iquest;_-&amp;%$ entre otros, ) </span></div>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">
<label></label>
</p>
<p align="center" class="Estilo79 Estilo40">
<input name="radiobutton" type="radio" value="radiobutton" checked>
<span class="Estilo86"><span class="Estilo87">Enviando la foto nos das permiso para que podamos publicar la imagen<em><strong> en nuestra web</strong></em></span>. </span></p>
<p align="center">
<label></label>
<label></label>
&nbsp;</p>
</form>

Pero no veo el encargado de almacenarla (ahí puede estar el error)
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 08:49.