Foros del Web » Programando para Internet » PHP »

pOriblema con mi libro de visita

Estas en el tema de pOriblema con mi libro de visita en el foro de PHP en Foros del Web. Hola bueno tengo una duda hacerca de mi libro de visitas que estoy elaborando. bueno mi problema es que me salen estos errores y no ...
  #1 (permalink)  
Antiguo 15/01/2004, 18:31
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
pOriblema con mi libro de visita

Hola bueno tengo una duda hacerca de mi libro de visitas que estoy elaborando.
bueno mi problema es que me salen estos errores y no me inserta la firma
los errores son:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/webcindario/ixtladj/libro.php on line 44

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/webcindario/ixtladj/libro.php on line 79

si me podrian ayudar
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #2 (permalink)  
Antiguo 15/01/2004, 21:29
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Así como así... creo que nadie va a poder decirte cuál es el error... simplemente que el parámetro que le has pasado a la función mysql_fetch_object() en la línea 44 no es válido.

Igual que el parámetro que le pasas a mysql_free_result() en la línea 79...

Escribe aquí un poco del código que utilizas para poder detectar el error... Sin duda el error está en alguna línea previa a la 44 de tu código donde dice algo como:
$result = mysql_query(.....etc, etc..

Pero así, sin ver el código que estás utilizando sólo nos pondríamos a adivinar. Postea un poco de código.

Saludos
  #3 (permalink)  
Antiguo 16/01/2004, 07:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si usas estructuras tipo:

Código PHP:
$nose=mysql_query($sql) or die (mysql_error()); 
Podras localizar el error más fácilmente .. Sobre todo por qué esos errores suelen ser de SQL (sintax de tu sentencia SQL) o bien de conexión a tu BD (error seleccionando una BD . .o conectando).

En otras ocasiones si usas SQL con paso de variables PHP; ejemplo:

Código PHP:
$sql="SELECT * FROM tabla WHERE nose='".$nose."'"
En esos casos .. si $nose no toma el valor esperado .. suele ocasionar esos problemas .. Pero el error que dá es Msyql y sobre la sintax empleada "blablabla error .. blabla near ..blabla" .. pero en el fondo suele ser eso.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 17/01/2004, 00:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno aqui les pongo el codigo que uso para el libro de visitas

<table align="center" width="550" cellspacing="2" cellpadding="8" border="0" bgcolor="#ffffff">
<tr>
<td>
<h1>Libro de visitas</h1>
<?
//conecto con la base de datos
$conn = mysql_connect("mysql.webcindario.com","ixtladj","s amuel");
mysql_select_db("ixtladj@localhost",$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 10";

//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="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=\"index.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,150);
$email=substr($email,0,80);

//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 librovisitas_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=".">Volver al libro de visitas</a></b></div>
<?
}

mysql_close($conn);
?>



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

espero y ahora si me puedan ayudar
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #5 (permalink)  
Antiguo 17/01/2004, 13:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te faltó el código de:

formul_mensaje.html

Por qué .. en tu código tienes un gran lio sobre como recoges las variables de tu formulario o de donde vengan.

Por un lado usas $HTTP_POST_VARS .. por otro $_GET .. es decir usas los arrays superglobales y los simples .. Debes usar uno u otro método pero no mezclarlos.

A su vez (como no se vé el formulario que usas) . no se vé si tus variables las envias por GET o por POST .. (o ambas simultaneamente parte en GET y parte en POST).

También . si leistes mi mensaje anterior te recomendé que usases el "or die (mysql_error())" en tu mysql_query() ahí veras el mensaje de error de Mysql exacto. Usalo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 17/01/2004, 13:21
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Como ya te dijo Cluster.. es mejor forzar a que MySql te muestre el error... la línea donde haces el query:
Código PHP:
$resultid mysql_query($ssql,$conn); 
Ponla así:
Código PHP:
$resultid mysql_query($ssql,$conn) or die("error en query $ssql: ".mysql_error()); 
esto no arreglará nada, pero de esa forma al presentarse el error, la ejecución del script se detendrá y te dará u informe un poco más detallado...

Igual... no olvides poner las comillas simples a los valores en la sentencia sql... la sintaxis correctaes así:
Código PHP:
$ssql .= " where id_librovisitas_php <= '$vermas'"
Creo que con este cambio ya funcionará bien...

saludos

Última edición por jpinedo; 17/01/2004 a las 13:26
  #7 (permalink)  
Antiguo 17/01/2004, 23:30
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
buen aqui esta el formulario de mi libro

<form name=librovisitas action="index.php" method="post">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td class=titcol>&nbsp;<b>Firma el Libro de Visitas</b></td>
</tr>
<tr>
<td class=fuente8>&nbsp;D&eacute;janos tu mensaje en el libro de visitas y danos tu opini&oacute;n del sitio
<br>
<br>
</td>
</tr>
<tr>
<td>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td class=fuente8 align="center">
Nombre
<br>
<input type="Text" name="nombre" size="20" maxlength="150">
<br>
<br>
Email
<br>
<input type="Text" name="email" size="20" maxlength="100">
<br>
<br>
Valoración
<br>
<select name="valoracion">
<option value=1>Repelente
<option value=2>Mal
<option value=3 selected>Regular
<option value=4>Bien
<option value=5>Fant&aacute;stica
</select>
</td>
<td ALIGN=CENTER class=fuente8 valign="middle">
Comentarios:
<br>
<textarea name="comentario" cols="30" rows="7"></textarea>
</td>
</tr>
<tr>
<td colspan=2 align=center class=fuente8>
<br>
<input type="submit" value=" Enviar la firma al libro de visitas ">
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #8 (permalink)  
Antiguo 17/01/2004, 23:58
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
bueno pues gracias ya he solucionado mi problema gracias
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
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 12:22.