Foros del Web » Programando para Internet » PHP »

Problema insertando datos

Estas en el tema de Problema insertando datos en el foro de PHP en Foros del Web. Hola, ojala me puedan ayudar...voy atratar de explicarme bien, si no entienden pueden preguntar La idea es la siguiente, tengo que hacer la mantencion de ...
  #1 (permalink)  
Antiguo 10/09/2004, 00:00
 
Fecha de Ingreso: septiembre-2004
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 0
Problema insertando datos

Hola, ojala me puedan ayudar...voy atratar de explicarme bien, si no entienden pueden preguntar

La idea es la siguiente, tengo que hacer la mantencion de una base de datos de una disquería, pero tengo un problema al pasar variables, me explico:

Este es el codigo php donde escribo los datos, en los textos ingreso en una tabla Discos y tengo 2 combos(o menus, no se como sellaman). En uno de los combos tengo que ingresar en una tabla llamada discos_tipo (campos: Iddis - Codtipo)y en el otro tengo que ingresar en una tabla llamada discos_sellos(campos: Iddis - Codsello).

<html>
<body bgcolor="lightblue">

Ingresar nuevo disco
<p>
<center>
<form action="discoagregado.php" method="post">
<table>
<tr><td>
ID:<input name="iddis" type="text" size="20">
</td></tr>
<tr><td>
Nombre Disco:<input name="nomdis" type="text" size="20">
</td></tr><p>
<tr><td>
Interprete:<input name="interprete" type="text" size="20">
</td></tr><p>
<tr><td>
Año:<input name="anho" type="text" size="20">
</td></tr><p>
<tr><td>
Precio:<input name="precio" type="text" size="20">
</td></tr><p>
<tr><td>
Stock:<input name="stock" type="text" size="20">
</td></tr><p>
<tr><td>
Cantidad discos:<input name="cantdis" type="text" size="20">
</td></tr><p>
<p>
<p>
</table>
<center>
<BR>Tipo:<SELECT NAME="tipo">
<OPTION>rock
<OPTION>new age
<OPTION>latinos
<OPTION>electronica
</SELECT >
<p>

<BR>Sello:<SELECT NAME="sello">
<OPTION>EMI
<OPTION>SONY MUSIC
<OPTION>ALERCE
</SELECT >
<p>
<input type="Submit" name="boton" value="Aceptar"
</form>

</body>
</html>

*Ahora, aquí estoy agregando los nombres de los tipos y sellos (ej: rock, pop...y emi, sony music) pero en las tablas necesito ingresar el codigo del tipo y sello.Este es el codigo php qe es llamado por el anterior:


<html>
<body bgcolor="lightblue">
<?
$iddis=$_POST['iddis'];
$nomdis=$_POST['nomdis'];
$interprete=$_POST['interprete'];
$anho=$_POST['anho'];
$precio=$_POST['precio'];
$stock=$_POST['stock'];
$cantdis=$_POST['cantdis'];
$tipo=$_POST['tipo'];
$sello=$_POST['sello'];

$bdhost="host.cl";
$db="database";
$dbuser="user";
$dbpass="pass";

$cn = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);
$consulta= mysql_query("select iddis from discos where iddis='$iddis'");
$consulta2=mysql_query("select codtipo from tipo where nomtipo='$tipo'");
$consulta3=mysql_query("select codsello from sellos where nomsello='$sello'");


if(mysql_num_rows($consulta)!=0)
{
echo "Ya existe ese disco";
}
else
{
mysql_db_query($db,"Insert into discos values(\"$iddis\",\"$nomdis\",\"$interprete\",\"$a nho\",\"$precio\",\"$stock\",\"$cantdis\")",$cn);

mysql_db_query($db,"insert into disco_tipo values(\"$iddis\",\"$tipo\")",$cn);

mysql_db_query($db,"insert into disco_sello values(\"$iddis\",\"$sello\")",$cn);

echo "EL DISCO HA SIDO AGREGADO";
}

?>
</body>
</html>


*Con esto me ingresa solo el iddis en las 2 tablas y el nombre en palabras del tipo y sello, necesito que me agrege los codigos en las tablas respectivas... me falta un par de lineas qe creo que borré por probar tanto, ojala me puedan ayudar, lamento lo largo de la consulta pero es asi.Gracias!
  #2 (permalink)  
Antiguo 10/09/2004, 06:10
 
Fecha de Ingreso: agosto-2004
Ubicación: Valencia
Mensajes: 149
Antigüedad: 19 años, 8 meses
Puntos: 0
Creo que deberías indicarle donde debe introducir esos datos que le pasas:

$sql = "INSERT INTO tabla (nombre, direccion, descripcion, banner, seccion) ";
$sql .= "VALUES ('$nombre', '$direccion', '$descripcion', '$banner', '$seccion')";
$result = mysql_query($sql);
__________________
www.adimensional.info Adimensional
www.cientosderecetas.com Cientos de recetas
  #3 (permalink)  
Antiguo 11/09/2004, 14:57
 
Fecha de Ingreso: septiembre-2004
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 0
en todo caso ese no es mi problema, con este codigo me queda algo asi en la BD:
+-------+---------+
| iddis | codtipo |
+-------+---------+
| 1 | t01 |
| 2 | t01 |
| 3 | t03 |
| 4 | t01 |
| 5 | t02 |
| 7 | rock |
+-------+---------+

me inserta el campo "rock" cuando necesito que lo haga "t07"...me entienden? :(
  #4 (permalink)  
Antiguo 12/09/2004, 00:05
 
Fecha de Ingreso: junio-2004
Mensajes: 5
Antigüedad: 19 años, 10 meses
Puntos: 0
Alcance de insertando datos

Tu problema es que tu variable $tipo, tiene el nombre del tipo del disco, y ese valor no ha cambiado, por mas que hagas la consulta para encontrar el codigo del tipo, no lo has almacenado en ninguna variable. Por lo tanto en la variable $tipo debes almacenar el valor de tu consulta para que encontrar el codigo del tipo. Esto se realiza de la siguiente manera:
$tipo = consulta2['codtipo'];
Después realizas el ingreso de datos.
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 20:27.