Hola grupo.
Necesito ayuda.
Tengo una tabla(members) con los campos de registro de usuarios (nombre,direccion,poblacion, etc)
otra tabla (idiomas) con los campos (id_idioma,idioma)
y otra (usuidiomas) con los campos (id, idusuario,ididioma).
quisiera que al seleccionar los diferentes idiomas, grabar en la db usuidiomas,
los valores idusuario y ididioma, tantas veces como idiomas tenga seleccionados.
la pagina que uso me funciona hasta que quiero grabar.
la tabla usuidiomas me inserta tantos registros como he seleccionado con los valores bien (id_idioma y id_usuario) pero me da error de programacion.
si vuelvo a hacer otra seleccion diferente de idiomas, me los actualiza bien pero siempre despues de haber insertado los registros necesarios en usuidiomas.
<!-- InstanceBeginEditable name="contenido" -->
<h3>Bienvenido <?php echo $_SESSION['SESS_FIRST_NAME'];?></h3>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#D0D9DE">
<?
$member_id = $_SESSION['SESS_MEMBER_ID'];
require_once('config.php');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$db = mysql_select_db(DB_DATABASE);
echo '<FORM METHOD="POST" ACTION="member-modif2.php">Nombre<br>';
$result=mysql_query("SELECT member_id,nivel,firstname,lastname,login,passwd,di reccion,codpostal,poblacion,provincia,telefono,mov il,email,dirURL,formacio,altres FROM members WHERE member_id= $member_id",$link) or die(mysql_error());
while ($row = mysql_fetch_row($result)){
$member_id = $row[0];
$nivel = $row[1];
$fname = $row[2];
$lname = $row[3];
$login = $row[4];
$passwd = $row[5];
$direccion = $row[6];
$codpostal = $row[7];
$poblacion = $row[8];
$provincia = $row[9];
$telefono = $row[10];
$movil = $row[11];
$email = $row[12];
$dirURL = $row[13];
$formacio = $row[14];
$altres = $row[15];}
?>
</select>
<INPUT NAME="member_id" TYPE="hidden" value="<? echo $member_id ?>"/>
<INPUT NAME="nivel" TYPE="hidden" value="<? echo $nivel ?>"/>
usuario
<? echo htmlspecialchars($login)?>
contrasena
<? echo htmlspecialchars($passwd) ?>
<br>
nombre
<input name="fname" type="TEXT" size="30" maxlength="30" value="<? echo htmlspecialchars($fname) ?>"/>
<br>
apellido
<INPUT NAME="lname" TYPE="TEXT" size="50" maxlength="50" value="<? echo htmlspecialchars($lname) ?>"/><br>
direccion
<INPUT NAME="direccion" TYPE="TEXT" size="50" maxlength="50" value="<? echo htmlspecialchars($direccion) ?>"/><br>
codpostal
<INPUT NAME="codpostal" TYPE="TEXT" size="5" maxlength="5" value="<? echo htmlspecialchars($codpostal) ?>"/>
poblacion
<INPUT NAME="poblacion" TYPE="TEXT" size="30" maxlength="30" value="<? echo htmlspecialchars($poblacion) ?>"/>
<br>
provincia
<INPUT NAME="provincia" TYPE="TEXT" size="30" maxlength="30" value="<? echo htmlspecialchars($provincia) ?>"/><br>
telefono
<input name="telefono" type="TEXT" size="10" maxlength="10" value="<? echo htmlspecialchars($telefono) ?>"/>
movil
<INPUT NAME="movil" TYPE="TEXT" size="10" maxlength="10" value="<? echo htmlspecialchars($movil) ?>"/><br>
email
<INPUT NAME="email" TYPE="TEXT" size="50" maxlength="50" value="<? echo htmlspecialchars($email) ?>"/><br>
dirURL
<INPUT NAME="dirURL" TYPE="TEXT" size="50" maxlength="50" value="<? echo htmlspecialchars($dirURL) ?>"/><br>
<br>
<label>Formació:</label><br />
<textarea name="formacio" cols="60" rows="3" id="formacio"><? echo htmlspecialchars($formacio); ?></textarea>
<br /><br />
<label>Altres:</label><br />
<textarea name="altres" cols="60" rows="3" id="altres"><? echo htmlspecialchars($altres); ?></textarea>
<br>
<Label>Idiomes:</Label><br />
<?
require_once('config.php');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$db = mysql_select_db(DB_DATABASE);
$result = mysql_query("SELECT id_idioma, idioma FROM idiomas ORDER BY idioma ",$link) or die(mysql_error());
while ($row = mysql_fetch_row($result)){
if ($row[1] != "..") {
$idiomacheckejat = "no";
$result2 = mysql_query("SELECT id FROM usuidiomas Where id_usuario LIKE '$member_id' and id_idioma LIKE '$row[0]'", $link) or die(mysql_error());
while ($row2 = mysql_fetch_row($result2)){ $idiomacheckejat = "si"; }
if ($idiomacheckejat == "si") {
?>
<fieldset style="border:none;">
<label><? echo $row[1]; ?></label>
<input name="<? echo $row[0]; ?>" type="checkbox" value="<? echo $row[0]; ?>" id="<? echo $row[0]; ?>" checked="yes"/>
</fieldset>
<? } else { ?>
<label><? echo $row[1]; ?></label>
<input name="<? echo $row[0]; ?>" type="checkbox" value="<? echo $row[0]; ?>" id="<? echo $row[0]; ?>" /><br />
<? } } ?>
<br />
<? } ?>
<br /><br />
</td>
</tr>
<tr>
<td><div align="right"><a href="member-index.php">volver</a>
<INPUT TYPE="SUBMIT" value="enviar modificaciones">
</div></td>
</tr>
<tr>
<td bgcolor="#0000FF"> </td>
</tr>
</table>
<!-- InstanceEndEditable --></td>
=====================
esta es la pagina que quiero grabar los valores,
<?
$member_id=$_POST['member_id'];
$nivel=$_POST['nivel'];
// $login=$_POST['login'];
// $passwd=$_POST['passwd'];
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$direccion=$_POST['direccion'];
$codpostal=$_POST['codpostal'];
$poblacion=$_POST['poblacion'];
$provincia=$_POST['provincia'];
$telefono=$_POST['telefono'];
$movil=$_POST['movil'];
$email=$_POST['email'];
$dirURL=$_POST['dirURL'];
$formacio=$_POST['formacio'];
$altres=$_POST['altres'];
//Conexion con la base
require_once('config.php');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$db = mysql_select_db(DB_DATABASE);
//Creamos la sentencia SQL y la ejecutamos
$sql="Update members Set firstname='$fname',lastname='$lname',direccion='$d ireccion',codpostal='$codpostal',poblacion='$pobla cion',provincia='$provincia',telefono='$telefono', movil='$movil',email='$email',dirURL='$dirURL',for macio='$formacio',altres='$altres' Where member_id='$member_id'";
mysql_query($sql);
$ordre="Delete From usuidiomas Where id_usuario= '$member_id'";
mysql_query($ordre);
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$result = mysql_query("SELECT id_idioma, idioma FROM idiomas ORDER BY idioma",$link);
while ($row = mysql_fetch_row($result)){
$idioma = $row[0];
// aqui es donde no encuentra la variable $idioma
$idioma = $_POST[$idioma]; // si quito esta linea no me da error pero siempre graba tantos registros como idiomas hayan sin tener en cuenta los seleccionados
if ($idioma != "") {
$sql = "INSERT INTO usuidiomas (id_usuario, id_idioma) VALUES ('$member_id', '$idioma')";
$result2 = mysql_query($sql); }
}
?>
<h1><div align="center">Registro Actualizado</div></h1>
<div align="center"><a href="member-index.php">Volver al menu </a></div>
==============
espero me podais ayudar. gracias.