Foros del Web » Programando para Internet » PHP »

Una ayuda porfavor

Estas en el tema de Una ayuda porfavor en el foro de PHP en Foros del Web. hola amigos hice el siguiente codigo de la pagina que manda: Código PHP: $link = mysql_connect ( "conexion" )or die( "Error en conexión " . mysql_error ());                  mysql_select_db ...
  #1 (permalink)  
Antiguo 23/12/2003, 16:49
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
Una ayuda porfavor

hola amigos hice el siguiente codigo de la pagina que manda:

Código PHP:
$link=mysql_connect("conexion")or die("Error en conexión ".mysql_error());
                
mysql_select_db("estudios")or die("Error en tabla ".mysql_error());
                
$separar=explode("/",$nombre_cur);
                
$string="select * from cur_alu where sigla_curso='$separar[1]' and sem_an='$semestre'";
                
$resultado=mysql_query($string,$link)or die("Error en query: ".mysql_error());
                echo
"<form action='final.php' method='post' name='guardar_nota'>";
                echo
"<table width='75%' border='0' align='center'>";
                while(
$rows=mysql_fetch_array($resultado)){
                
$sigla=$rows[0];
                echo
"<tr>
                <td>$rows[3]</td>
                <td><input type='text' name='cod' size='6' value=$rows[0]></td>
                <td><input type='text' size='6' name='n_alumno' value=$rows[2]></td>
                <td><input type='text' size='6' name='sem_an' value=$semestre></td>
                <td><input type='text' name='nota' size='6'></td>
                <td><input type='checkbox' name='seleccion[]' value=$sigla></td>
                </tr><br>"
;
                }
                echo
"<tr>";
                echo
"<td><input type='submit' name='guardar' value='Guardar'></td>";
                echo
"<td><input type='reset' name='borrar' value='Restablecer'></td>";
                echo
"</tr>";
                echo
"</table>
                </form>"

y este es el codigo de la que recibe :

Código PHP:
$link=mysql_connect("conexion")or die("Error en conexión ".mysql_error());
                
mysql_select_db("estudios")or die("Error en tabla ".mysql_error()); 
                while(list(,
$sigla)=each($seleccion)){
                
$string="insert into notas(cod,n_alumno,sem_ano,nota)values('$cod','$n_alumno','$sem_an','$nota')";
                if(
$resp=mysql_query($string,$link)or die("Error en query: ".mysql_error())){
                echo
"Notas Ingresadas alumno: $n_alumno<br>";
                
$borrar="delete  from cur_alu where sigla_curso='$cod'";
                
$borrando=mysql_query($borrar,$link)or die("Error en borrar cur_alu: ".mysql_error());
                
$cerrar="delete  from cursos_open where sigla_cur='$cod'";
                
$cerrando=mysql_query($cerrar,$link)or die("Error en borrar cursos_open: ".mysql_error());
                }else{
                echo
"No se han podido Ingresar las notas alumno: $n_alumno<br>";
                }
                } 

cuando ingresa los datos a la base de datos repite solamente el primero o sea los datos del primero se guarda ciuantas vecez se halla dejato en on el checkbox, o sea parece que no recorre el arreglo y solo ingresa el primero repetidas vecez.


de antemano les agradezco su ayuda.
  #2 (permalink)  
Antiguo 24/12/2003, 06:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tus variables del formulario 'cod','n_alumno', 'sem_an' .. etc (todas) deben ser tambien arreglos:

cod[], n_alumno[] ...etc

y en consecuencia .. en tu INSERT o los DELETE que usas debes llamar a cod[indice] como array que es. Para eso te vendría mejor usar un bucle for().

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 29/12/2003, 07:29
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
Si no es mucha la patudez tu me podrías dar un ejemplo porque lo que no entiendo es como el bucle for sabrá cuando parar
  #4 (permalink)  
Antiguo 29/12/2003, 08:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tus variables cod[] y similares serán arrays .. así que puedes contar sus elementos con la función count() y aplicarla en tu for()

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 29/12/2003, 08:36
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
ok te entiendo la duda que me queda es si me dices que en vez de usar ese while lo reemplazo por un for o el for lo tendría que poner despues del while
  #6 (permalink)  
Antiguo 29/12/2003, 09:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El bucle for() lo debes emplear en el script que recibe tus arrays de tu formulario (que has generado con la lectura de sus registros con tu bucle while y tu mysql_fetch_array() como de contumbre .. sólo que has usado cod[] y demas variable[] para generar esos arrays con esos indices que necestitas).

Código PHP:
for ($indice=0count($_POST['cod']); $indice++){
$cod=$_POST['cod'][$indice];
$otra=$_POST['otra'][$indice];

// Y tu query o uso que le des a cada elemento de esos arrays ..


Lo que no me queda claro es que si vas a crear un registro nuevo con (= alumno nuevo con sus notas y demás info) .. O bien quieres actualizar la información de X alumno (registro) .. en tal caso sería un UPDATE bajo un WHERE alumno=$alumno .. y no el INSERT ..

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 29/12/2003, 13:31
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
una ultima duda

Estimado hice el siguiente código que recibe he insierta, pero sucede lo siguiente si son 3 datos o indices me guarda cuatro el primero siempre me lo guarda todo en blanco en la base de datos y los demás de manera correcta, el código que hice fue el siguiente:

Código PHP:
for($i=0;$i<=$contador;$i++){
                
$buscando="select * from notas where cod='$cod[$i]' and n_alumno='$n_alumno[$i]' and sem_ano='$sem_an[$i]'";
                
$encontrando=mysql_query($buscando,$link);
                if(
mysql_num_rows($encontrando)>0){
                echo
"Las notas para el alumno: $n_alumno[$i] ya han sido ingresadas<br>";
                }else{
                
$string="insert into notas(cod,n_alumno,sem_ano,nota)values('$cod[$i]','$n_alumno[$i]','$sem_an[$i]','$nota[$i]')";
                if(
$resp=mysql_query($string,$link)or die("Error en query: ".mysql_error())){
                echo
"Notas Ingresadas alumno: $n_alumno<br>";
                
$borrar="delete  from cur_alu where sigla_curso='$cod[$i]'";
                
$borrando=mysql_query($borrar,$link)or die("Error en borrar cur_alu: ".mysql_error());
                
$cerrar="delete  from cursos_open where sigla_cur='$cod[$i]'";
                
$cerrando=mysql_query($cerrar,$link)or die("Error en borrar cursos_open: ".mysql_error());
                echo
"El Curso $cod[$i], Ha Sido Cerrado.<br>";
                }else{
                echo
"No se han podido Ingresar las notas alumno: $n_alumno<br>";
                }
                }
                } 
Porque me estara guardando un dato demás totalmente en blanco
  #8 (permalink)  
Antiguo 29/12/2003, 13:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
(buff .. ahora que veo mi "for" me dejé la comparación <= ¬¬)

mm Pues restale uno ... y si los indices no comienzan el 0 .. comienza en $i=1 .. (en teoría comienzan en 0) ..

for($i=0;$i<=$contador-1;$i++){

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 29/12/2003, 13:54
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
Ok lo haré pero mejor le voy a restar uno porque antes habia comenzadoi en 1 cuando se me presento el problema pues se comia un dato completo asi que le restare uno y te aviso muchas gracias.............. ya lo hice y me resulto restandole uno vale muchas gracias una pregunta de yapa crees que se podría crear un area de chat en php. :)
  #10 (permalink)  
Antiguo 29/12/2003, 14:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
gracias una pregunta de yapa crees que se podría crear un area de chat en php. :)
A que te refieres? ..

- a crear un chat en PHP para tu apliación ..?
- a crar un chat en forosdelweb?

Bueno, .. sobre un chat en PHP .. no son de lo mejor y más fluidos .. pero poder se puede hacer (de hecho hay muchos ya implementados). Para mi la mejor opción para un chat es un canal IRC y un interface Applet Java. Es lo más fluido y mejor controlado que conozco.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 29/12/2003, 14:23
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
ok gracias no es para mi aplicación es una curiosidad gracias
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 09:42.