Foros del Web » Programando para Internet » PHP »

Problema al redireccionar dp de enviar un comentario

Estas en el tema de Problema al redireccionar dp de enviar un comentario en el foro de PHP en Foros del Web. Buenas, no consigo solucionar que dp de enviar un comentario me reenvie a una página en donde aparezca, la noticia, dp los comentarios y te ...
  #1 (permalink)  
Antiguo 06/10/2006, 05:19
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Exclamación Problema al redireccionar dp de enviar un comentario

Buenas, no consigo solucionar que dp de enviar un comentario me reenvie a una página en donde aparezca, la noticia, dp los comentarios y te ponga en pantalla el que enviaste, el código que tengo es:

Código PHP:
  //Ingresamos los comentarios en la tabla
  
$sql "INSERT INTO noticias (id,autor,titulo,email,articulo,identificador,fecha,ult_respuesta)"
  
$sql.= "VALUES ($id,'$autor','$titulo','$email','$articulo','$ident',NOW(),NOW())"
  
$rs mysql_query($sql$con) or die("Error al grabar un mensaje: ".mysql_error); 
$ult_id mysql_insert_id($con);   
  
/* si es un comentario actualizamos los datos */ 
if(!empty($ident)) 

    
$sql "UPDATE noticias SET respuestas=respuestas+1, ult_respuesta=NOW()"
    
$sql.= " WHERE id = '$identificador'"
    
$rs mysql_query($sql$con);
    
header("Location: ver_noticia.php?id=".$id);
    exit(); 

  
  
header("Location: ver_noticia.php?id=".$id);
  
?> 
En vez de eso, lo que hace es mostrarme arriba del todo dos errores:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... on line 19

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in ... on line 25

Y después las noticias por fecha mas nueva descendente. ¿En donde falla?


El código de estos dos errores es:

Código PHP:
$result=mysql_query("SELECT * FROM noticias WHERE id=$id"
  ,$connect);
  }
  //Una vez seleccionado el registro, mostramos la noticia completamente
  ?>
  <BODY leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" link="#666699" bgcolor="#009999">
  <?php  
  
while($row=mysql_fetch_array($result)) //19
  
{
  
$result2=mysql_query("SELECT * FROM noticias WHERE id=$id",$connect);
  
$totalcomentarios=mysql_num_rows($result2);
  echo 
'<h2>'.$row[titulo].'</h2><br><p>'.$row[articulo].'</p><br><div id="noticia">'.$row[autor].' | '.$row[fecha].' | '.$row[categoria].' | <a href="ver_noticia.php?id='.$row[id].'">comentarios</a> | <a href="editar_noticia.php?id='.$row[id].'">editar</a>| <a href="borrar_noticia.php?id='.$row[id].'">borrar</a> </div>';
  }
  
mysql_free_result($result); //25
?>
Un Saludo y Gracias.
  #2 (permalink)  
Antiguo 06/10/2006, 05:55
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Cita:
$sql = "UPDATE noticias SET respuestas=respuestas+1, ult_respuesta=NOW()";
$sql.= " WHERE id = '$identificador'";
No sé cómo te funciona esta consulta poniendo un id q usas como numérico entre comillas simples cuando los numéricos van sin comillas.

Luego sobre los 2 errores lo q te está diciendo es q la consulta ha fallado y x lo tanto no devuelve resultados y x eso no funciona el bucle while.

Antes q nada yo creo q deberías hacer:

Código PHP:
if (isset ($_GET['id'])) {
     
$id=$_GET['id'];//Sin olvidar usar addslashes si no estan las gpc quotes activas en el php.ini
     //Y ahora la consulta q muestra la 
     
$result=mysql_query("SELECT * FROM noticias WHERE id=$id" 
  
,$connect); //Esta es la que despues cierra otra llave }. La primera del segundo código expuesto.
     //Resto de tu codigo

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #3 (permalink)  
Antiguo 06/10/2006, 07:51
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Ok, ya no me salen los errores, eran las comillas, debi de ponerlas ayer por equivacion dp de varias horas de desbarajustas arreglando cosas y dp no me fije en ellas, Gracias.

Ahora solo me queda el que dp de enviar el comentario redireccione a la pag en donde muestra, arriba la noticia, y debajo los comentarios ordenados por fecha DESC. Lo que pasa es q no soy capaz y lo que hace es enviarme a una apgina con las noticias en fecha DESC.

Código PHP:
  /* si es un comentario actualizamos los datos */ 
if(!empty($ident)) 

    
$sql "UPDATE noticias SET respuestas=respuestas+1, ult_respuesta=NOW()"
    
$sql.= " WHERE id = $identificador"
    
$rs mysql_query($sql$con);
    
header("Location: ver_noticia.php?id=".$id);
    exit(); 

  
  
header("Location: ver_noticia.php?id=".$id);
  
?> 
Este es el código que deberia de redireccionar, pero que no doy con el correcto.

Un Saludo y Gracias.
  #4 (permalink)  
Antiguo 06/10/2006, 09:43
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Fíjate q miras si viene o no relleno $ident, luego usas en la consulta $identificador y luego al redireccionar $id...

¿Estas hablando de la misma variable con 3 formas diferentes? xq sino no entiendo a q viene mirar si $ident esta vacio y pasar $id... no lo entiendo.

Saludos.

AGREGO: Asegúrate q no hay salida html antes del header. Sé q es obvio y q seguramente lo sabrás pero revísalo x si akaso q no haya ninguna línea siquiera entre una a pertura y cierre de php.
__________________
La muerte es un camino que todos debemos recorrer...

Última edición por djreficul; 06/10/2006 a las 10:06
  #5 (permalink)  
Antiguo 06/10/2006, 16:10
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
el $ident lo sustitui en todo el codigo por $identificador.

Son dos variables, la id, que es la primera y el numero de la noticia y el identificador que es el que se le pone a un comentario, ej:

Noticia id=1
Comentario id=2 identificador=1

Seria un comentario a la noticia de id=1

Mira, el código entero es este:

Código PHP:
<?
require('configuracion.php');
  
//recibimos las variables enviadas por el formulario
  
$id=$_POST[id];
  
$autor=$_POST[autor];
  
$titulo=$_POST[titulo];
  
$email=$_POST[email];
  
$articulo=$_POST[articulo];
  
$identificador $_POST[identificador]; 
  
//conectamos a la base
  
$connect=mysql_connect("imysql00","i3796761","gd47xg1oyawgs270") or die ("No se pudo conectar a la base de datos");
  
//Seleccionamos la base
  
mysql_select_db("i3796761",$connect);
  
//Ingresamos los comentarios en la tabla
  
$sql "INSERT INTO noticias (id,autor,titulo,email,articulo,identificador,fecha,ult_respuesta)"
  
$sql.= "VALUES ($id,'$autor','$titulo','$email','$articulo','$identificador',NOW(),NOW())"
  
$rs mysql_query($sql$con) or die("Error al grabar un mensaje: ".mysql_error); 
$ult_id mysql_insert_id($con);   
  
/* si es un comentario actualizamos los datos */ 
if(!empty($identificador)) 

    
$sql "UPDATE noticias SET respuestas=respuestas+1, ult_respuesta=NOW()"
    
$sql.= " WHERE id = $identificador"
    
$rs mysql_query($sql$con);
    
header("Location: ver_noticia.php?id=".$id);
    exit(); 
}   
  
header("Location: ver_noticia.php?id=".$id);
  
?>
Un Saludo y Gracias.
  #6 (permalink)  
Antiguo 09/10/2006, 05:34
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
El problema que tengo es que dp de enviar el comentario redireccione a la pag en donde muestra, arriba la noticia, y debajo los comentarios ordenados por fecha DESC. Lo que pasa es q no soy capaz y lo que hace es enviarme a una pagina con las noticias en fecha DESC.

Código PHP:
<?
require('configuracion.php');
  
//recibimos las variables enviadas por el formulario
  
$id=$_POST[id];
  
$autor=$_POST[autor];
  
$titulo=$_POST[titulo];
  
$email=$_POST[email];
  
$articulo=$_POST[articulo];
  
$identificador $_POST[identificador]; 
  
//conectamos a la base
  
$connect=mysql_connect("imysql00","i3796761","gd47xg1oyawgs270") or die ("No se pudo conectar a la base de datos");
  
//Seleccionamos la base
  
mysql_select_db("i3796761",$connect);
  
//Ingresamos los comentarios en la tabla
  
$sql "INSERT INTO noticias (id,autor,titulo,email,articulo,identificador,fecha,ult_respuesta)"
  
$sql.= "VALUES ($id,'$autor','$titulo','$email','$articulo','$identificador',NOW(),NOW())"
  
$rs mysql_query($sql$con) or die("Error al grabar un mensaje: ".mysql_error); 
$ult_id mysql_insert_id($con);   
  
/* si es un comentario actualizamos los datos */ 
if(!empty($identificador)) 

    
$sql "UPDATE noticias SET respuestas=respuestas+1, ult_respuesta=NOW()"
    
$sql.= " WHERE id = $identificador"
    
$rs mysql_query($sql$con);
    
header("Location: ver_noticia.php?id=".$id);
    exit(); 
}   
  
header("Location: ver_noticia.php?id=".$id);
  
?>
Un Saludo y Gracias.
  #7 (permalink)  
Antiguo 09/10/2006, 10:20
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Ok, ya lo solucione, tenía mal el header y lo arregle escribiendo esto:

Código PHP:

    
$sql "UPDATE noticias SET respuestas=respuestas+1, ult_respuesta=NOW()"
    
$sql.= " WHERE id = $identificador"
    
$rs mysql_query($sql$con);
    
header("Location: ver_noticia.php?id=$identificador#$ult_id");
    exit(); 

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 00:19.