Foros del Web » Programando para Internet » PHP »

Ayuda. php librodevisitas

Estas en el tema de Ayuda. php librodevisitas en el foro de PHP en Foros del Web. Vereis entrar en http://tododiver.es/librodevisitas.php. y darle a ver mas . y me sale dos errores.. son estos; Cita: Warning: mysql_fetch_object(): supplied argument is not a ...
  #1 (permalink)  
Antiguo 06/02/2008, 15:04
 
Fecha de Ingreso: enero-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Ayuda. php librodevisitas

Vereis entrar en http://tododiver.es/librodevisitas.php.


y darle a ver mas.


y me sale dos errores.. son estos;

Cita:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /homepages/19/d227422115/htdocs/librodevisitas.php on line 43

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /homepages/19/d227422115/htdocs/librodevisitas.php on line 78

bale. Ahora os doy el codigo..

Cita:
<html>
<head>
<title>Libro de visitas</title>
<link rel="STYLESHEET" type="text/css" href="C:\Documents and Settings\Pepe\Escritorio\Nueva carpeta/estilo.css">
</head>
<body>
<br>
<table align="center" width="550" cellspacing="2" cellpadding="8" border="0" bgcolor="#ffffff">
<tr>
<td>
<h1 align="center">Libro de visitas </h1>
<?
//conecto con la base de datos
$conn = mysql_connect("","","");
mysql_select_db("",$conn);


if (!$HTTP_POST_VARS)
{
//si no recibo nada por el formulario de firma del libro, muestro las firmas del libro
//construyo la sentencia SQL
$ssql = "SELECT * FROM librovisitas_php";

//se mostrarán las últimas fimas, aunque habrá un enlace en la parte de abajo que se podrá pulsar para ver más firmas
if (isset($_GET["vermas"]))
$ssql .= " where id_librovisitas_php<=" . $vermas;

//ordeno la sentencia y limito el numero de resultados
$ssql .= " ORDER BY id_librovisitas_php desc limit 11";

//tomo el juego de resultados
$resultid = mysql_query($ssql,$conn);
?>

Aqu&iacute; puedes leer los mensajes de los visitantes y tambi&eacute;n puedes dejar el tuyo utilizando el formulario de abajo.
<br>
<br>
<span class=fuente8><b>Muchas gracias por tu participaci&oacute;n</b></span>
<br>
<br>
<?
//muestro los datos en un bucle
$num_filas = 0;
while (($damefila=mysql_fetch_object($resultid)) && ($num_filas<10))
{
?>
<table align="center" width="100%" cellspacing="2" cellpadding="0" border="0">
<tr>
<td valign="top" class=fuente8><b>
<? //si el visitante no introdujo nombre muestro como nombre "Anónimo"
if ($damefila->nombre == "-"){
echo "Anónimo";
}elseif ($damefila->email != "-") {
echo '<a href="mailto:' . $damefila->email . '">' . $damefila->nombre . '</a>';
}else{
echo $damefila->nombre;
}
?></b>:<br>
</td></tr>
<tr><td bgcolor=cccccc colspan="2"><img src="../WINDOWS/Temp/images/pixeltrans.gif" width=1 height=1 border="0"></td></tr>
<td class=fuente8 valign="top">
<?echo strip_tags($damefila->comentario)?>
<td valign="top" align="right" nowrap class=fuente8>
Valoracion: <?echo $damefila->valoracion?>
</td>
</tr>
</table>

<br>
<?
$num_filas++;
} //termina el bucle while

//si quedan más valoraciones en el conjunto de resultados, muestro el enlace de "Ver más"
if ($damefila)
echo "<div align=center><b><a href=\"librodevisitas.php?vermas=$damefila->id_librovisitas_php\">Ver m&aacute;s mensajes</a></b></div><br>";

//libero el conjunto de resultados
mysql_free_result($resultid);

//incluyo el formulario para firmar
include ("formul_mensaje.html");
}
else
{
//estoy recibiendo datos del fomulario de firmas
//Formateamos un poco el formulario, por si acaso los datos son incorrectos

//eliminamos las etiquetas HTML y PHP de las cadenas de texto
$nombre = strip_tags($_POST["nombre"]);
$email = strip_tags($_POST["email"]);
$comentario = strip_tags($_POST["comentario"]);

//Cortamos las cadenas demasiado largas
$nombre=substr($nombre,0,20);
$email=substr($email,0,30);

//Comprobamos que el visitante se ha molestado en rellenar algo
if (strlen($nombre)==0 and strlen($email)==0 and strlen($comentario)==0)
{
?>
<div align="center"><b>Gracias por el envío</b>.<br><br>Te agradecer&iacute;amos, no obstante y si no resulta mucho esfuerzo, que rellenases alguno de los campos para dejar constancia de tu visita.</div>
<?
}else{
//si alguno de los campos falta prefiero colocar un guión o "sin comentarios"
if (!$nombre)$nombre="-";
if (!$email) $email="-";
if (!$comentario) $comentario="Sin comentarios";

//Generamos la ssql e insertamos el registro
$ssql = "INSERT INTO librodevisitas_php (nombre,email,valoracion,comentario) VALUES ('" . $nombre . "','" . $email . "'," . $_POST["valoracion"] . ",'" . $comentario . "')";
//echo $ssql . "<p>";
mysql_query($ssql,$conn);
?>
<div align="center"><b>Muchas gracias por tu participaci&oacute;n</b></div>
<?
}
?>
<br>
<br>
<div align="center"><b><a href="http://tododiver.es/librodevisitas.php">Volver al libro de visitas</a></b></div>
<?
}

mysql_close($conn);
?>

</td>
</tr>
</table>
<br>

</body>
</html>
conclusion que las lineas 43 y 78 son estas ;
Cita:
while (($damefila=mysql_fetch_object($resultid)) && ($num_filas<10))
Cita:
//libero el conjunto de resultados

Por que me sale esos 2 errores?
Gracias espero vuestra respuesta.

Última edición por altavoz; 06/02/2008 a las 16:39
  #2 (permalink)  
Antiguo 06/02/2008, 15:45
Avatar de Akiracr  
Fecha de Ingreso: septiembre-2006
Mensajes: 114
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Ayuda. php librodevisitas

Verifica que los nombres de las columnas y tablas esten igual que en la base de datos, incluyendo las mayusculas y minusculas igual
  #3 (permalink)  
Antiguo 06/02/2008, 16:12
 
Fecha de Ingreso: enero-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Ayuda. php librodevisitas

es esta la tabla

Cita:
CREATE TABLE librovisitas_php (
id_librovisitas_php int(11) unsigned NOT NULL auto_increment,
nombre varchar(150) NOT NULL,
email varchar(100) NOT NULL,
valoracion tinyint(4),
comentario text,
PRIMARY KEY (id_librovisitas_php)
);
ayuda plz
  #4 (permalink)  
Antiguo 06/02/2008, 16:58
 
Fecha de Ingreso: enero-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Ayuda. php librodevisitas

lo he pensado
y me gustaria que al escribir 10 comentarios, se cree automaticamente otra pagina de comentarios, y que solo se puedan 10 comentarios por pagina y cuando pase de 10.. que se cree otra pagina automaticamente.. asi sucesivamente.


y quiero que en esas paginas abajo del todo ponga ; Pag 1,2,3,4....y se vallan creando cada vez que se cree una pagina nueva.

Que tendria que anadir a mi codigo para tener todo eso?

mi codigo es este;
Cita:
<html>
<head>
<title>Libro de visitas</title>
<link rel="STYLESHEET" type="text/css" href="C:\Documents and Settings\Pepe\Escritorio\Nueva carpeta/estilo.css">
</head>
<body>
<br>
<table align="center" width="550" cellspacing="2" cellpadding="8" border="0" bgcolor="#ffffff">
<tr>
<td>
<h1 align="center">Libro de visitas </h1>
<?
//conecto con la base de datos
$conn = mysql_connect("","","");
mysql_select_db("",$conn);


if (!$HTTP_POST_VARS)
{
//si no recibo nada por el formulario de firma del libro, muestro las firmas del libro
//construyo la sentencia SQL
$ssql = "SELECT * FROM librovisitas_php";

//se mostrarán las últimas fimas, aunque habrá un enlace en la parte de abajo que se podrá pulsar para ver más firmas
if (isset($_GET["vermas"]))
$ssql .= " where id_librovisitas_php<=" . $vermas;

//ordeno la sentencia y limito el numero de resultados
$ssql .= " ORDER BY id_librovisitas_php desc limit 11";

//tomo el juego de resultados
$resultid = mysql_query($ssql,$conn);
?>

Aqu&iacute; puedes leer los mensajes de los visitantes y tambi&eacute;n puedes dejar el tuyo utilizando el formulario de abajo.
<br>
<br>
<span class=fuente8><b>Muchas gracias por tu participaci&oacute;n</b></span>
<br>
<br>
<?
//muestro los datos en un bucle
$num_filas = 0;
while (($damefila=mysql_fetch_object($resultid)) && ($num_filas<10))
{
?>
<table align="center" width="100%" cellspacing="2" cellpadding="0" border="0">
<tr>
<td valign="top" class=fuente8><b>
<? //si el visitante no introdujo nombre muestro como nombre "Anónimo"
if ($damefila->nombre == "-"){
echo "Anónimo";
}elseif ($damefila->email != "-") {
echo '<a href="mailto:' . $damefila->email . '">' . $damefila->nombre . '</a>';
}else{
echo $damefila->nombre;
}
?></b>:<br>
</td></tr>
<tr><td bgcolor=cccccc colspan="2"><img src="../WINDOWS/Temp/images/pixeltrans.gif" width=1 height=1 border="0"></td></tr>
<td class=fuente8 valign="top">
<?echo strip_tags($damefila->comentario)?>
<td valign="top" align="right" nowrap class=fuente8>
Valoracion: <?echo $damefila->valoracion?>
</td>
</tr>
</table>

<br>
<?
$num_filas++;
} //termina el bucle while

//si quedan más valoraciones en el conjunto de resultados, muestro el enlace de "Ver más"
if ($damefila)
echo "<div align=center><b><a href=\"librodevisitas.php?vermas=$damefila->id_librovisitas_php\">Ver m&aacute;s mensajes</a></b></div><br>";

//libero el conjunto de resultados
mysql_free_result($resultid);

//incluyo el formulario para firmar
include ("formul_mensaje.html");
}
else
{
//estoy recibiendo datos del fomulario de firmas
//Formateamos un poco el formulario, por si acaso los datos son incorrectos

//eliminamos las etiquetas HTML y PHP de las cadenas de texto
$nombre = strip_tags($_POST["nombre"]);
$email = strip_tags($_POST["email"]);
$comentario = strip_tags($_POST["comentario"]);

//Cortamos las cadenas demasiado largas
$nombre=substr($nombre,0,20);
$email=substr($email,0,30);

//Comprobamos que el visitante se ha molestado en rellenar algo
if (strlen($nombre)==0 and strlen($email)==0 and strlen($comentario)==0)
{
?>
<div align="center"><b>Gracias por el envío</b>.<br><br>Te agradecer&iacute;amos, no obstante y si no resulta mucho esfuerzo, que rellenases alguno de los campos para dejar constancia de tu visita.</div>
<?
}else{
//si alguno de los campos falta prefiero colocar un guión o "sin comentarios"
if (!$nombre)$nombre="-";
if (!$email) $email="-";
if (!$comentario) $comentario="Sin comentarios";

//Generamos la ssql e insertamos el registro
$ssql = "INSERT INTO librodevisitas_php (nombre,email,valoracion,comentario) VALUES ('" . $nombre . "','" . $email . "'," . $_POST["valoracion"] . ",'" . $comentario . "')";
//echo $ssql . "<p>";
mysql_query($ssql,$conn);
?>
<div align="center"><b>Muchas gracias por tu participaci&oacute;n</b></div>
<?
}
?>
<br>
<br>
<div align="center"><b><a href="http://tododiver.es/librodevisitas.php">Volver al libro de visitas</a></b></div>
<?
}

mysql_close($conn);
?>

</td>
</tr>
</table>
<br>

</body>
</html>
  #5 (permalink)  
Antiguo 06/02/2008, 17:28
 
Fecha de Ingreso: enero-2008
Mensajes: 132
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: Ayuda. php librodevisitas

$pagina=$_GET['pagina'];
if($pagina=="")
{
$pagina = 1;
}

$pagina = $pagina - 1;
$inicio = $pagina * 10;
$final = $inicio + 10;
$cuenta=0;

$resultado = mysql_query("SELECT * FROM ...";);

while ($datos = mysql_fetch_array($resultado))
{
$cuenta++;
if($cuenta > $inicio AND $cuenta < $final)
{
//Lo que quieras mostrar
}
}
  #6 (permalink)  
Antiguo 08/02/2008, 13:56
 
Fecha de Ingreso: enero-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Ayuda. php librodevisitas

Hola me pueden resolver primero estos errores ?
Cita:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /homepages/19/d227422115/htdocs/librodevisitas.php on line 43

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /homepages/19/d227422115/htdocs/librodevisitas.php on line 78
pueden verlo en http://tododiver.es/librodevisitas.php a darle a ver mas.



y mi siguiente duda es que donde pongo esto?

Cita:
Iniciado por Surfiction Ver Mensaje
$pagina=$_GET['pagina'];
if($pagina=="")
{
$pagina = 1;
}

$pagina = $pagina - 1;
$inicio = $pagina * 10;
$final = $inicio + 10;
$cuenta=0;

$resultado = mysql_query("SELECT * FROM ...";);

while ($datos = mysql_fetch_array($resultado))
{
$cuenta++;
if($cuenta > $inicio AND $cuenta < $final)
{
//Lo que quieras mostrar
}
}
no lo entiendo.. eso donde lo pongo?




Es que yo en verdad quiero un libro de viistas como este http://www.palimpalem.com/2/trucoteca/index.html?librovisit.php

Me podeis dar ese codigo de ese libro?
Lo puedo sacar ese codigo de alguna forma?

Última edición por altavoz; 08/02/2008 a las 14:19
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 17:17.