Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] modificar data problemas para modificar un select

Estas en el tema de modificar data problemas para modificar un select en el foro de PHP en Foros del Web. Buenas tardes amigos, necesito de su colaboración con la finalidad que me ayuden a poder modificar una data ya registrada en la base de datos. ...
  #1 (permalink)  
Antiguo 31/01/2016, 15:09
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 9 años, 1 mes
Puntos: 0
modificar data problemas para modificar un select

Buenas tardes amigos, necesito de su colaboración con la finalidad que me ayuden a poder modificar una data ya registrada en la base de datos.

cuando trado de modificar los valores de un select (txtcursos) solo me modifica el último valor seleccionado.

El select se refiere a tomar las opciones de Especialista,licenciado y bachiller , cuando me trae los valores me trae por ejemplo especiaista y quiero agregar ademas de esta licenciado selecciono ambas opciones y solo me modifica la ultima es decir registra solo licenciado cuando debe de registar especialista y licenciado

aqui esta el php de modificar para ver si me pueden ayudar gracias en color rojo esta la rutina de


<?php

$server = "localhost";
$usuario = "root";
$contraseña = "";
$bd = "unidad";


$conexion = mysqli_connect($server,$usuario,$contraseña,$bd)
or die ("error en conexión favor verificar la conexión");



$carnet=$_POST["txtcarnet"];
$cedula=$_POST["txtcedula"];
$nombre=$_POST["txtnombre"];
$apellido=$_POST["txtapellido"];
$sex=$_POST["genero"];
$prof=$_POST["txtcargo"];
$unid=$_POST["txtunidad"];

if($_POST["txtcursos"]==1){
$curso1=1;
}else{
$curso1=0;
};

if($_POST["txtcursos"]==2){
$curso2=2;
}else{
$curso2=0;
};


if($_POST["txtcursos"]==3){
$curso3=3;
}else{
$curso3=0;
};


$observaciones=$_POST["txtobservaciones"];


mysqli_query($conexion,"UPDATE empleado set carnet=$carnet,cedula=$cedula,nombre='$nombre',ape llido='$apellido',sex=$sex,prof=$prof,unid=$unid,c urso1=$curso1,curso2=$curso2,curso3=$curso3,observ aciones='$observaciones' where carnet=$carnet");


//echo $sql;exit(0);


mysqli_close($conexion);
echo "<center><h1>Data actualizada correctamente</h1></center>";
echo "</br>";
echo "</br>";


?>
<html>
<body>
<center>
<h1>datos modificados con exito</h1>
<br>
<a href="menu.html">volver al menu principal</a>
</center>
</body>
</html>
__________________
ymanol caires z
  #2 (permalink)  
Antiguo 31/01/2016, 15:36
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: modificar data problemas para modificar un select

En teoría lo que tienes aquí está bien. Ahora, veo que txtcursos es un select, a menos que sea un Select Multiple para poder seleccionar varias opciones. Si es así, tienes que tomar txtcursos como un array, independiente si la info la envias por ajax, o por un form común. Saludos
  #3 (permalink)  
Antiguo 31/01/2016, 15:44
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: modificar data problemas para modificar un select

si amigo es un select multiple pero siempre esta tomado la última selección, si selecciono los tres me toma el último, cuando cargo la data (agregar)

<select name="txtcursos[]" size="4" multiple="multiple">
<option value="1">Especialización</option>
<option value="2">Licenciatura</option>
<option value="3">Bachillerato</option>
</select>

aqui agrega perfecto lo que selecciono

cuando consulto para modificar lo hace perfecto

<td>Estudios Realizados</td>
<td>
<select name="txtcursos" multiple="true" >


<?php
if($extraer['curso1']==1){
echo "<option value=1 selected>Especialización</option>";
}else {
echo "<option value=1 >Especialización</option>";
}

if($extraer['curso2']==2){
echo "<option value=2 selected>Licenciatura</option>";
}else {
echo "<option value=2 >Licenciatura</option>";
}

if($extraer['curso3']==3){
echo "<option value=3 selected>Bachillerato</option>";
}else {
echo "<option value=3 >Bachillerato</option>";
}

el problema radica cuando lo modifico me toma el último valor no me dejar colocar mas de una opción
__________________
ymanol caires z
  #4 (permalink)  
Antiguo 31/01/2016, 16:07
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: modificar data problemas para modificar un select

Vale pues el problema está ahí, ya que txtcursos al ponerle los corchetes automáticamente se torna como un arreglo, y al seleccionar más de dos opciones no tiene valor "1" y mágicamente después tendrá como valor "2". Así que tienes que utilizar un ciclo para lo que necesitas.

Código PHP:
Ver original
  1. $cursos = $_POST['txtcursos'];
  2.  
  3. for ($i=0; $i < count($cursos); $i++) {
  4.         echo $cursos[$i];
  5.     }
  #5 (permalink)  
Antiguo 31/01/2016, 16:25
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: modificar data problemas para modificar un select

rodocoyote15, ya hice la prueba y no funciona sigue trayendo el último valor el debería de tomar las modificaciones, debe de ser parecido a cuando se agrega la data, no te parece. Ya que registra bien y muestra bien.
__________________
ymanol caires z
  #6 (permalink)  
Antiguo 31/01/2016, 17:34
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: modificar data problemas para modificar un select

listo ya le di la vuelta

este es el archivo en php que muestra la data de la bd agregue el array en "txtcursos[]"


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php


$server = "localhost";
$usuario = "root";
$contraseña = "";
$bd = "unidad";

$conexion = mysqli_connect($server,$usuario,$contraseña,$bd)
or die ("error en conexión favor verificar la conexión");

$carnet= $_POST['carnet'];



$consulta = mysqli_num_rows(mysqli_query($conexion,"SELECT carnet from empleado where carnet='$carnet'"));

if($consulta==0){
echo '<center><h1>No hay Carnet registrado para consultar';
echo '</br>';
echo '<a href="menu.html">volver al menu Principal</a>';
echo '</br>';
echo '</center><br><br><br><br><br><br><br><footer><div class="container-fluid"><div class="col-xs-4" style="background-color:#2c3e50;"><h2>IT Knowledge House S.A. </h2></div></div></footer>';

return;

}

$consulta = (mysqli_query($conexion,"SELECT carnet,cedula,nombre,apellido,sex,prof,unid,curso1 ,curso2,curso3,observaciones from empleado where carnet='$carnet'"));

while ($extraer = mysqli_fetch_array($consulta))
{

?>

<html>
<head>
<title>SISTEMA 2</title>
</head>
<body>
<center>
<h1>SISTEMA 2</h1>
<table border="0">
<form action="modificar2.php" method="POST">

<tr>
<td>Carnet</td>
<td><input type="text" name="txtcarnet" value=<?php echo $extraer['carnet'];?>></td>
</tr>

<tr>
<td>Cedula</td>
<td><input type="text" name="txtcedula" value=<?php echo $extraer['cedula'];?>></td>
</tr>

<tr>
<td>Nombre</td>
<td><input type="text" name="txtnombre" value=<?php echo $extraer['nombre'];?>></td>
</tr>

<tr>
<td>Apellido</td>
<td><input type="text" name="txtapellido" value=<?php echo $extraer['apellido'];?>></td>
</tr>

<tr>
<td>sexo</td>
<td>
<?php
if($extraer['sex']==1){
echo "<input type='radio' name='genero' value=1 checked>Masculino<br>";
echo "<input type='radio' name='genero' value=2>Femenino";
}else{
echo "<input type='radio' name='genero' value=1 >Masculino<br>";
echo "<input type='radio' name='genero' value=2 checked>Femenino";
}
?>
</td>
</tr>
<tr>
<td>Cargo</td>
<td>
<select name="txtcargo">

<?php
if($extraer['prof']==1){
echo "<option value=1 selected>Analista</option>";
echo "<option value=2>Coordinador</option>";
echo "<option value=3>Gerente</option>";
}

if($extraer['prof']==2){
echo "<option value=1>Analista</option>";
echo "<option value=2 selected>Coordinador</option>";
echo "<option value=3>Gerente</option>";
}

if($extraer['prof']==3){
echo "<option value=1>Analista</option>";
echo "<option value=2 >Coordiandor</option>";
echo "<option value=3 selected>Gerente</option>";
}

?>
</select>
</tr>
<tr>
<td>Unidad</td>
<td>
<select name="txtunidad">
<?php
if($extraer['unid']==1){
echo "<option value=1 selected>Pagos</option>";
echo "<option value=2>Crédito</option>";
echo "<option value=3>Administración</option>";
}

if($extraer['unid']==2){
echo "<option value=1>Pagos</option>";
echo "<option value=2 selected>Créditos</option>";
echo "<option value=3>Administración</option>";
}

if($extraer['unid']==3){
echo "<option value=1>Pagos</option>";
echo "<option value=2 >Créditos</option>";
echo "<option value=3 selected>Administración</option>";
}

?>
</select>
</td>
</tr>


<tr>
<td>Estudios Realizados</td>
<td>
<select name="txtcursos[]" size="4" multiple="multiple">


<?php
if($extraer['curso1']==1){
echo "<option value=1 selected>Especialización</option>";
}else {
echo "<option value=1 >Especialización</option>";
}

if($extraer['curso2']==2){
echo "<option value=2 selected>Licenciatura</option>";
}else {
echo "<option value=2 >Licenciatura</option>";
}

if($extraer['curso3']==3){
echo "<option value=3 selected>Bachillerato</option>";
}else {
echo "<option value=3 >Bachillerato</option>";
}

?>

</select>
</td>
</tr>

<tr>
<td>Observaciones</td>
<td>
<textarea name="txtobservaciones" cols="25" row="10">
<?php
echo $extraer['observaciones']
?>
</textarea>
</td>
</tr>

</td>
<td>
<br>
<center>
<input type="submit" value="Modificar"/> <input type="reset" value="Limpiar"/>
</center>
</td>
</tr>

</td>
</tr>

</form>
</table>
<?php
}
mysqli_close($conexion);


?>

</center>
</body>
</html>

<html>
<body>
<br>
<br>
<center>

<a href="menu.html">volver al menu Principal</a>
</center>
</body>
</html>

este el php que adquiere la data modificada y la coloca en la bd aqui cree un if y un foreach

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php

$server = "localhost";
$usuario = "root";
$contraseña = "";
$bd = "unidad";


$conexion = mysqli_connect($server,$usuario,$contraseña,$bd)
or die ("error en conexión favor verificar la conexión");



$carnet=$_POST["txtcarnet"];
$cedula=$_POST["txtcedula"];
$nombre=$_POST["txtnombre"];
$apellido=$_POST["txtapellido"];
$sex=$_POST["genero"];
$prof=$_POST["txtcargo"];
$unid=$_POST["txtunidad"];


if(isset($_POST['txtcursos'])){
$aCursos=$_POST['txtcursos'];
$curso1=0;$curso2=0;$curso3=0;

foreach($aCursos as $val){
if($val==1)$curso1=1;
if($val==2)$curso2=2;
if($val==3)$curso3=3;

}
}


$observaciones=$_POST["txtobservaciones"];

//echo $sql;exit(0);

mysqli_query($conexion,"UPDATE empleado set carnet=$carnet,cedula=$cedula,nombre='$nombre',ape llido='$apellido',sex=$sex,prof=$prof,unid=$unid,c urso1=$curso1,curso2=$curso2,curso3=$curso3,observ aciones='$observaciones' where carnet=$carnet");





mysqli_close($conexion);
echo "<center><h1>Data actualizada correctamente</h1></center>";
echo "</br>";
echo "</br>";


?>

<html>
<body>
<center>
<h1>datos modificados con exito</h1>
<br>
<a href="menu.html">volver al menu principal</a>
</center>
</body>
</html>

muchas gracias rodocoyote15 por el poyo estamos en contacto
__________________
ymanol caires z
  #7 (permalink)  
Antiguo 31/01/2016, 18:37
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: modificar data problemas para modificar un select

Muy bien, para el proximo post procura poner tu código entre etiquetas de su lenguaje para que lo podamos entender mejor! Saludos

Etiquetas: data, html, modificar, mysql, select, sql
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 12:27.