Bucle PHP dentro de un mysql_query()?

soanix

Buenas,

Estoy buscando como loco la manera de poder meter un bucle por ejemplo FOR de php dentro de un mysql_query.

Os doy un ejemplo para que me entendais (logicamente no funciona):

$sql = mysql_query("UPDATE "._DB_PREFIX_."product SET ".for ($c=0; $c < $num; $c++){$cols = $_POST['cols'.$c];}."', updated = '1' WHERE `".$columna."` = '".$read[0]."'");

Alquien sabe como hacer eso?

He buscado por ahí algo sobre eval() pero no he entendido nada.

Un saludo y gracias por adelantado

MrTurbo

No entiendo porque te complicas tanto...

Lo más fácil es que hagas el bucle fuera del mysql_query, algo tal que así:

for ($c=0; $c < $num; $c++){$cols .= $_POST['cols'.$c];}

$consulta = "UPDATE "._DB_PREFIX_."product SET ".$cols."', updated = '1' WHERE `".$columna."` = '".$read[0]."'";

$sql = mysql_query($consulta);
1 respuesta
soanix

#2

Realmente la consulta es esta

While ($read = fgetcsv($fopen, 1000, ';'))

	{

	    

	    if ($files->ExistRefInDB($read[0], $proveedor))

	    {

		//Posts de columnas

		

		//Quiero meter un for dentro de esta consulta

		

		    if(!($cols == 'ignore' or $cols == 'reference'))

		    {

			    for ($c=0; $c < $num; $c++){$cols .= $_POST['cols'.$c];}



				$consulta = "UPDATE "._DB_PREFIX_."product SET ".$cols."', updated = '1' WHERE `".$columna."` = '".$read[0]."'";

			    

				$sql = mysql_query($consulta);

		    }

		

	    }

		

	}

Y necesito hacer el bucle para tener los resultados de las columnas ($cols) y de $read[$c] por ejemplo $read[1] o $read[2].

LO mismo si qu eme estoy complicando sin necesidad. Pero necesito ganar velocidad de escritura que me tarda siglos en actualizar 10000 registros

IAF

lo q pasa es que dentro del for concatenas variables una tras otra sin dejar espacio y coma entre ellas
y sino haz un echo($consulta) y a ver como sale la consulta! =)

Usuarios habituales

  • IAF
  • soanix
  • MrTurbo