PHP-Variables...

Hola.. Soy nueva en esto y espero que puedas ayudarme.. Estoy programando en PHP con MySQl y mi problema es que, tengo una lista de captura de precios, en la cual, cada precio se guarda en un input type="text" y el nombre que le asigno a ese input es el ID del articulo correspondiente, todo esto en un ciclo while.. El problema es que al momento de ejecutar la sentencia SQL y ponerle que en ese campo asigne el valor que esta en la variable cuyo nombre corresponde al ID del articulo y le concateno el signo $ para que lo tome como variable, el SQL me lo toma como texto guardándome solamente el ID del articulo y no el valor que tendría esa variable...
El query es:
While ($count<$NoRegistros)
{
$sSQL = "INSERT INTO Precios VALUES (";
$sSQL = $sSQL . "'$sess_usuario_id', ";
$sSQL = $sSQL . "'$cve_articulo', ";
$sSQL = $sSQL . "'".$rsUsId->fields('Usuario_Id')."', ";
$sSQL = $sSQL . "'$unidad', ";
$sSQL = $sSQL . "'NOTA: Aquì es en donde necesito que cambie el valor de manera dinàmica, de acuerdo a la clave del artìculo y este valor està registrado en un input text, pero al poner el nombre y concatenarlo con $ para convertirlo en variable me lo toma como string' ";
$sSQL = $sSQL . ")";
$rs = $conn->Execute($sSQL) or die('No fue posible insertar el registro');
$count=$count+1;
$rsUsId->MoveNext();
}
La duda en sì es como hacer que en lugar de que una concatenación me la tome como string, lo haga como variable.. Es decir, tengo una variable llamada Artículos pero para PHP tengo que ponerle el $ antes, al concatenarlo y meterlo en la sentencia SQL lo toma como string...
El problema esta en que el nombre de mi variable cambia dependiendo el usuario... Es decir, si mi usuario tiene un ID USU2005, la variable creada por el HTML es $USU2005... Quiero almacenar muchos registros en los cuales el ID del usuario cambia y por consiguiente el nombre de mi variable... ¿el problema concreto? Al momento de concatenar $ con el ID de usuario para que me regrese el valor que tiene en esa variable que le fue enviada por el HTML, en la sentencia SQL no me lo toma como variable, lo toma como string, es decir, le pongo insert... "'". '$'.IDUsuario."'", en lugar de arrojarme el valor que tendría esta variable, en la BD la almacena como $IDUsuario.. Me explique un poquito más.. Gracias!

1 Respuesta

Respuesta
1
Creo que entendí, y si no, te pido que insistas... ¿si?.. Bueno.. tu problema, según creo yo se puede resolver de dos maneras:
1) Es la función eval, de la que puedes sacar información y ejemplos en:
http://www.php.net/manual/es/function.eval.php
2) El método que supongo más natural, fácil, rápido es utilizar arrays. ¿Sabes manejarlos? Es fácil aplicarlo a tu caso:
Supón el tema de los precios:
<?php
$Codigo="01101";//Esto seguro lo obtienes de unas consultas sql.
$Codigo1="01002";//Esto tambien.
Hola, digita el precio:<input type="text" name="Precio[<?php echo $Codigo; ?>]"><br>
y Otro Precio:<input type="text" name="Precio[<?php echo $Codigo1; ?>"><br>
</html>
Bueno.. ahora en el php que recibe, vas a recibir las siguientes variables (Ejemplo):
$Precio["01101"]="10.50";
$Precio["01002"]="11.20";
Entonces, puedes agregar al SQL:
while (list($clave, $valor)=each($Precio)) {
$Sql="update precios set precio='$valor' where codigo='$clave'";
$Res=mysql_query($Sql);
}
Esto creara las siguientes sentencias:
update precios set precio='10.50' where codigo='01101'
update precios set precio='11.20' where codigo='01002'
¿Se entiende?
Bueno.. si no, por favor, te pediría que me adjuntes los DOS php.
Suerte.
Pablo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas