Obtener id del siguiente registro en base de datos
En el curso aprendi como hacer el link con el titulo entre "-" y un numero adicional que era un segundo aleatorio.
Mi duda ahora es como hacerlo no con un numero aleatorio sino con el ID de la noticia y como adicional el titulo pero que no sea necesario, o sin eso sino.
Por ejemplo mi link es:
http://mtbeat.com/noticias/index.php?noticia=6
Quisiera que quede de la siguiente forma:
http://mtbeat.com/noticias/6 o http://mtbeat.com/noticias/6/titulo
Mi duda ahora es como hacerlo no con un numero aleatorio sino con el ID de la noticia y como adicional el titulo pero que no sea necesario, o sin eso sino.
Por ejemplo mi link es:
http://mtbeat.com/noticias/index.php?noticia=6
Quisiera que quede de la siguiente forma:
http://mtbeat.com/noticias/6 o http://mtbeat.com/noticias/6/titulo
0
Puntos
Puntos
1819
Visitas
Visitas
8
Resp
Resp
Por miguelsirna hace 128 meses
Principiante
Respuesta #1
hola miguel pon tu código php de la pagina que agrega la noticia solo el php vale? intentare ayudarte saludos
Respuesta #2
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO m_post (titulo, seo, keywords, descripcion, noticia, categoria, autor, fecha) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", GetSQLValueString($_POST['titulo'], "text"), GetSQLValueString(seo($_POST['titulo']), "text"), GetSQLValueString(keywords_auto($_POST['titulo']), "text"), GetSQLValueString(strip_tags($_POST['noticia']), "text"), GetSQLValueString($_POST['noticia'], "text"), GetSQLValueString($_POST['categoria'], "int"), GetSQLValueString($_POST['autor'], "int"), GetSQLValueString($_POST['fecha'], "date")); mysql_select_db($database_conexion, $conexion); $Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error()); $insertGoTo = "agregarpost.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); }Yo solo quisiera el numero del id si lo del titulo adicional es necesario para entrar en la web me daria igual aunque seria mejor que se pueda entrar tanto solo con el id y con ambos como cuevana
0
Puntos
Puntos
Por miguelsirna hace 128 meses
Principiante
Respuesta #3
lo que quieres es utilizar la id del articulo para la url del mismo, muchas paginas web lo hacen así de hecho si te fijas en este foro después de la última actualización lo tenemos así
puedes usar un SELECT MAX(id) FROM m_post pero seguro que ya estarás arto de leerlo en otros foros y no llegas a nada jaja te voy a dar una respuesta distinta
yo te eh dado la base ahora tu tienes que darle a coco xd
puedes usar un SELECT MAX(id) FROM m_post pero seguro que ya estarás arto de leerlo en otros foros y no llegas a nada jaja te voy a dar una respuesta distinta
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO m_post (titulo, seo, keywords, descripcion, noticia, categoria, autor, fecha) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", GetSQLValueString($_POST['titulo'], "text"), GetSQLValueString(seo($_POST['titulo']), "text"), GetSQLValueString(keywords_auto($_POST['titulo']), "text"), GetSQLValueString(strip_tags($_POST['noticia']), "text"), GetSQLValueString($_POST['noticia'], "text"), GetSQLValueString($_POST['categoria'], "int"), GetSQLValueString($_POST['autor'], "int"), GetSQLValueString($_POST['fecha'], "date")); mysql_select_db($database_conexion, $conexion); $Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error()); mysql_select_db($database_conexion, $conexion); $query_Recordset1 = sprintf("SELECT id FROM m_post WHERE titulo=%s AND seo= %s",$_POST['titulo'],seo($_POST['titulo'])); $Recordset1 = mysql_query($query_Recordset1, $conexion) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1); mysql_free_result($Recordset1); $id_del_registro=$row_Recordset1["id"];//En esta variable tienes justo la id de ese registro $insertGoTo = "agregarpost.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); }en la variable $id_del_registro es donde tienes almacenada justo la id del registro que acabas de hacer ahora solo te queda pasarla a la función para utilizarla en la url o crearla directamente en esa pagina
yo te eh dado la base ahora tu tienes que darle a coco xd
Respuesta #4
Quieres decir que aplique este código:
mysql_select_db($database_conexion, $conexion); $query_Recordset1 = sprintf("SELECT id FROM m_post WHERE titulo=%s AND seo= %s",$_POST['titulo'],seo($_POST['titulo'])); $Recordset1 = mysql_query($query_Recordset1, $conexion) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1); mysql_free_result($Recordset1); $id_del_registro=$row_Recordset1["id"];//En esta variable tienes justo la id de ese registroEn la función SEO?
0
Puntos
Puntos
Por miguelsirna hace 128 meses
Principiante
Respuesta #5
No se tendría que hacer otro arreglo en el HTACCESS?
En el curso el HTACCESS es el siguiente:
En el curso el HTACCESS es el siguiente:
#Url amigables Options +FollowSymlinks RewriteEngine on RewriteRule ^(.+).html verpost.php?recordID=$1
0
Puntos
Puntos
Por miguelsirna hace 128 meses
Principiante
Respuesta #6
no si lo haces así no te funcionaria date cuenta que los dos parámetros que recibe el WHERE son de esa pagina por lo tanto tiene que estar en esa pagina, lo que yo haria es un UPDATE del campo seo con esta estructura
o podrías montarla de otra forma
$urlConIdPreparada= seo($_POST['titulo'].$id_del_registro);te quedaría algo así tu_web.com/como-hacer-bla-bla-bla/34
o podrías montarla de otra forma
$urlConIdPreparada= $id_del_registro.'/'.seo($_POST['titulo']);te quedaría así tu_web.com/34/como-hacer-bla-bla-bla/
Respuesta #7
No entiendo muy bien si estoy insertando la noticia como hago el update?
0
Puntos
Puntos
Por miguelsirna hace 128 meses
Principiante
Respuesta #8
Ya me funciona http://mtbeat.com/noticias/9/spielberg-y-cooper-juntos.html y http://mtbeat.com/noticias/9.html pero quisiera cortarle lo que dice ".html" creo que eso tiene que ver con el HTACCESS el cual es el siguiente:
#Url amigables Options +FollowSymlinks RewriteEngine on RewriteRule ^(.+).html index.php?noticia=$1He intentado borrando lo que dice ".html" pero no me ha funcionado.
0
Puntos
Puntos
Por miguelsirna hace 128 meses
Principiante