Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Crear base de datos

Estas en el tema de Crear base de datos en el foro de PHP en Foros del Web. Hola, Necesito crear una base de datos de transporte la cuál tiene la siguiente forma. kilos zona 0 zona 1 zona 2 zona 3 50 ...
  #1 (permalink)  
Antiguo 22/01/2014, 00:57
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Crear base de datos

Hola,

Necesito crear una base de datos de transporte la cuál tiene la siguiente forma.

kilos zona 0 zona 1 zona 2 zona 3
50 14,92 13,81 18,53 26,60
100 23,09 20,42 27,21 34,32
200 36,53 39,37 47,67 62,15

y así sucesivamente
Bueno el asunto es que por ejemplo: Se ingresa un peso de 120 kilos y pertenece a la zona 3 al ser superior a 100 debe coger el numero sucesivo osea 200 y darme el valor de 62,15

Como lo puedo hacer?

Gracias de antemano.
  #2 (permalink)  
Antiguo 22/01/2014, 01:26
 
Fecha de Ingreso: octubre-2012
Mensajes: 135
Antigüedad: 11 años, 6 meses
Puntos: 8
Respuesta: Crear base de datos

la base de datos la puedes crear siguiendo este tutorial:
http://www.htmlpoint.com/sql/sql_07.htm

Para hacer la selección, tienes que coger de la tabla cada peso y compararlo.

Código PHP:
$sql "SELECT * FROM tabla ";
  
$consulta mysql_query($sql);
 
  while( 
$rows mysql_fetch_array($consulta) )
   {
     if(
$peso $rows['peso']){
     }else{
   
$precio $rows[$zona];
    
breack;
}

   } 
donde $peso y $zona las tienes de antes.
  #3 (permalink)  
Antiguo 22/01/2014, 01:30
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Crear base de datos

Muchas gracias Botxi,


Lo pruebo y te digo.


Saludos
  #4 (permalink)  
Antiguo 22/01/2014, 09:49
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Sigo con p`rioblemaS

Esta es mi tabla transnacional


KILOS 0 1 2 3 4 5
50 14,92 13,81 18,53 26,60 26,52 27,46
100 23,09 20,42 27,21 34,32 35,35 36,14
200 36,53 39,37 47,67 62,15 62,48 65,69
250 42,60 38,40 47,70 57,10 69,15 69,15
300 47,85 40,79 57,26 68,51 84,01 74,73
350 53,65 47,59 66,79 79,93 87,20 87,20
400 59,41 54,41 76,35 91,36 99,66 99,66
450 62,09 61,20 85,87 102,78 112,11 112,11
500 66,43 68,00 95,43 114,20 124,56 124,56
1000 10,86 11,70 12,98 19,04 17,89 21,61
2000 9,92 10,70 11,92 17,33 16,58 20,40


Y este es el programa que recibo los datos:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Calcular transporte</title>
<link href="http://fonts.googleapis.com/css?family=Arvo" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link href="css/menu.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="bg">
<div id="outer">
<div id="header">
<div id="logo">
<h1>
<a href="index.html">Italcompas</a>
</h1>
</div><br>


<h2 style="font-weight:bold; color:#FF8E18; text-align:center; font-size: 36px;">Calculo transporte nacional</h2>

<form method="POST" action="calctransnacional.php"/>
<table>

<tr>
<td>
* Peso:
</td>
<td>
<input type="text" name="peso" size="25" title="Ingrese el valor con decimales con punto -> ejemplo: 12.10"/>
</td>
</tr>

<tr>
<td>
* Zona:
</td>
<td>
<input type="text" name="zona" size="25" />
</td>
</tr>


<tr>
<td><br><br>
<input type="submit" name="submit" class="button" value="Ingresar" />
<input type="reset" class="button"/>
<a href="articulos.php" class="button">Volver</a>
</td>
</tr>
</table>

</form>

</body>
</html>








Y este es el programa al que le envio los datos:

<?php
include ('conexion.php');

$peso = $_POST['peso'];
$zona = $_POST['zona'];


$sql = "SELECT * FROM transnacional";
$consulta = mysql_query($sql);

while( $rows = mysql_fetch_array($consulta) )
{
if($peso > $rows['kilos']){
}else{
$precio = $rows[$zona];
'breack';
}

}

?>



En estos momentos al ejecutar me muestra lo siguiente:
42.60 47.85 53.65 59.41 62.09 66.43 10.86 9.92


Como puedo hacer para que me seleccione el valor de la zona.
Como dije anteriormente necesito que al ingresar el peso y la zona me de el valor que corresponda.
Por ejemplo
tengo un peso de 220 kilos y pertenece a la zona 4 pues me debe dar el valor de 69,15 ya que al ser el peso
superior a 200 pasa inmediatamente al siguiente osea 250 y debe extraer el valor de la zona 4.

Además hay un segundo problema, al llegar a 1000 kilos las zonas en vez de ser precios pasan a ser porcentajes
por ejemplo en 1000 kilos la zona 0 son 10,86% osea que hay que multiplicar el valor de kilos por 10,86% osea si son 996 kilos
x 10,86%

A ver si alguien me echa un cable

Gracias y saludos
  #5 (permalink)  
Antiguo 22/01/2014, 15:15
 
Fecha de Ingreso: octubre-2012
Mensajes: 135
Antigüedad: 11 años, 6 meses
Puntos: 8
Respuesta: Crear base de datos

El problema a sido que has puestro 'breack' y no breack, sin comillas, breack hace que el bucle se acabe, lo que está haciendo tu código, es seguir con el bucle, y todas las filas siguientes te las muestra ya que el la condición se cumple.

A continuación del bucle, prueba a poner algo así:

Código PHP:
Ver original
  1. if($peso > 500){
  2. $precio = ($peso*$precio)/100+$peso;
  3. }
  4. // primero multiplico por el x% y divido por 100 para sacar el % de $peso, luego le sumo el peso
  #6 (permalink)  
Antiguo 23/01/2014, 00:55
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Crear base de datos

Hola Botxi,

Gracias por responder y ayudarme.
Antes de que tu me respondieras si ya lo había arreglado y si funciona con los valores muchas gracias como sabes el problema es que cuando llega a > 500
me arroja los valores que tendrá que ser multiplicado el peso por el valor en porcentaje de la zona. veo que me has escrito para el cálculo que cuando es mayor de 500 hace el cálculo del porcentaje.
Me puedes decir como lo puedo agregar al otro if que ya funciona hasta los 500kilos.
y otra cosa disculpa que aproveche de tu amabilidad.
Como puedo hacer para aceptar los input largo ancho y altura para calcular los m3 antes que lo envie a la otra pagina donde efectua estos calculos de peso y zona.
te agrego programa que acepta.
Código PHP:
Ver original
  1. <form method="POST" action="calctransnacional.php"/>
  2.          <table>
  3.              <tr>
  4.                <td>
  5.                    * Medidas en mm Largo:
  6.                </td>
  7.                <td>
  8.                     <input type="text" name="largo" size="10" title="Ingrese el valor con decimales con punto -> ejemplo: 12.10"/>
  9.                    
  10.                </td>       
  11.             </tr>
  12.            
  13.            <tr>
  14.                <td>
  15.                    * Medidas en mm Ancho:
  16.                </td>
  17.                <td>
  18.                     <input type="text" name="ancho" size="10" title="Ingrese el valor con decimales con punto -> ejemplo: 12.10"/>
  19.                    
  20.                </td>       
  21.             </tr>
  22.            
  23.             <tr>
  24.                <td>
  25.                    * Medidas en mm Alto:
  26.                </td>
  27.                <td>
  28.                     <input type="text" name="alto" size="10" title="Ingrese el valor con decimales con punto -> ejemplo: 12.10"/>
  29.                    
  30.                </td>       
  31.             </tr>
  32.            
  33.             <tr>
  34.                <td>
  35.                    * M3 x 270 kg:
  36.                </td>
  37.                <td>
  38.                
  39.                   <?php  echo "($alto * $ancho * altura)*270 ";?>
  40.                </td>       
  41.             </tr>
  42.            
  43.              <tr>
  44.                <td>
  45.                    * Peso:
  46.                </td>
  47.                <td>
  48.                     <input type="text" name="peso" size="10" title="Ingrese el valor del peso que sea mayor (el calculado m3 o el peso bruto) con decimales con punto -> ejemplo: 12.10"/>
  49.                </td>       
  50.             </tr>
  51.            
  52.              <tr>
  53.                <td>
  54.                    * Zona:
  55.                </td>
  56.                <td>
  57.                     <input type="text" name="zona" size="10" />
  58.                </td>       
  59.             </tr>
  60.            
  61.             <tr>
  62.                <td>
  63.                    * Descripcion:
  64.                </td>
  65.                <td>
  66.                     <input type="text" name="descripcion" size="30" />
  67.                </td>       
  68.             </tr>
  69.            
  70.        
  71.        
  72.          
  73.          
  74.           <tr>
  75.              <td><br><br>
  76.                <input type="submit" name="submit" class="button" value="Ingresar" />
  77.                <input type="reset"  class="button"/>
  78.                <a href="articulos.php" class="button">Volver</a>
  79.              </td>
  80.           </tr>
  81.        </table>      
  82.    
  83.       </form>

Como puedes ver necesito que me haga el calculo y muestre el resultado en la parte que dice M3 x 270 kg

De nuevo gracias y saludos
  #7 (permalink)  
Antiguo 23/01/2014, 15:09
 
Fecha de Ingreso: octubre-2012
Mensajes: 135
Antigüedad: 11 años, 6 meses
Puntos: 8
Respuesta: Crear base de datos

lo del formulario es javascript, no te puedo ayudar.

Respecto a lo otro si

Código PHP:
while( $rows mysql_fetch_array($consulta) )
   {

if(
$peso $rows['peso'] AND $peso >= 500){
$precio = ($peso*$rows[$zona])/100+$peso;
 
breack;

}elseif(
$peso $rows['peso']){
   
$precio $rows[$zona];
    
breack;
}

   } 
Creo que así funcionará.

Última edición por botxii; 23/01/2014 a las 15:51 Razón: fallo en el código :P
  #8 (permalink)  
Antiguo 24/01/2014, 00:13
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Crear base de datos

Muchas gracias,

Solucionado, funciona perfecto.!!!

Saludos

Etiquetas: Ninguno
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 16:43.