Quiero hacer una consulta,en el foro que estoy haciendo tengo que cuando un usuario crea un nuevo tema puede verlo pero con el link asi forums/topic.php?id=$row['topic_id']
La consulta que hago es como hago para que sea una carpeta con el titulo del tema y qeu en el index vaya al tema creado.
Mi codigo php para crar nuevo tema es este:
Código PHP:
<?php
echo '<br />';
//Conexion con la Base de Datos
$link=@dbConnect();
if (!$link) {
echo "Error conectando a la Base de Datos.";
}
if ($link =="202") {
echo "Error seleccionando la Base de Datos.";
}
echo '<h2>Nuevo tema</h2>';
if(isset($_SESSION['id']))
{
//el usuario esta logueado
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
// el formulario no ha sido publicado todavía
// recuperar las categorías de la base de datos para su uso en el menú desplegable
$sql = "SELECT
cat_id,
cat_name,
cat_description
FROM
categories";
$result = mysql_query($sql);
if(!$result)
{
//la consulta falla
echo 'Error al seleccionar desde la base de datos. Intente de nuevo.';
}
else
{
if(mysql_num_rows($result) == 0)
{
//no hay categorias creadas
if($_SESSION['user_level'] == 1)
{
echo 'No hay categorias creadas.';
}
else
{
echo 'No puedes crear un tema.Contacta con el administrador.';
}
}
else
{
echo '<form method="post" action="" class="form_nuevo" onsubmit="return validate_form ( );" enctype="multipart/form-data" name="topicform" id="topicform">
Título: <input type="text" name="topic_subject" class="input_title" /><br />
CategorÍa:';
echo '<select name="topic_cat">';
while($row = mysql_fetch_assoc($result))
{
echo '<option value="' . $row['cat_id'] . '" class="input_cat">' . $row['cat_name'] . '</option>';
}
echo '</select><br />';
echo 'Post: <br /><textarea name="post_content" id="post_content" rows="25" cols="100%" /></textarea><br /><br />
<div id="wrap"><input type="submit" value="Enviar nuevo tema" class="button" /></div>
</form>';
}
}
}
else
{
$query = "BEGIN WORK;";
$result = mysql_query($query);
if(!$result)
{
echo 'Se produjo un error al crear el tema. Por favor, intentelo de nuevo mas tarde.';
}
else
{
// el formulario se ha publicado, entonces lo guarda
// inserta el tema en la tabla los primeros temas, y luego guarda el tema en la tabla de post,topics.
$sql = "INSERT INTO
topics(topic_subject,
topic_date,
topic_cat,
topic_by)
VALUES('" . mysql_real_escape_string($_POST['topic_subject']) . "',
NOW(),
" . mysql_real_escape_string($_POST['topic_cat']) . ",
" . $_SESSION['id'] . "
)";
$result = mysql_query($sql);
if(!$result)
{
//muestro el error
echo 'Se produjo un error al insertar el tema. Por favor, intEntelo de nuevo mas tarde.<br /><br />' . mysql_error();
$sql = "ROLLBACK;";
$result = mysql_query($sql);
}
else
{
// la consulta trabajo la primera vez, ahora comienza la segunda consulta
// recupera el id del tema recien creado para el uso en la consulta de los temas
$topicid = mysql_insert_id();
$sql = "INSERT INTO
posts(post_content,
post_date,
post_topic,
post_by)
VALUES
('" . mysql_real_escape_string($_POST['post_content']) . "',
NOW(),
" . $topicid . ",
" . $_SESSION['id'] . "
)";
$result = mysql_query($sql);
if(!$result)
{
//algo salio mal, muestro el error
echo 'Se produjo un error al crear el tema. Por favor, intentelo de nuevo mas tarde.<br /><br />' . mysql_error();
$sql = "ROLLBACK;";
$result = mysql_query($sql);
}
else
{
$sql = "COMMIT;";
$result = mysql_query($sql);
echo '<a href="../forums/?id='. $topicid . '">Ver tema</a>';;
exit();
}
}
}
}
}
else
{
//el usuario no esta logueado
echo 'Ups.... tienes que <a href="../login.php">iniciar sesion</a> para crear un tema.';
}
echo '<br />';
?>
Quien pueda ayudarme se los agradezco!
Saludos!