Foros del Web » Programando para Internet » PHP »

Usar dos tablas distintas para añadir registro

Estas en el tema de Usar dos tablas distintas para añadir registro en el foro de PHP en Foros del Web. Buenas. Llevo todo el dia creando mas o menos una web, mas que nada por practicar porque con mis conocimientos, aunque consiguiera crearla tal y ...
  #1 (permalink)  
Antiguo 04/05/2009, 12:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
Usar dos tablas distintas para añadir registro

Buenas.

Llevo todo el dia creando mas o menos una web, mas que nada por practicar porque con mis conocimientos, aunque consiguiera crearla tal y como la quiero, la seguridad seria tan baja que no duraria ni 1 semana con colores.

El caso es que ya he llegado a la creacion de formularios para añadir y tengo un problema que no consigo ver como hacerlo.

Tengo 2 tablas distintas. En una estarian las noticias y en la otra las categorias. Como es logico, cada noticia tiene una unica categoria que debe ser seleccionada al crear dicha noticia y con esto estoy totalmente en blanco.

He hecho un combo que de momento lo lleno a mano, ya luego hare que se llene solo cogiendo la tabla. Entonces mi pregunta es.

En la tabla de noticias deberia haber un campo llamado "categoria" para que, el formulario coja el nombre de una categoria y lo ponga ahi, entonces se podria imprimir o como?

Dejo el codigo usado para esto.

Código PHP
Código PHP:
$error false;

    
$titulo $_POST['titulo'];
    if( empty( 
$titulo ) ) {
        
$mensaje_titulo 'El título no puede estar vacio.';
        
$error true;
    }
    
    
$project $_POST['project'];
    if( empty( 
$project ) ) {
        
$mensaje_project 'Selecciona una categoria.';
        
$error true;
    }

    if( !
$error ) {
        
$query "INSERT INTO desarrollo (`id`,`titulo`,`fecha`,`content`, `autor`) VALUES (NULL, '" mysql_real_escape_string($titulo) . "', '" date('Y-m-d H:i:s'time()) . "', '" mysql_real_escape_string($texto) . "', '" mysql_real_escape_string($autor) . "');";
        
$res mysql_query($query$link);
    } 
Y el formulario en HTML

Código PHP:
<form action="Nueva-Noticia.php" method="post">
    <input type="hidden" name="autor" value="<?=$_SESSION['s_username']?>" />
    <TABLE class="principal">
        <TR>
            <TD>
                <TABLE class="crearD">
                    <TR>
                        <TD colspan="2">Nueva Noticia</TD>
                    </TR>
                    <TR>
                        <TD>Titulo</TD>
                        <TD><input type="text" name="titulo" /></TD>
                    </TR>
                    <TR>
                        <TD>Proyecto</TD>
                        <TD>
                            <select name="project">
                                <option selected="selected"></option>
                                <option name="Cat1">Categoria 1</option>
                                <option name="Cat2">Categoria 2</option>
                            </select>
                        </TD>
                    </TR>
                    <TR>
                        <TD>Descripción</TD>
                        <TD><textarea cols="30" rows="5" name="texto"></textarea></TD>
                    </TR>
                    <TR>
                        <TD><input type="submit" /></TD>
                    </TR>
                </TABLE>
            </TD>
        </TR>
    </TABLE>
</form>
Ahora mismo, tal y como esta todo funciona (menos la sesion que aun no la tengo hecha). Lo unico que quiero ahora es que el combo funcione y que si tengo Cat1 seleccionada, la noticia salga como Categoria 1 y no como una al azar o la misma noticia 5 veces, 1 igual por cada categoria xD

Agradeceria cualquier ayuda.
Saludos (:
  #2 (permalink)  
Antiguo 04/05/2009, 15:26
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Usar dos tablas distintas para añadir registro

Que tal vendetta

Considero que en el foro de php recibiras una mejor respuesta a tu pregunta.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 04/05/2009, 15:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Usar dos tablas distintas para añadir registro

Tema trasladado desde MySQL

http://www.forosdelweb.com/f21/funci...-datos-413499/
  #4 (permalink)  
Antiguo 04/05/2009, 16:13
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Usar dos tablas distintas para añadir registro

Tienes que usar dos tablas. En una guardas todas las categorias, en la otra las noticias. En la tabla de noticias dejas un campo para poder insertar la Primary Key de la categoria correspondiente. De esta manera puedes hacer un drop down en base a la tabla de categorias y evitas introcir datos repetitivos en tu tabla de noticias.
__________________
twitter: @imbuzu
  #5 (permalink)  
Antiguo 05/05/2009, 03:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Usar dos tablas distintas para añadir registro

Buenas

Gracias por responder, creo que ya lo tengo (o almenos de momento no salen errores xD). He añadido un nuevo campo en la tabla de noticias que hace referencia a las categorias. El combo se llena automaticamente con las categorias y en la consulta para añadir solo me faltaba poner que el nuevo campo se llena con el valor del combo...

Creo que me he explicado mal pero bueno xD.

Ahora el problemilla que tengo es que la consulta, coge el NOMBRE del combo en vez del name. No se si es que se hara de forma distinta (nunca he usado combos). Por poner un ejemplo, yo tengo un combo montado asi:

Código PHP:
<select name="ejemplo">
         <? foreach blablabla ?>
                <option name="<?=$blabla['id']?>"><?=blabla['nombre']?></option>
        <? endforeach; ?>
</select>
El problema, es que en la tabla se añade el valor de 'nombre' y yo lo que quiero es coger el 'id' pero logicamente, en el combo tiene que verse el nombre, no un numero si no no sabes quien es quien.

De esta forma, luego para mostrar hago una consulta de seleccion diciendole que el id de noticias sea igual al id de categorias, entonces se mostrara la categoria solo de esa noticia, sin duplicaciones ni cosas raras.

Ahora mismo lo estoy haciendo por el nombre...comparo por el nombre pero preferiria hacerlo por numero, si es posible.

Saludos y Gracias (:

PD: Postee en MYSQL porque me hacia falta una consulta para hacer eso =\
  #6 (permalink)  
Antiguo 05/05/2009, 08:23
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Usar dos tablas distintas para añadir registro

tienes que usar value y no nome en el optinon. Los optino no llevan name, solo los select.

<option value="<?php echo $blablabla['id'] ?>"><?php echo $blablabla['nombre'] ?></option>
__________________
twitter: @imbuzu
  #7 (permalink)  
Antiguo 05/05/2009, 11:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Usar dos tablas distintas para añadir registro

Gracias, ese era el fallo. La verdad es que se me hacia raro verlo asi

Muchas gracias ^^
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 23:29.