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:
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.<?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>
por su tiempo, mil gracias!