Tema: While, IF
Ver Mensaje Individual
  #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: 11 años
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.