Foros del Web » Programando para Internet » PHP »

While, IF

Estas en el tema de While, IF en el foro de PHP en Foros del Web. Hola, muy buenas. Tengo un problemas con un sistema de compra... por así decirlo... Tengo este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php   ...
  #1 (permalink)  
Antiguo 19/02/2014, 14:35
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
While, IF

Hola, muy buenas.

Tengo un problemas con un sistema de compra... por así decirlo...

Tengo este código:

Código PHP:
Ver original
  1. <?php
  2.     $consultabadges = mysqli_query($conexion, "SELECT * FROM badges")or die(mysqli_error($conexion));
  3.     while($mostrarbadges = mysqli_fetch_assoc($consultabadges)){
  4.         echo "<div class='venta_deplacas'>
  5.              
  6.              <img class='posession_badge' src='http://images.localhost/".htmlentities($mostrarbadges['codigo'], null, 'ISO-8859-1').".gif'>
  7.              <br><center><b>".htmlentities($mostrarbadges['nombre'], null, 'ISO-8859-1')."</b></center>
  8.              <center>".htmlentities($mostrarbadges['descripcion'], null, 'ISO-8859-1')."</center><br>
  9.              <center><form action='' method='POST'>
  10.              <input type='submit' name='comprar' value='Comprar'>
  11.              </form></center>
  12.  
  13.              </div>
  14.        ";
  15.     }
  16.     if(isset($_POST['comprar'])){
  17.         $mostrarbadges = mysqli_fetch_assoc($consultabadges);
  18.         $comprobar = mysqli_query($conexion, "SELECT * FROM login WHERE usuario = '".$_SESSION['usuario']."'")or die(mysqli_error($conexion));
  19.         $comprobar1 = mysqli_fetch_assoc($comprobar);
  20.  
  21.         $comprobar2 = mysqli_query($conexion, "SELECT * FROM placas WHERE usuario = '".$_SESSION['usuario']."'")or die(mysqli_error($conexion));
  22.         $comprobar3 = mysqli_fetch_assoc($comprobar2);
  23.  
  24.         $comprobar4 = mysqli_query($conexion, "SELECT * FROM badges")or die(mysqli_error($conexion));
  25.         $comprobar5 = mysqli_fetch_assoc($comprobar4);
  26.  
  27.         if($comprobar1['coins'] < $comprobar5['precio']){
  28.             echo "Lo sentimos pero no dispones de los coins requeridos.";
  29.         }
  30.         else if($comprobar3['codigo'] == $comprobar5['codigo']){
  31.             echo "<script language='JavaScript' type='text/javascript'>
  32.            alert('Ya tienes esta placa.');
  33.            </script>";
  34.         }
  35.         else{
  36.             $resultadoprecio = $comprobar1['coins'] - $comprobar5['precio'];
  37.             $finalcompro = mysqli_query($conexion, "INSERT INTO placas(codigo,usuario) VALUES ('".$mostrarbadges['codigo']."','".$_SESSION['usuario']."')")or die(mysqli_error($conexion));
  38.             echo "Has comprado la placa: ".$mostrarbadges['nombre'];
  39.         }
  40.     }
  41.     ?>

Y tengo un problema con lo que es el if del input de comprar.... por que si ven el else hace referencia a la variable del while... por lo tanto cuando le doy a comprar en la base de datos me sale el campo en blanco lo normal....

Y si meto el código del input dentro del while, se me ejecuta muchas veces y y es un caos total.

Si me pudieran echar una mano lo agradecería.

Un cordial saludo.
  #2 (permalink)  
Antiguo 19/02/2014, 20:05
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: While, IF

no te entendi nada...

desglosar de la siguiente manera:
1. que quieres hacer?
2. que error sucede?
3. que te sale en pantalla.
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #3 (permalink)  
Antiguo 23/02/2014, 09:44
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Respuesta: While, IF

No me lanza ningún error.
Pero no se ejecuta bien la acción que deseo hacer.

Lo que deseo hacer es una mini tienda por así decirlo.

Se muestran los productos y sale un input comprar... y al darle al comprar se ha de ejecutar la sentencia if del formulario... pero se ejecuta mal.

Se ha de introducir en la base de datos según los datos correspondiente.

Saludos.
  #4 (permalink)  
Antiguo 23/02/2014, 21:30
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: While, IF

ok entonces en dicho caso... justamente antes de introducir dichos datos imprime los por pantallas para ver si lo ha recogido correctamente o son datos vacíos...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #5 (permalink)  
Antiguo 23/02/2014, 21:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: While, IF

El problema es que estás creando muchos formularios que solo incluyen el botón "comprar", pero no tienes un campo que indique qué es lo que se va a comprar.

Así como lo tienes, solo necesitas incluir en cada formulario un campo tipo hidden con la id del producto a comprar.

No es lo óptimo, pero funcionará.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: html, mysql, select, sql, variable
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 01:15.