Foros del Web » Programando para Internet » PHP »

Intercambiar dos valores (un precio)

Estas en el tema de Intercambiar dos valores (un precio) en el foro de PHP en Foros del Web. Hola a todos. Tengo que realizar lo siguiente: Tengo en una tabla de mi base de datos dos campos que son: -precio_gbp -precio_euros Los valores ...
  #1 (permalink)  
Antiguo 10/06/2007, 04:47
 
Fecha de Ingreso: mayo-2007
Mensajes: 18
Antigüedad: 17 años
Puntos: 0
Intercambiar dos valores (un precio)

Hola a todos. Tengo que realizar lo siguiente:

Tengo en una tabla de mi base de datos dos campos que son:
-precio_gbp
-precio_euros

Los valores de estos campos se muestran en una pagina de resultados de una busqueda, y por defecto aparece el campo precio_gbp.

Necesito mediante un enlace que pone euros recargar la página y que muestre el valor del campo precio_euros y tambien cambie el texto y pase a poner pounds, para que al volver a recargar la pagina con el enlace vuelva a mostrar el campo precio_gbp

No se si me he explicado bien, pero es un tema complicado para mi.

Si alguien me puede ayudar

Muchas gracias!!!
  #2 (permalink)  
Antiguo 10/06/2007, 05:43
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Re: Intercambiar dos valores (un precio)

Con la información que aportas yo haría lo siguiente.
Haría que el enlace euros me llevara a la misma página donde se encuentra (usando $PHPSELF) pero mandando una nueva vble llamada tipo_precio con valor precio_euros.
Luego, al principio de la página pondría una condición:
Código PHP:
if(isset($_GET['tipo_precio']) && $_GET['tipo_precio']=="precio_euros"){
/*
Ejecuto la sentencia SQL para que me obtenga las filas pero con el campo precio_euro.
*/
}else{
/*
Ejecuto la sentencia SQL para que me obtenga las filas pero con el campo precio_gbp.
*/

__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #3 (permalink)  
Antiguo 10/06/2007, 06:45
 
Fecha de Ingreso: mayo-2007
Mensajes: 18
Antigüedad: 17 años
Puntos: 0
Re: Intercambiar dos valores (un precio)

Muchas gracias por tu respuesta angelcaido. Soy bastante nuevo en php y aunque entiendo tu solución, no se bien como implantarla.

Esta es la sentencia SQL:

Código:
SELECT propiedad_id, nombre_propiedad, comunidad_autonoma, provincia, poblacion, referencia, precio_eur, precio_gbp, sup_construida_m2, sup_construida_ft2, habitaciones, miniatura_url, mapa_url FROM propiedades ORDER BY propiedad_id DESC
y tengo el enlace en la pagina:

Código:
<?php echo $row_rsResultados['precio_gbp']; ?>|<a href="14_all_properties.php"> EUROS</a>
Entonces, ¿el SQL deberia quedarse como está o hay que modificarlo?.
¿Como hago el enlace usando $PHPSELF?

Muchisimas gracias por todo, y perdonad mi ignorancia!!!!
  #4 (permalink)  
Antiguo 10/06/2007, 08:52
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Re: Intercambiar dos valores (un precio)

No pidas perdón por intentar aprender
La sentencia SQL la tienes bien, no hay que cambiarla.

el enlace en la pagina sería:
Código:
<?php echo $precio; ?>|<a href="<?php echo $_SERVER['PHP_SELF'];?>&tipo_precio=precio_eur"> EUROS</a>
Y el código que te comentaba que tienes que poner al principio de la página sería así :
Código PHP:
if(isset($_GET['tipo_precio']) && $_GET['tipo_precio']=="precio_eur"){
     
$precio=$row_rsResultados['precio_eur'];
}else{
     
$precio=$row_rsResultados['precio_gbp'];

Date cuenta que este código debe ir despues de que ejecutes tu sentencia SQL.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #5 (permalink)  
Antiguo 10/06/2007, 09:37
 
Fecha de Ingreso: mayo-2007
Mensajes: 18
Antigüedad: 17 años
Puntos: 0
Re: Intercambiar dos valores (un precio)

angelcaido, me funciona y me cambia el precio, pero me muestra siempre el mismo precio en todos los resultados de la consulta, es decir todos los registros tienen el mismo precio. No se a que es debido.

Y otra duda. Cuando se recarga la página al pulsar el enlace, deberia cambiar el enlace para que al volver a pulsar vuelva a cambiar el precio, es decir, si tengo originalmente el precio en euros y pulso, cambia a libras esterlinas, pero deberia cambiar el enlace para que al volver a pulsar vuelva a cambiar a euros.

Muchisimas gracias por tu ayuda!!!
  #6 (permalink)  
Antiguo 10/06/2007, 09:50
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Re: Intercambiar dos valores (un precio)

Vale, supongo que para la obtencion de los resultados de la consulta haces un bucle. ¿Puedes ponerme el código de cómo cargas los resultados de la consulta SQL y también el código de cómo muestras dicha información?
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #7 (permalink)  
Antiguo 10/06/2007, 10:09
 
Fecha de Ingreso: mayo-2007
Mensajes: 18
Antigüedad: 17 años
Puntos: 0
Re: Intercambiar dos valores (un precio)

Te pongo el código . Esta un poco liado
Código:
<?php require_once('../Connections/ruralspainproperties.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
mysql_select_db($database_ruralspainproperties, $ruralspainproperties);
$query_rsResultados = "SELECT propiedad_id, nombre_propiedad, comunidad_autonoma, provincia, poblacion, referencia, precio_eur, precio_gbp, sup_construida_m2, sup_construida_ft2, habitaciones, miniatura_url, mapa_url FROM propiedades ORDER BY propiedad_id DESC";
$rsResultados = mysql_query($query_rsResultados, $ruralspainproperties) or die(mysql_error());
$row_rsResultados = mysql_fetch_assoc($rsResultados);
$totalRows_rsResultados = mysql_num_rows($rsResultados);

if(isset($_GET['tipo_precio']) && $_GET['tipo_precio']=="precio_gbp"){
     $precio = $row_rsResultados['precio_eur'];
}else{
     $precio = $row_rsResultados['precio_gbp'];
}
?>


<body>

<!-- INICIO ANCHO PAGINA -->

<div id="container">

	<!-- INICIO CABECERA -->
<?php require_once('includes/header.php'); ?>
	<!-- FIN CABECERA -->
	
	<!-- INICIO NAVEGACION -->
	
	<div id="navegacion">
	
		<!-- INICIO MENU IZDA -->
<?php require_once('includes/menu.php'); ?>
		<!-- FIN MENU IZDA -->
		
		<!-- INICIO QUICK PROPERTY SEARCH -->
		<?php include('search.php'); ?>
		<!-- FIN QUICK PROPERTY SEARCH -->	
	
		<!-- INICIO LEGAL -->
		
		<?php require_once('includes/legal.php'); ?>
		
		<!-- FIN LEGAL -->
	</div>
	
<!-- FIN NAVEGACION -->
	
	<!-- INICIO CUERPO CENTRAL -->
	
  <div id="contenido">
	
		<div id="search_results_titular"><h3>SEARCH RESULTS</h3></div>
		
        <?php do { ?>
        <?php if ($totalRows_rsResultados > 0) { // Show if recordset not empty ?>
    <div id="search_results_fondo">
            
            <!-- INICIO CONTENEDOR FOTO -->
            
            <div id="search_results_foto"><a href="13_a_property_information.php?propiedad_id=<?php echo $row_rsResultados['propiedad_id']; ?>&amp;referencia=<?php echo $row_rsResultados['referencia']; ?>&amp;provincia=<?php echo $row_rsResultados['provincia']; ?>"><img src="<?php echo $row_rsResultados['miniatura_url']; ?>" alt="photo" title="photo" /></a></div>
			  
<!-- FIN CONTENEDOR FOTO -->
            
            <!-- INICIO CONTENDEDOR TEXTO -->
            
            <div id="search_results_texto">			
              <ul>
                <li><span class="destacado_negrita"><a href="13_a_property_information.php?propiedad_id=<?php echo $row_rsResultados['propiedad_id']; ?>&amp;referencia=<?php echo $row_rsResultados['referencia']; ?>&amp;provincia=<?php echo $row_rsResultados['provincia']; ?>" class="general_enlace"><?php echo $row_rsResultados['nombre_propiedad']; ?></a></span></li>
				  <li>Village/Town: <?php echo $row_rsResultados['poblacion']; ?></li>
				  <li>Province: <?php echo $row_rsResultados['provincia']; ?></li>
				  <li>Ref. <?php echo strtoupper($row_rsResultados['referencia']); ?></li>
				  <li>Bedrooms <span class="destacado_negrita"><?php echo $row_rsResultados['habitaciones']; ?></span></li>
				  <li>Build Size: <?php echo number_format($row_rsResultados['sup_construida_ft2'],0,'.',','); ?> aprox. | <a href="javascript:;" class="general_boton_flecha">SQUARE METERS</a></li>
			      <li><?php echo $precio; ?>|<a href="<?php echo $_SERVER['PHP_SELF'];?>?tipo_precio=precio_eur"> EUROS</a></li>
		      </ul>
		      <div class="clear"></div>			
	  </div>
	    <div class="clear"></div>
			  
			<!-- FIN CONTENEDOR TEXTO -->
    </div>
          
    <?php } // Show if recordset not empty ?>
<p>
            <?php } while ($row_rsResultados = mysql_fetch_assoc($rsResultados)); ?>
    </p>
          
          <?php if ($totalRows_rsResultados == 0) { // Show if recordset empty ?>
<div id="search_results_fondo2">
            <!-- INICIO CONTENEDOR FOTO -->
            <!-- FIN CONTENEDOR FOTO -->
            <!-- INICIO CONTENDEDOR TEXTO -->
<div id="search_results_texto2">
      </div>
            <div class="clear">
              <div id="titol">
                <div> 
                  <p align="center"><strong>Search results:</strong>There are no results for your search</p>
                </div>
              </div>
            </div>
            <!-- FIN CONTENEDOR TEXTO -->
    </div>
          
<?php } // Show if recordset empty ?>
<p>&nbsp; </p>
  </div>
	<div class="clear"></div>
    
	
	<!-- FIN CUERPO CENTRAL -->

</div>

<!-- FIN ANCHO PAGINA -->

</body>
</html>
<?php
mysql_free_result($rsResultados);
?>
  #8 (permalink)  
Antiguo 11/06/2007, 05:43
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Re: Intercambiar dos valores (un precio)

Ok, según tienes el código lo vamos a hacer de otra manera. Hay que quitar el if que pusimos al principio de la página, lo vamos a ahcer directamente en el proceso de muestra de datos. Te muestro sólo el código del <body> porque es que le cambia.
Código HTML:
<!-- INICIO CONTENDEDOR TEXTO -->
<div id="search_results_texto">			
              <ul>
                <li><span class="destacado_negrita"><a href="13_a_property_information.php?propiedad_id=<?php echo $row_rsResultados['propiedad_id']; ?>&amp;referencia=<?php echo $row_rsResultados['referencia']; ?>&amp;provincia=<?php echo $row_rsResultados['provincia']; ?>" class="general_enlace"><?php echo $row_rsResultados['nombre_propiedad']; ?></a></span></li>
				  <li>Village/Town: <?php echo $row_rsResultados['poblacion']; ?></li>
				  <li>Province: <?php echo $row_rsResultados['provincia']; ?></li>
				  <li>Ref. <?php echo strtoupper($row_rsResultados['referencia']); ?></li>
				  <li>Bedrooms <span class="destacado_negrita"><?php echo $row_rsResultados['habitaciones']; ?></span></li>
				  <li>Build Size: <?php echo number_format($row_rsResultados['sup_construida_ft2'],0,'.',','); ?> aprox. | <a href="javascript:;" class="general_boton_flecha">SQUARE METERS</a></li>
			      <li>
<?php if(isset($_GET['tipo_precio']) && $_GET['tipo_precio']=="precio_eur"){
     echo $row_rsResultados['precio_eur'].' | <a href="'.$_SERVER['PHP_SELF'].'?tipo_precio=precio_gbp">pasar a Libras</a>';
}else{
     echo $row_rsResultados['precio_gbp'].' | <a href="'.$_SERVER['PHP_SELF'].'?tipo_precio=precio_eur">pasar a Euros</a>';
} ?>
                          </li>
		      </ul>
		      <div class="clear"></div>			
	  </div>
	    <div class="clear"></div>
			  
			<!-- FIN CONTENEDOR TEXTO --> 
Si no he metido la pata al concatenar las cadenas y demás creo que el código sería ese.
De todas formas, aunque te funcione, es interesante que entiendas lo que se está haciendo en este código. Lo único que le he incorporado a un código es una condición.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #9 (permalink)  
Antiguo 11/06/2007, 11:43
 
Fecha de Ingreso: mayo-2007
Mensajes: 18
Antigüedad: 17 años
Puntos: 0
Re: Intercambiar dos valores (un precio)

Angelcaido, funcionaaaaaaaaaaaaaaaa!!!!!!!

Eres el p...... amo. Funciona perfectamente. Ahora puedo intercambiar el tipo de moneda dependiendo de que se cumpla o no la condición.

De todas formas, como estoy empezando no entiendo muy bien porque funciona. Si te aburres y tienes un rato,¿me lo puedes explicar? (estoy abusando un poco de tu tiempo... )

Estoy empezando a aprender PHP, porque hasta ahora, las páginas dinámicas que he montado han sido con el Dreamweaver, pero veo que cuando hay que hacer cosas mas complejas (como en este caso) es necesario entender bien el lenguaje. ¿Que me aconsejas para aprender y poder resolver estas cosas complicadas?

Un saludo y de nuevo muchas, muchas gracias por tu apoyo
  #10 (permalink)  
Antiguo 11/06/2007, 12:04
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Re: Intercambiar dos valores (un precio)

Te explico un poco lo que hemos hecho. Si te das cuenta lo que estas haciendo dentro del blucle do...while es:
"muestra datos mientras aún haya datos que mostrar" (no es la mejor explicación pero es para que se entienda claro)
Dentro de este bucle lo que se obtiene es que, en cada pasada del bucle, la variable $row_rsResultados contiene una matriz de datos de una determinada fila (los datos de la fila "n" de la pasada "n" del bucle) y así es que, cuando haces echo $row_rsResultados['provincia'], se muestre la provincia correspondiente a la fila de datos en la que se encuentra el bucle.

Concretando en nuestro IF salvador... simplemente hacemos una condición que sea:

Si se ha mandado por GET la varible "tipo_precio" y ademas tiene el valor "precio_eur" => muestra el valor del campo precio_eur de la matriz de datos que representa la variable $row_rsResultados junto con un enlace, para enviar la vble "tipo_precio" pero con valor "precio_gbp", al mismo archivo .php en que nos encontramos.

Si la condición no se ha cumplido => muestra el valor del campo precio_gbp de la matriz de datos que representa la variable $row_rsResultados junto con un enlace, para enviar la vble "tipo_precio" pero con valor "precio_eur", al mismo archivo .php en que nos encontramos.

Espero haber conseguido explicarme bien.

Si no has mirado el manual de PHP te recomiendo que le eches un ojo (desde el principio ). Siempre que tengas dudas intenta buscar tú mismo problema en google, "si a tí te ha pasado, seguro que a alguien más le ha pasado". En estos foros siempre encontrarás gente dispuesta a ayudar, de una manera o de otra.

Si necesitas referencias más concretas aquí nos tienes.

Mucha suerte!!
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
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 23:33.