Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/06/2012, 22:36
Avatar de magc
magc
 
Fecha de Ingreso: febrero-2012
Mensajes: 2
Antigüedad: 12 años, 2 meses
Puntos: 0
Exclamación Inserción en varias tablas desde formulario mysql/php

Hola! buenas noches, solo para consultar algo que llevo rato intentando y no puedo:

Tengo una base de datos en mysql en la que inserto datos desde un combobox php y logro hacer la inserción cuando es a una sola tabla, pero al momento de insertar a otra que tiene llave foranea es donde me atoro:

tabla categorias
id_categoria (llave primaria)
nombre_categoria

tabla marcas
id_marca (llave primaria)
nombre_marca

tabla artículo
codigo (llave primaria)
descripcion
id_categoria (llave foranea)
id_marca (llave foranea)
foto


Ahora, el formulario para dar de alta un nuevo artículo es:


codigo |____________| (caja texto)
clave |____________| (caja texto)
desc.. |____________| (caja texto)
catego >elige una..< (select, que obtiene las opciones de mi tabla "categorias")
marca >elige una..< (select, que obtiene las opciones de mi tabla "marcas")



Este es el problema: en la pantalla del formulario, sí se rellenan los dos select con los datos de la tabla, solo que al elegir no puedo hacer la inserción correctamente, pues se supone que debe insertar el id (llave primaria) de cada tabla en cuestion, para no redundar toda la palabra por cada artículo, pero no logro hacerlo, mi código es el siguiente:

alta_articulo.php
Código:
<?php

require ("conexion.php");
$status = "";

$status = "";											
	if (isset($_POST["codigo"])) {									
	    $codigo = $_POST['codigo'];						
	    $descripcion = $_POST['descripcion'];
		$categoria = $_POST['categoria'];
		$marca = $_POST['marca'];
		   
	    $sql = "INSERT INTO articulos (codigo, descripcion, id_categoria, id_marca)"
		. "values ('$codigo', '$descripcion', '$categoria', '$marca')";	
   
	    mysql_query($sql, $conexion);						
	    $status = "ok";										
	}
	
	$sql0 = "SELECT * FROM categorias";
    $result0 = mysql_query($sql0);
    $idcategoria = "";
    while ($row = mysql_fetch_assoc($result0)) {
    	 $idcategoria .= "<option value='$row[id_categoria]'>$row[categoria]</option>\n";
    } 
	
	$sql1 = "SELECT * FROM marcas";
    $result1 = mysql_query($sql1);
    $marcas = "";
    while ($row = mysql_fetch_assoc($result1)) {
    	 $marcas .= "<option value='$row[id_marca]'>$row[marca]</option>\n";
    }
														
?>

<html>	
<head><title>alta_articulo</title>
</head>
	  
<blockquote>	
 	<form method="post" action="alta_articulo.php">
	<table cellpadding="3" cellspacing="3">
		<tr>
           <td>Codigo</td>
           <td><input type="text" id="codigo" name="codigo" size="13" maxlength="13" /></td>
         </tr>
		 <tr>
           <td>Descripcion</td>
           <td><input type="text" id="descripcion" name="descripcion" size="20" maxlength="50" /></td>
           </tr>
		 <tr>
           <td>Categoria</td>
           <td><select name="categoria" id="categoria"><?php echo $idcategoria ?></select></td>
         </tr>
		 <tr>
           <td>Marca</td>
           <td><select name="marca" id="marca"><?php echo $marcas ?></select></td>
         </tr>
		 <tr>
           <td><button type="submit">Registrar</button><button type="reset">Borrar</button></td>
         </tr>       
	</table>                                                                 
	</form>
</blockquote>	
	</body>															
</html>
Ojalá me haya explicado, y si alguien pudiera ayudarme se los agradecería bastante, he leido varios artículos que me han ayudado a construir lo que llevo pero ya me estanqué aqui.

por su tiempo, mil gracias!