Foros del Web » Programando para Internet » PHP »

Sustituir Variables en Sentencias SQL

Estas en el tema de Sustituir Variables en Sentencias SQL en el foro de PHP en Foros del Web. Buenas amigo, mi problema es muy simple, es el siguiente: Tengo una tabla que se llama contrato, alli hay una series de clausulas, en donce ...
  #1 (permalink)  
Antiguo 22/05/2009, 21:12
 
Fecha de Ingreso: abril-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Sustituir Variables en Sentencias SQL

Buenas amigo, mi problema es muy simple, es el siguiente:

Tengo una tabla que se llama contrato, alli hay una series de clausulas, en donce dice por ejemplo "Sr Pedro Pérez", como esa tabla la voy a usar con cualquier usuario de la pagina lo que quiero es poder colocar el nombre que yo quiera dependiendo de la persona a la que le voy a generar ese contrato. Lo que se me ocurrió pero no me funciono fue colocar "Sr".$nombre."" y luego en mi codigo php tener una variable llamada "$nombre" pero no se sustituye el valor solo muestra:
"Sr $nombre". Bueno espero haberme explicado. Gracias y Saludos.
  #2 (permalink)  
Antiguo 22/05/2009, 21:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sustituir Variables en Sentencias SQL

no tiene nada que ver, básicamente una variable funciona igual... siempre!!

si algo esta mal con tu lógica, obviamente todo va a ir mal...

mira este ejemplo, veras que es muy sencillo.... se no lo haces así, es obvio que va a fallar algo...

Código PHP:
$foo 'bar';
$candy 'does';

$sql "SELECT FROM $candy WHERE campo = 'Sr. $foo'";
// SELECT FROM does WHERE campo = 'Sr. bar' 
NOTA que las variable dentro de comillas dobles, si son evaluadas... si lo haces con comillas sencillas, pues no!

lee el siguiente tema:
http://www.forosdelweb.com/f18/como-...1/#post2414268

¿¿como es que lo haces en tu código??

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/05/2009, 22:04
 
Fecha de Ingreso: abril-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Respuesta: Sustituir Variables en Sentencias SQL

Amigo creo que no me explique bien. Yo se eso que me dijiste.

Pero yo lo que quiero es hacer un select * from de la tabla contrato, un select normal por eso no hay rollo. Eso me va a traer cierta información de la base de datos, pero ciertas partes de esa información es variable, como por ejemplo el nombre de la persona a la que se le va a generar el contrato, mi pregunta es como incluir esa información variable despues de traerme la información de la base de datos. Gracias por tu respuesta y saludos.
  #4 (permalink)  
Antiguo 23/05/2009, 01:58
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Sustituir Variables en Sentencias SQL

no entendi muy bien el problema. pero creo que lo que no sabes (creo) es como sacar los differentes nombres de la tabla... puede ser????

si es eso, te dejo un pequeño codigo para que le heches un vistazo.

Código PHP:
//nos conectamos a la bd
//..............................

//preparamos la query
$sql="SELECT * FROM tabla_contrato";
$respuesta=mysql_query($sql) or die(mysql_error());
while(
$datos=mysql_fetch_array($respuesta))
{
     
//supongamos que un tu tabla, la columna donde tienes los nombres
//se llama "nombre"
     
$nombre_persona=$datos['nombre'];
     echo 
'Sr '.$nombre_persona;

espero que te sirva..
  #5 (permalink)  
Antiguo 23/05/2009, 09:38
 
Fecha de Ingreso: abril-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Respuesta: Sustituir Variables en Sentencias SQL

No amigo no es eso. De todas formas muchas gracias por tu respuesta.

Bueno voy a tratar de ser mas claro en mi explicación.

Yo tengo una tabla, supongamos que tiene un solo campo de tipo varchar(500), dentro de ese campo tengo almacenado un texto ejemplo: "El contrato se le va a generar a la persona XXXXXXXXX en la fecha XXXXXXXX y quien firma es XXXXXXXXX".

Ese texto, que tengo en la base de datos, yo lo voy a usar para generar muchos contratos de diferentes usuarios. Lo que quiero saber es como sustituir esas "XXXXXXXX" que me estan llegando de la base de datos por los nombres de las personas, las fecha del contrato, ect.

Espero haberme explicado. Gracias y Saludos.
  #6 (permalink)  
Antiguo 23/05/2009, 09:52
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Sustituir Variables en Sentencias SQL

weno checa este ejemplo a ver si es mas o menos lo que quieres:

Código PHP:
<?php
$cadena
="El contrato se le va a generar a la persona XXXXX en la fecha YYYYY y quien firma es ZZZZZ";

$nombre="Pedro";
$fecha=date("d/m/Y");
$usuario="Juan";

$cadena=str_replace("XXXXX",$nombre,$cadena);
$cadena=str_replace("YYYYY",$fecha,$cadena);
$cadena=str_replace("ZZZZZ",$usuario,$cadena);

echo 
$cadena;
?>
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #7 (permalink)  
Antiguo 23/05/2009, 10:02
 
Fecha de Ingreso: abril-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Respuesta: Sustituir Variables en Sentencias SQL

Si amigo, eso es lo que quiero, y esa sería una forma. Sin embargo al ser un texto tan grande no quedaria muy eficiente que digamos. No hay manera de por ejemplo de colocar algo asi: "El contrato se le va a generar a la persona &nombre en la fecha &fecha y quien firma es &firma". Y luego que se sustituya eso automáticamente ??. Ya lo probe colocadole $nombre y no me sustituye el valor de la variable si no que me coloca $nombre.
  #8 (permalink)  
Antiguo 23/05/2009, 10:10
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Sustituir Variables en Sentencias SQL

pues por que esa cadena al momento de guardarla en la base de datos la variable nombre no tiene valor, te recomiendo que si es un formato establecido pues lo pongas en tu html y cuando ingreses los datos de fecha y nombres utilizes ese formato algo asi:

el usuario ingreso los nombres

$usuario="pedro";
$nombre="blablabla";

y ahora imprimas los valores;

echo "el usuario que se llama $usuario bla bla y el otro $nombre";

asi solamente seria o como te dije
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #9 (permalink)  
Antiguo 23/05/2009, 10:14
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Sustituir Variables en Sentencias SQL

o como obtienes el nombre de tus usarios y la fecha desde un form entons en el campo de la base de datos guardalo asi por ejemplo si el formulario viene del metodo post: es un ejemplo espero te sirva

Código PHP:
<?php
$cadena
="El contrato se le va a generar a la persona $_POST[usuario] en la fecha YYYYY y quien firma es ZZZZZ";

echo 
$cadena;

<
form method="post" action="">
<
input type="text" name="usuario" />
<
input type="submit" />
</
form>
cuando ves la pagina por vez primera no se visualiza el nombre de la persona pero cuando envias el form con un dato en el input cambia la cadena y pone lo que introduciste en el input
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #10 (permalink)  
Antiguo 23/05/2009, 20:44
 
Fecha de Ingreso: abril-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Respuesta: Sustituir Variables en Sentencias SQL

Muchas gracias amigo por la respuesta. voy a usar el
Código PHP:
$cadena=str_replace("XXXXX",$nombre,$cadena); 
.

Saludos y gracias de nuevo.
  #11 (permalink)  
Antiguo 24/05/2009, 00:42
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
De acuerdo Respuesta: Sustituir Variables en Sentencias SQL

La solución de By_George me parece la mejor.

Trabaja con etiquetas, algo asi {{nombre}}, {{apellido}}, etc y despues usas el str_replace.

Muy bueno.
Saludos
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 05:02.