Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/11/2010, 05:38
Avatar de manyblue
manyblue
 
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 1 mes
Puntos: 10
Ayuda novato php

Ante todo saludar a todos.
Bueno, estoy comenzando con php y MySQL con un curso de videotutoriales por mi cuenta.
Mi problema es el siguiente:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3.   <title>Formulario de pedido de libros</title>
  4. </head>
  5. <body>
  6. <h1>Librer&iacute;a Online </h1>
  7. <h2>Resumen del Pedido </h2>
  8.  
  9. <?
  10.   echo "<p>PEDIDO PROCESADO    : "; // Comenzar orden de impresion pedido
  11.  
  12.   echo date ("H:i:s")."   del día   ";
  13.   echo date ("j");
  14.   echo "   de   ";
  15.   echo date ("F");
  16.   echo "   del   ";
  17.   echo date ("Y");
  18.   echo "<br>\n";
  19.   echo "<br>\n";
  20.   echo "<p>SU PEDIDO ES EL SIGUIENTE   :";
  21.   echo "<br>\n";
  22.   echo "<br>\n";
  23.  
  24.   $totalqty = 0;
  25.   $totalamount = 0.00;
  26.  
  27.   define("ACTIONPRICE", 100);
  28.   define("PHOTOPRICE", 10);
  29.   define("FLASHPRICE", 4);
  30.  
  31.   $action = $_POST['actionqty'] . "<br>\n";
  32.   $photo = $_POST['photoqty'] . "<br>\n";
  33.   $flash = $_POST['flashqty'] . "<br>\n";
  34.  
  35.   if ($action<10)
  36.    $descuento_0 = 0;
  37.   elseif ($action>=10 && $action<=49)
  38.    $descuento_0 = 5;
  39.    elseif ($action>=50 && $action<=100)
  40.    $descuento_0 = 10;
  41.   elseif ($action>100)
  42.    $descuento_0 = 15;  
  43.   if ($photo<10)
  44.    $descuento_1 = 0;
  45.   elseif ($photo>=10 && $action<=49)
  46.    $descuento_1 = 5;
  47.   elseif ($photo>=50 && $action<=100)
  48.    $descuento_1 = 10;
  49.   elseif ($photo>100)
  50.    $descuento_1 = 15;
  51.   if ($flash<10)
  52.    $descuento_2 = 0;
  53.   elseif ($flash>=10 && $action<=49)
  54.    $descuento_2 = 5;
  55.   elseif ($flash>=50 && $action<=100)
  56.    $descuento_2 = 10;
  57.   elseif ($flash>100)
  58.    $descuento_2 = 15;    
  59.    
  60.   echo "<p>Total descuento en libros ActionScript      =      " . $descuento_0 . "   %" . "</p>";
  61.   echo "<p>Total descuento en libros ActionScript      =      " . $descuento_1 . "   %" . "</p>";
  62.   echo "<p>Total descuento en libros ActionScript      =      " . $descuento_2 . "   %" . "</p>";
  63.    
  64.   $totalqty = $action + $photo + $flash;
  65.   $totalamount =  $action * ACTIONPRICE
  66.                 + $photo * PHOTOPRICE
  67.                 + $flash * FLASHPRICE;  
  68.   echo "<br>";
  69.    
  70.   if ($totalqty==0){
  71.   echo "<font color=red >";
  72.   echo "Usted no ha introducido ninguna cantidad en el formulario, vualva atras e introduzca alg&uacute;n valor<br><br><br>";
  73.   echo "</font>";
  74.   }
  75.   else
  76.   {
  77.   if ($action>0) echo "Unidades             " . "ActionScript      :      " . $action."<br>";
  78.   if ($photo>0) echo "Unidades             " . "Photoshop      :      " . $photo."<br>";
  79.   if ($flash>0) echo "Unidades             " . "Flash MX      :      " . $flash."<br>";
  80.   }
  81.  
  82.   echo "Total artículos Pedidos   :      " . $totalqty . "   unidades" . "<br>\n";
  83.   echo "<br>";
  84.   $totalamount = number_format ($totalamount,2);
  85.   echo "Subtotal   :      " . $totalamount . "   €" . "<br>";
  86.   $taxrate = $totalamount * 5 / 100;
  87.   echo "Total impuestos IGIC 5%   :      " . $taxrate . "   €" . "<br>";
  88.  
  89.   $totalamount = $totalamount + $taxrate;
  90.   $totalamount = number_format ($totalamount, 2);
  91.   echo "Total    :      " . $totalamount . "   €" . "<br>";
  92.  
  93. ?>
  94. </body>
  95. </html>


Mi primer problema con este código php fué en las líneas 31,32,33 puesto que el video tutorial importaba los datos del formulario directamente de esta forma:

Código PHP:
Ver original
  1. echo $actionqty." ActionScript<br>";
  2. echo $photoqty." Photoshop<br>";
  3. echo $flashqty." Flash MX<br>";

llamando al campo de texto directamente como variable y buscando vi un post aqui en vuestro foro que me dios la solución diciendome que hay que definir la variable primero y despues decirle a que es igual, osea solucionado como ejemplo:

Código PHP:
Ver original
  1. $action = $_POST['actionqty'] . "<br>\n";
  2. $photo = $_POST['photoqty'] . "<br>\n";
  3. $flash = $_POST['flashqty'] . "<br>\n";

Mi consulta es la siguiente, con respecto al primer código php del principio:

En la línea 37 cuando el subtotal pasa de 1000 me da error, vereis lo que me pasa

Libro Cantidad
ActionScript 6
Photoshop 5
Flash MX 4
ENVIAR

me sale:


Librería Online
Resumen del Pedido
PEDIDO PROCESADO : 10:48:47 del día 11 de November del 2010



SU PEDIDO ES EL SIGUIENTE :



Total descuento en libros ActionScript = 0 %

Total descuento en libros ActionScript = 0 %

Total descuento en libros ActionScript = 0 %


Unidades ActionScript : 6

Unidades Photoshop : 5

Unidades Flash MX : 4

Total artículos Pedidos : 15 unidades

Subtotal : 666.00 €
Total impuestos IGIC 5% : 33.3 €
Total : 699.30 €


hasta aqui correcto, pero por ejemplo pongo:


Libro Cantidad
ActionScript 50
Photoshop 5
Flash MX 4
ENVIAR


me sale:


Librería Online
Resumen del Pedido
PEDIDO PROCESADO : 10:50:27 del día 11 de November del 2010



SU PEDIDO ES EL SIGUIENTE :



Total descuento en libros ActionScript = 10 %

Total descuento en libros ActionScript = 0 %

Total descuento en libros ActionScript = 0 %


Unidades ActionScript : 50

Unidades Photoshop : 5

Unidades Flash MX : 4

Total artículos Pedidos : 59 unidades

Subtotal : 5,066.00 €
Total impuestos IGIC 5% : 0.25 €
Total : 5.25 €


Como vereis me da error, como podría solucionar el problema, y esta parte el videotutorial lo hace de la siguiente forma:

Código PHP:
Ver original
  1. echo "<br>\n";
  2. echo "Artículos Pedidos:       ".$totalqty."<br>\n";
  3. echo "Subtotal:            €";
  4. echo number_format($totalamount, 2);
  5. echo "<br>\n";
  6.  
  7. $taxrate = 0.10;  // local sales tax is 10%
  8. $totalamount = $totalamount * (1 + $taxrate);
  9. $totalamount = number_format($totalamount, 2);
  10. echo "Total incluyendo impuestos: €".$totalamount."<br>\n";
Como ves calcula el impuesto y lo aplica al subtotal pero no imprime el importe del impuesto y luego lo aplica.

Librería Online
Resumen del Pedido
PEDIDO PROCESADO : 11:22:56 del día 11 de November del 2010



SU PEDIDO ES EL SIGUIENTE :



Total descuento en libros ActionScript = 0 %

Total descuento en libros ActionScript = 0 %

Total descuento en libros ActionScript = 0 %


Unidades ActionScript : 3

Unidades Photoshop : 4

Unidades Flash MX : 5


Artículos Pedidos: 12
Subtotal: €360.00
Total incluyendo impuestos: €396.00



Otra cosa para no estar postendo casi lo mismo en otro post, entre las líneas 35 y 58 no aplica las llaves ¿por que? ¿como sería el código con llaves.

Como siempre muchísimas gracias de antemano