primero creo el array con los valores (codigos) que quiero enviar
y luego:
<input name="list[]" type="hidden" value="<? $lista ?>">
pero cuando consulto la variable $list en el escrip donde lo envio me da error...
alguien puede ayudarme please
![borracho](http://static.forosdelweb.com/fdwtheme/images/smilies/borracho.png)
| |||
Hola ¿Como referencias la matriz?.Si pones el error en el post mejor. Supongo que para acceder a ella pondras Código PHP:
__________________ :risa: RAPI91 :) |
| ||||
bueno lo que pasa es que en el array paso codigos de una tabla (BD) y lo que pretendo hacer son cosas como esta: $SQL = "DELETE FROM sugerencia WHERE idEnc=".$list[$i].""; $SQLresult = mysql_query($SQL,$conexion); osea, lo que quiero es ir recorriendo el array y hacer modificaciones a la BD
__________________ Que mas queda... tener Paciencia :-D |
| ||||
Saludos. Si lo quieres correr, coloca la Instrucción DELETE dentro de un for for ($i=0; $i<=$count($list); $i++) { $SQL = "DELETE FROM sugerencia WHERE idEnc=".$list[$i].""; $SQLresult = mysql_query($SQL,$conexion); ---ect } No que no entiendo es porque estas pasando eso en un campo oculto del formulario. Entonces el formulario para que es?? Plantea lo que haces a ver si te podemos ayudar a mejorar la lógica que estas usando. Suerte
__________________ José Molina La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente. Última edición por José Molina; 13/09/2004 a las 14:56 |
| ||||
Para ti quien es $nume?? $nume debería ser la cantidad de elementos del arrecho $i.
__________________ José Molina La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente. |
| |||
Si usas un foreach() . .te puedes evitar el for() y el count() que te hace falta para recorrer dicho array: Código PHP: http://www.forosdelweb.com/showthrea...710#post518710 Un saludo, |
| ||||
ok, a ver... esto es para un sistema de encuestas son tres paginas.php: la primera muestra un conjunto de chekboxs para que el usuario seleccione la encuesta que desea eliminar o solo borrar los resultados almacenados (la cantidad de encuestas es variable). la segunda es para confirmar la accion de eliminar la encuesta y toma los valores provenientes de los chekboxs y los almacena en el array. la tercera deberia tomar los valores del array y aplicar la sentencia SQL para eliminar del sistema la(s) encuesta(s) seleccionadas. el codigo: (es extenso) pagina 1: la llamo "vencuestas.php" $SQL = "SELECT COUNT(*) FROM encuesta"; $SQLresult = mysql_query($SQL,$conexion); $nume = mysql_fetch_array($SQLresult); if($nume > 0) { echo"<form name=\"forme\" method=\"post\" action=\"eliminaE.php\" target=\"muestrae\"> <p align=\"center\"> <font color=\"#000080\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>ENCUESTAS DE ALTA</strong></font> </p> <table width=\"90%\" align=\"center\" border=\"1\" cellspacing=\"1\" cellpadding=\"3\"> <tr> <td width=\"6%\" bgcolor=\"#FFFFFF\"> </td> <td width=\"50%\" align=\"center\" bgcolor=\"#EFF1F8\"> <font size=\"2\" color=\"#000080\" face=\"Verdana, Arial, Helvetica, sans-serif\">CURSO</font> </td> <td width=\"25%\" align=\"center\" bgcolor=\"#EFF1F8\"> <font size=\"2\" color=\"#000080\" face=\"Verdana, Arial, Helvetica, sans-serif\">PLANTILLA</font> </td> <td width=\"15%\" align=\"center\" bgcolor=\"#EFF1F8\"> <font size=\"2\" color=\"#000080\" face=\"Verdana, Arial, Helvetica, sans-serif\">Aplicada en fecha</font> </td> </tr>"; $SQL = "SELECT * FROM encuesta"; $SQLresult = mysql_query($SQL,$conexion); while($enc = mysql_fetch_array($SQLresult)) { $SQL1 = "SELECT nombplantilla FROM plantilla WHERE nformato=$enc[2]"; $SQLresult1 = mysql_query($SQL1,$conexion); $plantilla = mysql_fetch_array($SQLresult1); // cambia el formato de la fecha if($enc[3] != '0000-00-00') { $var = explode('-',$enc[3]); $fecha = "$var[2]-$var[1]-$var[0]"; } else{$fecha = "xx-xx-xxxx";} $nombchk = "encuesta".$enc[0]; echo"<tr> <td align=\"center\" bgcolor=\"#EFF1F8\"> <input name=\"".$nombchk."\" type=\"checkbox\" value=\"".$enc[0]."\"> </td> <td bgcolor=\"#EAEAEA\"> <font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$enc[1]."</font> </td> <td bgcolor=\"#EAEAEA\"> <font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$plantilla[0]."</font> </td> <td align=\"center\" bgcolor=\"#EAEAEA\"> <font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$fecha."</font> </td> </tr>"; } echo"<tr> <td> </td> <td colspan=\"3\"><font size=\"-1\">Para la(s) encuesta(s) selecionada(s):</font></td> </tr> <tr> <td> </td> <td colspan=\"3\"> <input name=\"elimina\" type=\"submit\" value=\"Eliminar Encuesta\"> Ó <input name=\"elimina\" type=\"submit\" value=\"Eliminar Resultados\"> </td> </tr> </table> </form>\n"; } pagina 2: la llamo "eliminaE.php" <? switch($elimina) { case "Eliminar Encuesta": $alert = "ESTA SEGURO DE ELIMINAR LA(S) ENCUESTA(S) PARA: "; break; case "Eliminar Resultados": $alert = "ESTA SEGURO DE ELIMINAR LOS RESULTADOS DE: "; break; } ?> <br><br> <form name="forme2" method="post" action="sqlelimE.php"> <table align="center" width="80%" border="1" bordercolor="#FFFFFF" cellspacing="0" cellpadding="6"> <tr> <td bordercolor="#005E8A" bgcolor\"#EFF1F8"> <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? echo $alert ?></font></p> <? include("../conect.php"); $conexion = Conectar("encusisp"); $SQL = "SELECT * FROM encuesta"; $SQLresult = mysql_query($SQL,$conexion); $i = 0; while($enc = mysql_fetch_array($SQLresult)) { $nombchk = "encuesta".$enc[0]; if($_POST[$nombchk] == $enc[0]) { $lista[$i] = $enc[0]; ++$i; echo"<p><font size=\"2\" color=\"#000080\" face=\"Verdana, Arial, Helvetica, sans-serif\">\"".$enc[1]."\"</font></p>"; } } ?> <p align="center"><a href="javascript:document.forme2.submit();"><font size="2" face="Geneva, Arial, Helvetica, sans-serif">Eliminar</font></a></p> <p align="center"><a href="vencuestas.php" target="muestrae"><font size="2" face="Geneva, Arial, Helvetica, sans-serif">Cancelar</font></a></p> </td> </tr> </table> <input name="list[]" type="hidden" value="<? $lista ?>"> <input name="nume" type="hidden" value="<? echo ($i-1) ?>"> <input name="accion" type="hidden" value="<? echo $elimina ?>"> </form> pagina 3: la llamo "sqlelimE.php" <? include("../conect.php"); $conexion = Conectar("encusisp"); switch($accion) { case "Eliminar Encuesta": for($i=0;$i<=$nume;$i++) { $SQL = "DELETE FROM encuesta WHERE idenc=".$list[$i].""; $SQLresult = mysql_query($SQL,$conexion); $SQL = "DELETE FROM votos WHERE idEnc=".$list[$i].""; $SQLresult = mysql_query($SQL,$conexion); $SQL = "SELECT COUNT(*) FROM sugerencia WHERE idEnc=".$list[$i].""; $SQLresult = mysql_query($SQL,$conexion); $num = mysql_fetch_array($SQLresult); if($num != 0) /* la encuestas pide sugerencias y tambien hay que eliminarlas */ { $SQL1 = "SELECT * FROM sugerencia WHERE idEnc=".$list[$i].""; $SQLresult1 = mysql_query($SQL1,$conexion); while($file = mysql_fetch_array($SQLresult1)) { $rutafile = "../comentarios/".$file[1].".txt"; if(file_exists($rutafile)&&is_file($rutafile)) { unlink($rutafile); } } $SQL = "DELETE FROM sugerencia WHERE idEnc=".$list[$i].""; $SQLresult = mysql_query($SQL,$conexion); } } $mensaje = "ENCUESTA(S) ELIMINADA(S) DEL SISTEMA"; break; case "Eliminar Resultados": (analogo al anterior) ojala se entienda y me puedan ayudar...
__________________ Que mas queda... tener Paciencia :-D Última edición por CRISMA; 13/09/2004 a las 15:55 |
| |||
No sé si leistes la FAQ que te hice mención en el link anterior .. pero sea como sea siempre tienes un grupo de checkbox que deberías tratar como array del tipo: En lugar de: <input name=\"".$nombchk."\" type=\"checkbox\" value=\"".$enc[0]."\"> (que generas checkbox de nombre variable1,varaible2,variableN usar: <input name=\"nombre[]\" type=\"checkbox\" value=\"".$enc[0]."\"> Para que con un simple foreach() puedas recorrer el array que obtendras en $_POST['nombre'] Un saludo, |