Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/01/2011, 14:27
Avatar de ale_dla
ale_dla
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Crear carpetas cuando se crea un tema

Hola a todos!
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&iacute;tulo: <input type="text" name="topic_subject" class="input_title" /><br />
                    Categor&Iacute;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 />';
 
?>
No se cual me conviene mas si usar asi para ver el tem topic.php?id= o usar carpetas.
Quien pueda ayudarme se los agradezco!
Saludos!