Foros del Web » Programando para Internet » PHP »

Please. alguien me ayuda? mi php se cuelga

Estas en el tema de Please. alguien me ayuda? mi php se cuelga en el foro de PHP en Foros del Web. Hola muchachos, estoy desesperado. Nose lo que puede ser. Quiero actualizar mi base de datos. pòr ende pase a un array todos los registros que ...
  #1 (permalink)  
Antiguo 14/06/2006, 14:03
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 12 años, 6 meses
Puntos: 1
Please. alguien me ayuda? mi php se cuelga

Hola muchachos, estoy desesperado. Nose lo que puede ser. Quiero actualizar mi base de datos. pòr ende pase a un array todos los registros que quiero actualizar (porque solo voy a acutalizar algunos).

en $id, tengo todos los id a actualiar, este es un array, nose con 100 numero mas o menos.

El problema es el siguiente, hasta los 1eros 20 registros, me los actualiza bien, si en ves de 20 pongo 30. ahi mi codigpo se queda. Y se que $id[30] EXISTE. nose si es mi APACHE o mi PHP, si fuera asi me dirian como solucionarlo?? Desde Ya muchas Gracias amigos.



for ($i=0;$i<20;$i++)
{
$contador2=$id[$i];
$con17 = mysql_connect("localhost",$usuario,$pass) or die (mysql_error()); mysql_select_db($base,$con17) or die (mysql_error());
$sql = "UPDATE info set categoriapropia='Anime' where id_interno='$contador2'";
$result4 = mysql_query($sql,$con17);
mysql_free_result($result4);
mysql_close($con17);
}
  #2 (permalink)  
Antiguo 14/06/2006, 15:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
PHP tiene bastantes límites en cuanto a tiempo de ejecución (por defecto 30 segundos si no cabiastes nada en tu configuración) .. de memoria consumida por tu script (unos cuantos Mb por defecto ...).

El problema principal en tu caso es que metes en tu bucle la conexión a la BBDD .. NO DEBES HACERLO ASÍ, .. saca la conexión a tu BBDD de tu bucle .. conectate -fuera- de el ..

Código PHP:
$con17 mysql_connect("localhost",$usuario,$pass) or die (mysql_error()); 
mysql_select_db($base,$con17) or die (mysql_error()); 

for (
$i=0;$i<20;$i++){

$contador2=$id[$i];

$sql "UPDATE info set categoriapropia='Anime' where id_interno='$contador2'";
$result4 mysql_query($sql,$con17);
 
// mysql_free_result($result4); <-- NO es necesario .. un UPDATE no genera resultado .. es útil si haces SELECT sólo ...
}
mysql_close($con17); 
No entiendo mucho el cometido de ese bucle .. fijando por un n° de ID una actualización de ciertos campos de una tabla .. En SQL de Mysql tienes la función:

Cita:
UPDATE tabla SET campo='valor' WHERE id_interno IN (lista de valores separados por comas)
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 20:01.