Foros del Web » Programando para Internet » PHP »

Como insertar ?

Estas en el tema de Como insertar ? en el foro de PHP en Foros del Web. En el sgte codido que esta abajo, estoy mostrando los usuarios de un curso determinado. Muestro los nombres de cada uno y agrego un casillero ...
  #1 (permalink)  
Antiguo 21/10/2003, 05:42
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
Como insertar ?

En el sgte codido que esta abajo, estoy mostrando los usuarios de un curso determinado. Muestro los nombres de cada uno y agrego un casillero de texto para ingresarle un valor que correspondera a su evalacion. Todo esto debo almacenarlo en una tabla.
Mi pregunta es : ¿como almaceno estos valores ?.

Lo pregunto por que dentro del while que me muestra a todos los usuarios voy imprimiendo el nombre y por cada uno genero un casillero de texto.

Código PHP:
 <? 
$consulta_usuarios
=mysql_query("select * from wp where courses='".$id_curso."'");
  while (
$row2=mysql_fetch_array($consulta_usuarios))
  {
      
$ver_user=mysql_query("select * from users where id='".$row2["users"]."'");
    while(
$row3=mysql_fetch_array($ver_user))
    {
  
?>
    <tr> 
      <td><? echo $row3["surname"]; echo $row3["firstname"]?></td>
      <td><input name="nota" type="text" id="nota"></td>
    </tr>
    <? }
   } 
?>
Espero me entiendan

Salu2
__________________
AK.T.I.V.E.tm Live, Never DIE
  #2 (permalink)  
Antiguo 21/10/2003, 06:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Veamos, lo primero es que vas a tener que almacenar en un array todos esos valores y los id de sus registro. Para hacerlo facilmente pones esto para tu formulario:
Código PHP:
while($row3=mysql_fetch_array($ver_user))
    {
  ?>
    <tr> 
      <td><? echo $row3["surname"]; echo $row3["firstname"]?></td>
      <td><input name="nota[<?php echo $row3['id']; ?>]" type="text" id="nota"></td>
    </tr>
    <? }
?>
Suponiendo que $row3['id'] sea el indice de ese registro.

Y en tu script destino accedes a ese array haciendo:
Código PHP:
$notas_evaluacion=$_POST['nota'];  // si el formulario es POST. Si es GET usar _$GET
// ahora tendras un array del tipo array('123'=>'xx')
// donde 123 sera el indice del registro ($row3['id'] en el formulario
// y xx el valor introducido en la caja de texto correspondiente

// puedes recorrer el array

foreach ($notas_evaluacion as $id => $nota) {
  echo 
"$id : $nota";

Asi ya tienes relacionado el id y el valor. Ahora solo es cuestion de almacenar esos valores. Supongo que eso ya es facil, sabiendo como recorrer el array.

Suerte.

PD: ¿No tenemos en el FAQ nada relacionado con select multiples, checkbox para selecciones de registros (estilo hotmail) y casos como este? Es que es una pregunta un poco recurrernte. Voy a revisar.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/10/2003, 06:02
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
En lugar de:

Código PHP:
<?
<tr
      <
td><? echo $row3["surname"]; echo $row3["firstname"]?></td>

      <td><input name="nota" type="text" id="nota"></td>

    </tr>
?>
Usa:

Código PHP:
<?
mysql_query
("INSERT INTO tabla (surname,firstname,nota) VALUES ('$row3["surname"]', '$row3["firstname"]','nota')");
?>
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 21/10/2003, 07:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
PD: ¿No tenemos en el FAQ nada relacionado con select multiples, checkbox para selecciones de registros (estilo hotmail) y casos como este? Es que es una pregunta un poco recurrernte. Voy a revisar
Parece que no .. pero tantas veces se ha preguntado y se ha respondido que tal vez se pueda hacer algún "cut&paste" para las FAQ's xD

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 21/10/2003, 08:29
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
me arroja un error en el foreach
Warning: Invalid argument supplied for foreach() in /var/www/https/evcdesarrollo/evaluaciones/grabar.php on line 17
__________________
AK.T.I.V.E.tm Live, Never DIE
  #6 (permalink)  
Antiguo 21/10/2003, 09:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
* Tu formulario está usando el method=POST?

* Usas PHP 4.1.0 o superior?

* Estas generando correctamente tus input?

(podrías poner el código completo que usas ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 21/10/2003, 13:41
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
Aca estoy buscando todos los alumnos del curso y luego les agrego un campo texto para poner la nota.

ver.php
Código PHP:
<?
require "../include/global_login.php";
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../estilos.css" rel="stylesheet" type="text/css">
</head>
<body onLoad="MM_preloadImages('../images/forotopizout.gif')">
<?
     $id_curso
=$curso;

?>
<table width="100%" border=0 cellpadding=0 cellspacing=0>
  <tr bgcolor="#5c60a5"> 
    
    
    <td height="18" class="mainwhite"> <table width="100%" border="0" cellspacing="0" 
background="../images/fonditoforotop.gif">

        <tr> 
          <td width="91%" class="titulo"><img 
src="../images/recursosgr.gif" width="50" height="50">Ingresar 
            Evaluaciones</td>
          <td width="9%" valign="top"><div align="right"><a href="javascript:history.go(-1)" 
onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage

('Image3','','../images/forotopizout.gif',1)"><img 
src="../images/forotopiz.gif" alt="Volver..." name="Image3" 
width="99" height="50" border="0"></a></div></td>

        </tr>
      </table>
      <p>&nbsp; <img src="../images/fl.gif" width="5" height="10" 
alt="" border="0"> 
        <b class="foroplat">Administracion de 
Evaluaciones</b></p></td>
    <td class="mainwhite">&nbsp;</td>
    <td class="mainwhite">&nbsp;</td>
    
    <td width="1%" valign="top" class="mainwhite"> <div align="right"><img src="../images/esqizsup.gif" width="18" 
height="18"></div></td>
  </tr>
  <tr bgcolor="#A8EAFF"> 
    <td height="18" colspan="4" class="mainwhite">&nbsp;</td>
  </tr>
</table>
<form name="form1" method="post" action="grabar.php">
  <table width="75%" border="1">
    <tr> 
      <td width="47%" class="titulo">Nombre de la Evaluacion : <? 
echo $nombre ?></td>
      <td width="53%" class="titulo">Nota del Alumno</td>
    </tr>
    <? $numero=1;
  
$consulta_usuarios=mysql_query("select 
id,courses,modules,users FROM wp where courses='"
.$id_curso."' 
AND modules=0 AND folders=0 AND groups=0 AND cases=0"
);
  
$maximo=mysql_num_rows($consulta_usuarios);
  
  while (
$row2=mysql_fetch_array($consulta_usuarios))
  {
      
$ver_user=mysql_query("select id,surname,firstname 
FROM users where id='"
.$row2["users"]."'");
    
$valor=mysql_result($ver_user,0,"id");
    
$arr_user[$numero]=$valor;
    
    
  
?>
    <tr> 
      <td class="contenido"><?  echo mysql_result
($ver_user,0,"surname")." "; echo mysql_result
($ver_user,0,"firstname"); ?></td>
      <td class="contenido"><input name="nota<? echo 
$numero?>" type="text" id="nota<? echo $numero?>
size="4" maxlength="3"></td>
    </tr>
    <? 
    $numero
=$numero+1;
   } echo 
$maximo;
     
$usuarios=implode(",",$arr_user);
     echo 
"usuarios ..."; echo $usuarios;
   
?>

  </table>
  <p> 
    <input name="id_curso" type="hidden" value="<? echo 
$id_curso ?>">
    <input name="id_eval" type="hidden" value="<? echo 
$id_eval ?>">
    <input name="id_user" type="hidden" value="<? echo $usuarios ?>">
    <input name="Grabar" type="submit" id="Grabar" 
value="Grabar">
    <input name="limpiar" type="reset" id="limpiar" 
value="Limpiar">
    <input name="valormax" type="hidden" value="<? 
echo $maximo?>">
  </p>
</form>
<p>&nbsp;</p>
</body>
</html>
y en este archivo tomo los datos anteriores para grabar

grabar.php
Código PHP:
<?
require "../include/global_login.php";
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
echo $id_eval;
$id_usuario=$person["id"];
$array_id_user=explode(",",$id_user);
for (
$i=0;$i<$valormax;$i++)
{
    
$n=$i+1;
    
$nueva="nota".$n;
    
$insertar=mysql_query("INSERT INTO notas(id_alum,nota,id_eval,id_profe,fecha_ing,id_curso)
    VALUES('"
.$array_id_user[$i]."','".$$nueva."','".$id_eval."','".$id_usuario."',NOW(),'".$id_curso."')");
}
?>
<p><font size="3" face="Verdana, Arial, Helvetica, sans-
serif">Las Notas han Sido ingresadas </font></p>
<p><font size="3" face="Verdana, Arial, Helvetica, sans-
serif"><a href="index.php?curso=<? echo $id_curso ?>">Volver</a></font> 

</p>
</body>
</html>
Igual esta funcionando bien, pero lo encuentro medio carretero, tal vez este consumiendo muchos recursos del servidor.
Echenle una miradita, espero sus comentarios

Salu2
__________________
AK.T.I.V.E.tm Live, Never DIE

Última edición por KillerBKS; 21/10/2003 a las 21:26
  #8 (permalink)  
Antiguo 21/10/2003, 21:22
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
se entendio el codigo anterior o no ????

Ojala alguien tenga alguna nueva idea menos carretera.

Salu2
__________________
AK.T.I.V.E.tm Live, Never DIE
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 13:37.