Autor Tema: ejemplos php $_POST, consultas a bases de datos, corregir errores  (Leído 37115 veces)

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Buenas tardes  (aquí en Venezuela) y Feliz Navidad a todos, me llamo Alejandro, tenía meses que no hacía un post aquí ya que no había tenido problemas ni con HTML ni con QBASIC Ni Visual Basic, pero es que en la universidad ( y no es por hablar mal del país) la educación es muy deficiente, vean, estudio Informática, voy por el cuarto semestre casi y no puede ser que aun no sepa programar bien, les explico, los profesores inician con un tema, hacemos unos programitas y despues cambian a otro lenguaje muy rapido y así no me gusta a mi, me parece de más incomodo (Si ustedes dirán, ¿y por qué no estudias también por internet?, porque a mi se me hace más facil cuando me explican las cosas y no cuando las leo). En fin llegamos al final de año y ni idea tengo de programar bien en HTML, hicimos dos paginas web con dreamweaver, y ahora nos mandó de "regalo" 8 programas en PHP, SI OCHO!! de un lenguaje que desconozco completamente.

Ahora realmente a lo que he venido, es a que me orienten como puedo hacerlos, yo les voy pasando los códigos que vaya haciendo y ustedes me corrigen por favor, no les estoy pidiendo que me los hagan todos, pero me confunde tanto corchete "{" que no se donde ponerlos...

Gracias de antemano, un abrazo, y disculpen la molestias de nuevo.

PS: La profe me dijo que guardara la pagina .php en una carpeta en wampserver en la parte de www. para que corriera, será que tengo usar bases de datos para estos programas?, ya que son formularios tal parece.
« Última modificación: 15 de Septiembre 2014, 14:06 por Alex Rodríguez »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #1 en: 17 de Diciembre 2013, 21:48 »
Hola Alejandro, igualmente Feliz Navidad.

Para consultar cuestiones sobre las que te puedan surgir dudas de HTML y PHP:

Curso de HTML: https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=69&Itemid=192

Curso de PHP: https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193


Para preparar los programas que te han encargado: intenta hacerlo por partes. Haz una parte, y cuando estés seguro de que una parte funciona, continúa con la siguiente parte. Tienes que ir comprobando poco a poco la ejecución del programa.

Sobre lo de poner el archivo php en la carpeta www de wampserver, esto es para que tu ordenador funcione como servidor y ejecute el intérprete de php, de modo que los archivos con código php puedan ser ejecutados y mostrados sus resultados. No significa que necesites base de datos (aunque cuando se trabaja con php es muy común usar base de datos, no es obligatorio; no sé si en algún ejercicio la necesitarás, pero al menos en el primero parece que no). Por cierto, al archivo tienes que ponerle extensión php para que funciones, de la misma forma que si solo fuera código html tendrías que ponerle extensión html. Si miras el curso de php ahí está bien explicado.


He empezado a mirar el código del primer programa.

Escribes por un lado:

<label>Tiempo Anterior:
      <input type="text" name="textta" />
    </label>

Y por otro:

$tiempo=$_POST['texta'];


Aquí tienes una errata, si pones texta en lugar de textta el intérprete php no entiende lo que quieres decir y supone que texta es una variable nueva de la que no tiene información y por tanto $tiempo vale cero.

Tendrás que cambiarlo por :

$tiempo=$_POST['textta'];


Parece una tontería, pero no te puedes equivocar ni en una letra al escribir código.



Después escribes:
     
      <label>Sexo:
      <select name="select">
        <option>Hombre</option>
        <option>Mujer</option>
      </select>


Cuando envías la información si lo haces por get en lugar de por post obtienes algo así: .php?textedad=34&textta=22&select=Hombre&Submit=Enviar

Luego en el código php tienes esto:

$sexo=$_POST['Sexo'];

Pero Sexo no es un campo del formulario, ya que el campo lo defines con el nombre que le pones en name, en este caso el campo lo has llamado select, lo cual no es un nombre muy recomendable. Por tanto lo más lógico es cambiar en el código HTML y dejarlo así:

      <label>Sexo:
      <select name="Sexo">
        <option>Hombre</option>
        <option>Mujer</option>
      </select>

De este modo el campo ya se llama Sexo y así tiene sentido la línea $sexo=$_POST['Sexo'];

Esto es lo que he visto, por ahora... (voy a seguir mirándolo)

Por cierto, no escribas en mayúsculas ni URGENTE!!!!!!! porque parece que estuvieras gritando.

Saludos.
Responsable de departamento de producción aprenderaprogramar.com

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #2 en: 17 de Diciembre 2013, 22:11 »
Si disculpame, y gracias por tomarte el tiempo en ayudarme, la vez pasada me ayudó Alex :), de verdad quiero aprender a programar mejor, ser como ustedes para poder identificar cualquier problema con tan solo verlo y saber que codigo poner en cada momento, porque de verdad en la uni la profe ni nos explica asi como ustedes, por eso te lo agradezco y a medida que vaya avanzando voy subiendo los codigos. Buenas noches, muchas gracias.

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #3 en: 18 de Diciembre 2013, 13:13 »
Ya he revisado el código. Una cuestión básica en la que has fallado en alguna ocasión: cada vez que aparezca una variable tienes que ponerla con el signo $ delante. Por ejemplo no puedes escribir if (tiempo < 175), tienes que escribir if ($tiempo < 175).


Aquí te dejo el código funcionando bien (recuerda que tienes que guardarlo en un archivo con extensión php y ejecutarlo en un servidor):

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Marat&oacute;n</title>
</head>
<body>

<form id="form1" name="form1" method="post" action="">
  <label>Edad
  <input type="text" name="textedad" />
  </label>
  <p>
    <label>Tiempo Anterior (minutos):
      <input type="text" name="textta" />
    </label>
  </p>
  <p>
    <label>Sexo:
      <select name="Sexo">
        <option>Hombre</option>
        <option>Mujer</option>
      </select>
    </label>
  </p>
  <p>
    <label>Evaluar:
      <input type="submit" value="Enviar" />
    </label>
  </p>
</form>

<?php
$edad=$_POST['textedad'];
$tiempo=$_POST['textta'];
$sexo=$_POST['Sexo'];
if ($_POST) {

echo '<br/>';
echo 'Datos: <br/>';
echo 'Sexo: '.$sexo.'<br/>';
echo 'Edad: '.$edad.'<br/>';
echo 'Tiempo anterior: '.$tiempo.' minutos <br/>';
}

if($sexo=="Mujer")
{
if ($tiempo<=180)
{
echo "Esta Seleccionada para el Maraton de La Yaguara";
}
else
{
echo "Lo Sentimos pero No Fue Seleccionada";
}
}

if ($sexo=="Hombre")
{
//Si es menor de 40
if ($edad<=40)
{
if($tiempo<=150)
{
echo "Esta Seleccionado para el Maraton de La Yaguara";
}
else
{
echo "No esta seleccionado";
}
}

//Si es mayor de 40
if ($edad>40)
{
if($tiempo<=175)
{
echo "Esta Seleccionado para el Maraton de La Yaguara";
}
else
{
echo "No esta seleccionado";
}
}

}
?>

</body>
</html>
Responsable de departamento de producción aprenderaprogramar.com

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #4 en: 18 de Diciembre 2013, 20:09 »
Muchas gracias Cesar!!, muy bien ahora dos preguntas a ver si entiendo bien:

1: Esta parte del código que significa?

"if ($_POST) {
   
   echo '<br/>';
   echo 'Datos: <br/>';
   echo 'Sexo: '.$sexo.'<br/>';
   echo 'Edad: '.$edad.'<br/>';
   echo 'Tiempo anterior: '.$tiempo.' minutos <br/>';
   }"


2: ¿Cómo hago para correrlo en el servidor?, he hecho esto: usando Dreamweaver, creé una carpeta llamada maratón, la guarda en otra carpeta llamada "Paginas Web Locales" donde tengo todas mis páginas web, luego copio y pego esa carpeta en la parte de "www" de wampserver, al correrlo aparece el formulario normalmente y debajo de eso, aparecen fragmentos de código. Ayer traté de hacer una prueba con un código de "Hola Mundo" sencillo y la página está en blanco, no aparece ningún mensaje:
           <html>
           <body>
                   <?php
                            echo "Hello World";
                                            ?>
           </body>
           </html>


Gracias de antemano por la ayuda. Buen día!




ACTUALIZANDO: Ya lo resolvi!!!!! como todo buen programador uno mismo tiene que buscar la solución jajaja, el problema era el httpd.conf del apache de wampserver que tenía mal la direccion del servidor tenía "\" en vez de "/", con razón me daba errores. Ahora voy con los demás programas y voy avisandote de mi progreso, has sido de gran ayuda!!!.Gracias.




!!ACTUALIZACION 2!!
Muy bien ya funciona, acomodé algunos errores en el código (ensayo y error) y aquí está checalo si quieres!!

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Maraton</title>
</head>
<body>

<form id="form1" name="form1" method="post" action="">
  <label>Edad
  <input type="text" name="textedad" />
  </label>
  <p>
    <label>T
iempo Anterior (minutos):
      <input type="text" name="textta" />
    </label>
  </p>
  <p>
    <label>Sexo:
      <select name="Sexo">
        <option>Hombre</option>
        <option>Mujer</option>
      </select>
    </label>
  </p>
  <p>
    <label>Evaluar:
      <input type="submit" value="Enviar" />
    </label>
  </p>
</form>

<?php
[
b]$edad = (isset($_POST['textedad']) ) ? $_POST['textedad'] : ''//Modifcación
$tiempo = (isset($_POST['textta']) ) ? $_POST['textta'] : ''//Modificado
$sexo = (isset($_POST['Sexo']) ) ? $_POST['Sexo'] : '';[/color][/b//Modificado
 
if ($_POST) {

echo '<br/>';
echo 'Datos: <br/>';
echo 'Sexo: '.$sexo.'<br/>';
echo 'Edad: '.$edad.'<br/>';
echo 'Tiempo anterior: '.$tiempo.' minutos <br/>';
}

if($sexo=="Mujer")
{
if ($tiempo<=180)
{
echo "Esta Seleccionada para el Maraton de La Yaguara";
}
else
{
echo "Lo Sentimos pero No Fue Seleccionada";
}
}

if ($sexo=="Hombre")
{
//Si es menor de 40
if ($edad<=40)
{
if($tiempo<=150)
{
echo "Esta Seleccionado para el Maraton de La Yaguara";
}
else
{
echo "No esta seleccionado";
}
}

//Si es mayor de 40
if ($edad>40)
{
if($tiempo<=175)
{
echo "Esta Seleccionado para el Maraton de La Yaguara";
}
else
{
echo "No esta seleccionado";
}
}

}
?>

</body>
</html>



Una última cosa me puedes explicar ¿por que cuando voy a la carpeta del servidor,'www' y abro el archivo .php, se va a Dreaweaver y cuando lo corro con F12 vuelven los errores?. Me refiero a los fragmentos de codigo suelto, y cuando lo ejecuto por Localhost y abro la project folder me corre bien? ¿No debería estar perfecto de la manera que sea que lo ejecute?. Disculpa lo preguntón pero me gusta aprender :).
« Última modificación: 18 de Diciembre 2013, 21:10 por Jigsaw_MGO »

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #5 en: 18 de Diciembre 2013, 22:15 »
Muy bien un adelanto del segundo ejercicio, ya lee los datos ingresados y las ventas y los imprime, pero ahora no se como hacerles las operaciones matemáticas... por favor ayudame que no se como ponerlos. Aquí te dejo el código que he hecho hasta ahora.

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ventas</title>
</head>

<body>
<p><strong>Se tiene como dato de entrada el nombre del vendedor y 4 ventas, se debe       calcular el total a pagar sabiendo que su sueldo b&aacute;sico es de 400.000,00 y       se le paga un bono correspondiente al 25% de las ventas promedio se debe       imprimir el nombre del vendedor, sueldo b&aacute;sico, bono y neto a pagar al       finalizar se pide el total a pagar de todos los bonos.</strong></p>

<form id="form1" name="form1" method="post" action="">
  <label>Nombre del Vendedor:
  <input type="text" name="textnombre" />
  </label>
  <p>
    <label>Venta 1
    <input type="text" name="textventa1" />
    </label>
  </p>
  <p>
    <label>Venta 2
    <input type="text" name="textventa2" />
    </label>
</p>
  <p>
    <label>Venta 3
    <input type="text" name="textventa3" />
    </label>
</p>
  <p>
    <label>Venta 4
    <input type="text" name="textventa4" />
    </label>
</p>
  <p>
    <label>Total:
    <input type="text" name="texttotalapagar" />
    </label>
</p>
  <p>
    <label>Calcular:
    <input type="submit" name="Calcular" value="Enviar" />
    </label>
  </p>
  <p>
    <label></label>
  </p>
</form>
<p align="center"><strong></strong></p>

<?php
$nombre = (isset($_POST['textnombre']) ) ? $_POST['textnombre'] : '';
$venta1 = (isset($_POST['textventa1']) ) ? $_POST['textventa1'] : '';
$venta2 = (isset($_POST['textventa2']) ) ? $_POST['textventa2'] : '';
$venta3 = (isset($_POST['textventa3']) ) ? $_POST['textventa3'] : '';
$venta4 = (isset($_POST['textventa4']) ) ? $_POST['textventa4'] : '';
$totalapagar=(isset($_POST['texttotalapagar']) ) ? $_POST['texttotalapagar'] : '';

if ($_POST) {

echo '<br/>';
echo 'Datos: <br/>';
echo 'nombre: '.$nombre.'<br/>';
echo 'venta1: '.$venta1.' Bolivares <br/>';
echo 'venta2: '.$venta2.' Bolivares <br/>';
echo 'venta3: '.$venta3.' Bolivares <br/>';
echo 'venta4: '.$venta4.' Bolivares <br/>';
echo 'total: '.$totalapagar.'<br/>';
}

?>


</body>
</html>

¿Que me recomiendas tu como la hago? para calcularle los bonos, sacarle el 25% de las ventas promedio y calcularle el sueldo basico etc? me orientas por favor? Gracias.

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #6 en: 19 de Diciembre 2013, 08:53 »
Hola, te respondo a lo que planteabas:

1. Significado de esta parte del código


"if ($_POST) {
   
   echo '<br/>';
   echo 'Datos: <br/>';
   echo 'Sexo: '.$sexo.'<br/>';
   echo 'Edad: '.$edad.'<br/>';
   echo 'Tiempo anterior: '.$tiempo.' minutos <br/>';
   }"


if ($_POST) es un condicional que lo que hace es comprobar si se está recibiendo información mediante el método post, es decir, cuando se carga la página por primera vez no se recibe información puesto que el usuario no ha rellenado los datos del formulario y pulsado enviar. En cambio, después de cargar la página cuando el usuario rellena el formulario y pulsa enviar ya se están enviando datos. Cuando llegan datos $_POST toma valor true (verdadero). Cuando no llegan datos $_POST toma valor false (falso).

echo '<br/>'; La sentencia genera el código HTML de aquello que va entre las comillas. En este caso estamos añadiendo en el código HTML de la página una etiqueta <br/> que introduce un salto de línea.

Las siguientes líneas lo que hacen es mostrar los datos. Por ejemplo si el usuario introduce como datos edad 45 años, sexo hombre y tiempo anterior 155 minutos a través de este código se muestra por pantalla lo siguiente:

Datos:
Sexo: Hombre
Edad: 45
Tiempo anterior: 155 minutos



2. ¿Cómo se corre en el servidor?

Primero tienes que colocar el archivo php dentro de la carpeta www en la ruta de wampserver. Por ejemplo: C:\wampserver\maraton.php

Luego tienes que abrir tu navegador (firefox, internet explorer, chrome o el que sea) y escribir http://localhost y comprobar que te muestra la página de inicio del servidor. Si no te la muestra puede que tengas un problema con wampserver.

Finalmente para visualizar la página escribes http://localhost/maraton.php y la página se ejecutará en tu navegador. Si lo hubieras puesto dentro de una carpeta por ejemplo programas, tendrás que escribir la ruta que tengas, por ejemplo http://localhost/programas/maraton.php


3. ¿por que cuando voy a la carpeta del servidor,'www' y abro el archivo .php, se va a Dreaweaver y cuando lo corro con F12 vuelven los errores?

Para ver un archivo php debes hacerlo como te he indicado escribiendo la ruta en el navegador. Si te abre con dreamweaver posiblemente se debe a que en tu configuración local tienes indicado que se asocien los archivos php a dreamweaver. Sobre la aparición de errores, php tiene distintos modos de ejecución y debugging (depuración). php es capaz de correr páginas web "tragándose" algunos warnings o errores poco relevantes sin mostrar ninguna advertencia, pero hay configuraciones para que te muestre los mensajes de error aunque sean poco relevantes. Yo no me preocuparía de los pequeños errores sino de que las cosas funcionen cuando se escribe la dirección en el navegador y ya está.


4. Para el segundo programa y los cálculos matemáticos te pongo cómo serían con un ejemplo. Ahora lo que tienes que ver es qué nombre le has dado tú y adaptarlo.

$sueldoBase = 400000;
$nombreVendedor;
$venta1;
$venta2;
$venta3;
$venta4; (Estos 4 datos será los que vengan del formulario)
$promedioVentas = ($venta1+$venta2+$venta3+$venta4);
$bono=0.25 * $promedioVentas;

Responsable de departamento de producción aprenderaprogramar.com

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #7 en: 19 de Diciembre 2013, 21:15 »
Buenas César, y muchas gracias como siempre por la ayuda, voy a intentar hacer bien las paginas web y despues te las voy pasando para que evalúes y me corrijas los errores que pueda tener, a medida que vaya avanzando te voy diciendo. Muchas Gracias!, Buenas Tardes.



Primera Actualización : (16:50 horas)


Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ventas</title>
</head>

<body>
<p><strong>Se tiene como dato de entrada el nombre del vendedor y 4 ventas. Se debe       calcular el total a pagar sabiendo que su sueldo b&aacute;sico es de 400.000,00 y       se le paga un bono correspondiente al 25% de las ventas promedio se debe       imprimir el nombre del vendedor, sueldo b&aacute;sico, bono y neto a pagar al       finalizar se pide el total a pagar de todos los bonos.</strong></p>

<form id="form1" name="form1" method="post" action="">
  <label>Nombre del Vendedor:
  <input type="text" name="textnombre" />
  </label>
  <p>
    <label>Venta 1
    <input type="text" name="textventa1" />
    </label>
  </p>
  <p>
    <label>Venta 2
    <input type="text" name="textventa2" />
    </label>
</p>
  <p>
    <label>Venta 3
    <input type="text" name="textventa3" />
    </label>
</p>
  <p>
    <label>Venta 4
    <input type="text" name="textventa4" />
    </label>
</p>
  <p>
    <label></label>
  </p>
  <p>
    <label>Calcular:
    <input type="submit" name="Calcular" value="Enviar" />
    </label>
  </p>
  <p>
    <label></label>
  </p>
</form>
<p align="center"><strong></strong></p>

<?php
$sueldoBase 400000;
$nombreVendedor = (isset($_POST['textnombre']) ) ? $_POST['textnombre'] : '';
$venta1 = (isset($_POST['textventa1']) ) ? $_POST['textventa1'] : '';
$venta2 = (isset($_POST['textventa2']) ) ? $_POST['textventa2'] : '';
$venta3 = (isset($_POST['textventa3']) ) ? $_POST['textventa3'] : '';
$venta4 = (isset($_POST['textventa4']) ) ? $_POST['textventa4'] : '';
$promedioVentas = ($venta1+$venta2+$venta3+$venta4)/4;<---ventas promedio
$bono=0.25 $promedioVentas;
$totalapagar = ($venta1+$venta2+$venta3+$venta4);
$netoapagar = ($venta1+$venta2+$venta3+$venta4+$bono);
if ($_POST) {

echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre Vendedor: '.$nombreVendedor.'<br/>';
echo 'Venta 1: '.$venta1.' Bolivares <br/>';
echo 'Venta 2: '.$venta2.' Bolivares <br/>';
echo 'Venta 3: '.$venta3.' Bolivares <br/>';
echo 'Venta 4: '.$venta4.' Bolivares <br/>';
echo 'Sueldo Básico: '.$sueldoBase.' Bolivares <br/>';
echo 'Promedio de Ventas: '.$promedioVentas.' Bolivares <br/>';
echo 'Bonos por las Ventas: '.$bono.' Bolivares <br/>';
echo 'Neto a Pagar sin Bonos: '.$totalapagar.' Bolivares <br/>';
echo 'Total a Pagar con Bonos: '.$netoapagar.' Bolivares <br/>';
}

?>


</body>
</html>

[hr]
 

Ahí está el segundo programa hecho revisalo por favor y me dices si te funciona bien, y que le puedo mejorar o como hacerlo mas presentable, ¿si?, Gracias de Antemano.



Segunda Actualización : (17:08 horas)


Con respecto al tercer programa, el del supermercado, no tengo ni idea de cómo hacerlo, es decir, si se que pondría, pero lo que me mató fue lo de capturar los productos en la caja y mostrar los precios a los clientes.

Citar
En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar, al final del día le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja. ¿cual fue el promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con cheques?

Lo que yo podría hacer o quería hacer pero no se hacerlo (quizás esté equivocado) era una base de datos con una serie de productos con un precio establecido. Ya que no me dicen cuantos productos compra el cliente, ¿cómo hago si por ejemplo el cliente compra más de 3 productos o más? los textboxes no me servirían aquí... Es decir en diferentes situaciones poder agregar productos, mientras se esté ejecutando el programa.

En resumen todo lo que hay que mostrar:

1- Los productos comprados y su precio.
2-Total de las ventas de su caja ese día.
3.El promedio de las ventas
4.Cuantos clientes pagaron en efectivo y cheques?
5-Total recolectado en efectivo y cheques <-- se lo pondría yo.

Gracias de antemano en lo que me puedas orientar, Buenas Tardes.
« Última modificación: 19 de Diciembre 2013, 23:13 por Jigsaw_MGO »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #8 en: 20 de Diciembre 2013, 09:04 »
Hola, he probado el programa 2 y me sale un error:


Parse error: syntax error, unexpected '<' on line 56


La línea la tienes así:

$promedioVentas = ($venta1+$venta2+$venta3+$venta4)/4;<---ventas promedio


Los comentarios en php se ponen con // ó con /* ... */ por lo que tendrías que dejarla así:

$promedioVentas = ($venta1+$venta2+$venta3+$venta4)/4;//<---ventas promedio


También aparece un hr al final que hay que borrar


El cálculo de los pagos creo que lo tienes mal hecho. Lo que tienes que pagar sería:

Neto: 400000

Total = neto + bono

Ahora mismo tienes puesto que el pago es la suma de las ventas más el bono ¿Y eso por qué?


Para el tercer programa: usar una base de datos no lo veo como solución mágica, ya que los precios de productos los puedes fijar dentro del archivo igualmente y el problema está en la indefinición del número de clientes y número de productos. Aquí lo que se me ocurre sería usar bucles: un bucle exterior para clientes (de forma que en cada ocasión se da opción a añadir un nuevo cliente o a dar por concluida la adición de clientes) y un bucle interior para productos (de forma que en cada ocasión se mete el precio del producto 1, producto 2, ... para el cliente correspondiente). Los datos lo normal sería guardarlos en arrays, en archivo o en base de datos. Para guardarlos en arrays que es quizás lo más simple podrías trabajar con variables de sesión, que te mantienen la información mientras dura la sesión del usuario, aunque esto habría muchas formas de plantearlo y de hacerlo. El enunciado no está tampoco demasiado claro.
Responsable de departamento de producción aprenderaprogramar.com

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #9 en: 20 de Diciembre 2013, 22:22 »

Del segundo ejercicio:

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ventas</title>
</head>

<body>
<p><strong>Se tiene como dato de entrada el nombre del vendedor y 4 ventas. Se debe       calcular el total a pagar sabiendo que su sueldo b&aacute;sico es de 400.000,00 y       se le paga un bono correspondiente al 25% de las ventas promedio se debe       imprimir el nombre del vendedor, sueldo b&aacute;sico, bono y neto a pagar. Al       finalizar se pide el total a pagar de todos los bonos.</strong></p>

<form id="form1" name="form1" method="post" action="">
  <label>Nombre del Vendedor:
  <input type="text" name="textnombre" />
  </label>
  <p>
    <label>Venta 1
    <input type="text" name="textventa1" />
    </label>
  </p>
  <p>
    <label>Venta 2
    <input type="text" name="textventa2" />
    </label>
</p>
  <p>
    <label>Venta 3
    <input type="text" name="textventa3" />
    </label>
</p>
  <p>
    <label>Venta 4
    <input type="text" name="textventa4" />
    </label>
</p>
  <p>
    <label></label>
  </p>
  <p>
    <label>Calcular:
    <input type="submit" name="Calcular" value="Enviar" />
    </label>
  </p>
  <p>
    <label></label>
  </p>
</form>
<p align="center"><strong></strong></p>

<?php
$sueldoBase 400000;
$nombreVendedor = (isset($_POST['textnombre']) ) ? $_POST['textnombre'] : '';
$venta1 = (isset($_POST['textventa1']) ) ? $_POST['textventa1'] : '';
$venta2 = (isset($_POST['textventa2']) ) ? $_POST['textventa2'] : '';
$venta3 = (isset($_POST['textventa3']) ) ? $_POST['textventa3'] : '';
$venta4 = (isset($_POST['textventa4']) ) ? $_POST['textventa4'] : '';
$promedioVentas = ($venta1+$venta2+$venta3+$venta4)/4;
$bono=0.25 $promedioVentas;
$netoapagar = ($sueldoBase+$bono);
$totalapagar = ($venta1+$venta2+$venta3+$venta4+$bono);
if ($_POST) {

echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre Vendedor: '.$nombreVendedor.'<br/>';
echo 'Venta 1: '.$venta1.' Bolivares <br/>';
echo 'Venta 2: '.$venta2.' Bolivares <br/>';
echo 'Venta 3: '.$venta3.' Bolivares <br/>';
echo 'Venta 4: '.$venta4.' Bolivares <br/>';
echo 'Sueldo Básico: '.$sueldoBase.' Bolivares <br/>';
echo 'Promedio de Ventas: '.$promedioVentas.' Bolivares <br/>';
echo 'Bonos a pagar por las Ventas: '.$bono.' Bolivares <br/>';
echo 'Neto a Pagar: '.$netoapagar.' Bolivares <br/>';
echo 'Total a Pagar con Bonos: '.$totalapagar.' Bolivares <br/>'// <-- en esta linea el br?, a mi me  corre bien
}

?>


</body>
</html>



Ahora con respecto al tercer ejercicio:

**Es verdad no tiene un enunciado muy claro. Sin embargo analicémoslo detenidamente.

**Sabemos que en un supermercado, por lógica, uno va a caja con uno o varios productos, ellos lo pasan por un lector y este le muestra al cajero los datos del producto como lo son: Código de Producto, Nombre del Producto, Precio con IVA, etc.

*Primera parte:

Supongamos yo sea el cajero y me traen los productos y yo quiero ingresar el precio y los nombres de los productos y que al final me muestre el total a pagar por el cliente.

*Segunda parte:

Luego quiero que me muestre un informe del total que gané en la caja en todo el dia (o hasta que cierre la sesión, que debería ser hasta que deje de registrar productos), el promedio de las ganancias, y tambíen que me muestre cuantos clientes pagaron en efectivo y cuantos en cheque.


De verdad no tengo ni idea como empezar... ¿Me orientarías por favor?. De verdad necesito saber como agregar nuevos productos y sus precios ya estando en ejecución y que al final muestre ese informe.

Una idea que tenía es que al ejecutar la página, de entrada me pregunte mediante un MSGBOX "¿Cuantos productos desea registrar?" y dependiendo del numero salgan textboxes (o no se con que mas podria hacerlo) que digan "Nombre del Producto:", "Precio Neto:" "Total a pagar por cliente:".

Luego que me pregunte "¿Desea seguir registrando productos?", si es así que me devuelva o haga setfocus al textbox "Nombre del Producto:", de lo contrario, cierre la sesión y me muestre los "echos" con la demás información.


Si tengo la idea pero no se como plantear lo de los bucles externos e internos en código ni la opcion de agregar los productos en tiempo de ejecución, aunque me pregunto ¿Qué es más fácil o más viable en este caso?: 1-¿Qué al ejecutar la página web, me salga el Msgbox que determinará lo que se mostrará en el formulario?, me refiero a que si digo por ejemplo "5" salgan cinco textboxes con sus respectivos "Nombre Producto", "Cantidad", "Precio a Pagar por Cliente:".

2- ¿Ejecutar la página y en una tabla ir agregando datos y que me los sume y muestre sus resultados? (Aclaro que no tengo ni idea del código en ninguna de las dos situaciones).

Gracias de Antemano con lo que me puedas ayudar, Buenas Tardes.
[/quote]


Actualizacion 1:

Y aquí está como lo tengo hasta ahora, basicamente nada pero algo es algo...

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Supermercado</title>
</head>

<body>
<p>En       un supermercado un cajero captura los precios de los art&iacute;culos que los       clientes compran e indica a cada cliente cual es el monto de lo que deben       pagar, al final del d&iacute;a le indica a su supervisor cuanto fue lo que cobro       en total a todos los clientes que pasaron por su caja, cual fue el       promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con       cheques. </p>
<form id="form1" name="form1" method="post" action="">
  <label>Nombre de Producto
  <input name="textnombrep" type="text" id="textnombrep" />
  </label>
  <p>
    <label>Precio del Producto:
    <input name="textpreciop" type="text" id="textpreciop" />
    </label>
  </p>
  <p>
    <label>Tipo de Pago
    <select name="TipoDePago">
      <option>Efectivo</option>
      <option>Cheque</option>
    </select>
    </label>
  </p>
  <p>
    <label>Totalizar:
    <input type="submit" name="Submit" value="Enviar" />
    </label>
  </p>
</form>
<?php
$nombreproducto = (isset($_POST['textnombrep']) ) ? $_POST['textnombrep'] : '';
$textprecioproducto = (isset($_POST['textpreciop']) ) ? $_POST['textpreciop'] : '';
$promedioventas  //<--- dependiendo de cuantos productos se hayan ingresado, sumarlos y sacarles el promedio e imprimirlo por pantalla
$TipoDePago//<--- Hacer un contador que me sume los que pagaron en efectivo y los que pagan en cheque cada vez que se elija cualquiera de las opciones en  la lista.
$TotalRecaudado//Total efectivo+cheque por los productos en el día.
?>

<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>

Basicamente necesito que por favor me ayudes en algo ya que todavía no me acostumbro a php y este programa simplemente es complicado aún para mi, si no es mucha molestia.

1-El código del Msgbox de manera que me modifique el formulario dependiendo del numero de productos a ingresar:

- Este es mi diseño que creé:

-Nombre Producto
-Cantidad [Lista tipo carrito] <- falta
-Precio Neto del Producto: <- Se incrementa si son más de un mismo producto.
-Tipo de Pago {Lista/Cheque/Efectivo} <- Aquí me surge otra confusión con los contadores, para que cuando pague uno en efectivo aumente, al igual que con los cheques.
-Totalizar: {Botón:Enviar}

2- Los bucles, me resultan también me resultan dificiles de codificar, aún no se la estructura en php de WHILE, FOR, etc.

3- Básicamente lo que tengo en los comentarios del código, este programa lo he estado intentando por mas de 3 horas y solo pude hacer funcionar eso... Por favor.

Eso es todo, ya que los demás se me hará más fácil. En avance gracias como siempre en lo que me puedas guíar.
« Última modificación: 20 de Diciembre 2013, 22:56 por Jigsaw_MGO »

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #10 en: 21 de Diciembre 2013, 00:41 »

Actualización 2:
(No consigo el botón modificar en el post de arriba...)
 
He estado intentandolo toda la tarde idear una manera para colocarle los bucles y contadores pero no salen, lo hice funcionar de manera basica pero me faltan cosas, me trae loco este programa :S.

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Supermercado</title>
</head>

<body>
<p>En       un supermercado un cajero captura los precios de los art&iacute;culos que los       clientes compran e indica a cada cliente cual es el monto de lo que deben       pagar, al final del d&iacute;a le indica a su supervisor cuanto fue lo que cobro       en total a todos los clientes que pasaron por su caja, cual fue el       promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con       cheques. </p>
<form id="form1" name="form1" method="post" action="">
  <label>Nombre de Producto
  <input name="textnombrep" type="text" id="textnombrep" />
  </label>
  <p>
    <label>Precio Neto del Producto:
    <input name="textpreciop" type="text" id="textpreciop" />
    </label>
  </p>
  <p>
    <label>Tipo de Pago
    <select name="TipoDePago">
      <option>Efectivo</option>
      <option>Cheque</option>
    </select>
    </label>
  </p>
  <p>
    <label>Totalizar:
    <input type="submit" name="Submit" value="Enviar" />
    </label>
  </p>
</form>
<?php
$nombreproducto = (isset($_POST['textnombrep']) ) ? $_POST['textnombrep'] : '';
$precioproducto = (isset($_POST['textpreciop']) ) ? $_POST['textpreciop'] : '';
$TipoDePago = (isset($_POST['TipoDePago']) ) ? $_POST['TipoDePago'] : '';
//$cantidad = <--cantidad de productos
$totalacobrar = ($precioproducto);
//$Totaldía = <--todo lo vendido en el día en esa caja
//$promedioVentas = Suma de los productos entre el numero de productos ingresados.
//$pagaefectivo = contador para el tipo de pago "Efectivo"
//$cheque = contador para el tipo de pago "Cheque"

if ($_POST) {

echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre del Producto: '.$nombreproducto.'<br/>';
echo 'Precio Neto del Producto: '.$precioproducto.' Bolivares <br/>';
echo 'Tipo de Pago: '.$TipoDePago.'<br/>';
//echo 'cantidad: '.$Cantidad.'<br/>
echo 'Total a Cobrar: '.$totalacobrar.' Bolivares <br/>';
//$Totaldía = <--todo lo vendido en el día en esa caja
//$promedioVentas = Suma de los productos entre el numero de productos ingresados.
//$pagaefectivo = contador para el tipo de pago "Efectivo"
//$cheque = contador para el tipo de pago "Cheque"

}

?>

<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>

Me falta basicamente, lo que está comentado dentro del código, que no le hallo solución, agregar más productos, el botón de cantidad, los contadores del Tipo de Pago
y bucles para la condición si se desean agregar más productos o no.

Me voy a descansar, Buenas Noches, Saludos.
« Última modificación: 21 de Diciembre 2013, 00:48 por Jigsaw_MGO »

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #11 en: 21 de Diciembre 2013, 00:50 »
Creo que repetí dos mensajes, necesito borrar el mensaje nueve ya que plantee mal lo que quería...

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #12 en: 21 de Diciembre 2013, 10:40 »
He borrado el mensaje que indicabas erróneo
Responsable de departamento de producción aprenderaprogramar.com

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #13 en: 21 de Diciembre 2013, 11:37 »
Desde el momento en que se hace necesario almacenar información hay que utilizar algo que lo permita. Entre las posibilidades que se tienen están:

1) Usar una base de datos para almacenar la información
2) Usar archivos para almacenar la información
3) Usar variables de sesión para almacenar la información
4) Usar otras posibilidades para almacenar la información

He tomado el último código que habías generado tú y lo he modificado para almacenar la información usando variables de sesión y arrays. Esto quizás no es lo óptimo, sobre todo porque te obliga a descachearte cada vez que quieras hacer una prueba. Si no te descacheas te sigue contando como si ya hubieras introducido productos (para más seguridad, cada vez que se quiera probar, cerrar el navegador y volver a abrirlo). A este código lo que le faltaría es:

1) Añadir un formulario adicional con un checkbox que permita marcar al usuario "Finalizada la incorporación de productos", o bien también podría hacerse con un link.

2) Añadir una parte de código que cuando detecte que ha terminado la incorporación de productos haga los cálculos y muestre los resultados.

Código: [Seleccionar]
<?php 
session_start
(); //Iniciamos o Continuamos la sesion
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Supermercado</title>
</head>

<body>
<p>En       un supermercado un cajero captura los precios de los art&iacute;culos que los       clientes compran e indica a cada cliente cual es el monto de lo que deben       pagar, al final del d&iacute;a le indica a su supervisor cuanto fue lo que cobro       en total a todos los clientes que pasaron por su caja, cual fue el       promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con       cheques. </p>
<form id="form1" name="form1" method="post" action="">
  <label>Nombre de Producto
  <input name="textnombrep" type="text" id="textnombrep" />
  </label>
  <p>
    <label>Precio Neto del Producto:
    <input name="textpreciop" type="text" id="textpreciop" />
    </label>
  </p>
  <p>
    <label>Tipo de Pago
    <select name="TipoDePago">
      <option>Efectivo</option>
      <option>Cheque</option>
    </select>
    </label>
  </p>
  <p>
    <label>Totalizar:
    <input type="submit" name="Submit" value="Enviar" />
    </label>
  </p>
</form>
<?php
if (!
$_SESSION['contadorProductos']){
$_SESSION['contadorProductos']=1;
}
$_SESSION['prueba'][0] = 'prueba';

$_SESSION['nombreproducto'][$_SESSION['contadorProductos']] = (isset($_POST['textnombrep']) ) ? $_POST['textnombrep'] : '';
$_SESSION['precioproducto'][$_SESSION['contadorProductos']] = (isset($_POST['textpreciop']) ) ? $_POST['textpreciop'] : '';
$_SESSION['TipoDePago'][$_SESSION['contadorProductos']] = (isset($_POST['TipoDePago']) ) ? $_POST['TipoDePago'] : '';

if ($_POST) {
echo 'Cantidad de productos registrada: '.$_SESSION['contadorProductos'];
for($i=1;$i<=$_SESSION['contadorProductos'];$i++) {

echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre del Producto: '.$i.' : '.$_SESSION['nombreproducto'][$i].'<br/>';
echo 'Precio Neto del Producto: '.$i.' : '.$_SESSION['precioproducto'][$i].' Bolivares <br/>';
echo 'Tipo de Pago del producto: '.$i.' : '.$_SESSION['TipoDePago'][$i].'<br/>';
}
$_SESSION['contadorProductos'] = $_SESSION['contadorProductos']+1;
}

?>

<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>

Con este código a medida que vas añadiendo productos te va apareciendo abajo la lista con los datos almacenados, por ejemplo:

Cantidad de productos registrada: 3
Datos:
Nombre del Producto: 1 : sandia
Precio Neto del Producto: 1 : 5000 Bolivares
Tipo de Pago del producto: 1 : Cheque

Datos:
Nombre del Producto: 2 : melon
Precio Neto del Producto: 2 : 2000 Bolivares
Tipo de Pago del producto: 2 : Efectivo

Datos:
Nombre del Producto: 3 : pepino
Precio Neto del Producto: 3 : 1000 Bolivares
Tipo de Pago del producto: 3 : Efectivo
Responsable de departamento de producción aprenderaprogramar.com

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #14 en: 21 de Diciembre 2013, 16:43 »
Buenos días y gracias de nuevo César!, Funciona perfecto el programa pero salía un error en la linea 38 algo de "undefined index" que al utilizar el programa se desapareció ¿por qué será?.

Ahora voy a intentar agregar un textbox "cantidad" para que cuando lleven mas de dos de un mismo producto los multiplique por dos el precio, luego planeo usar tu contador para que me cuente y muestre cuantos pagaron en cheque y efectivo, y luego pongo un condicional para terminar la sesión. Cualquier avance y actualización te aviso.

Buen día, gracias de nuevo.




Actualizando:

Tu codigo me sirvió bien, ahora, busqué y busqué en google como hacer para cerrar sesión y todo lo que aparece son cosas para MYSQL, es decir, bases de datos, entonces esto me confunde y me surgen estas dudas:

1- ¿Realmente las variables [$_SESSION] pueden ayudarme a resolver el problema que tengo con este programa? es decir me corre bien, pero no hallo la manera de cerrar la sesión mediante código (para que apareciera un ConfirmBox preguntandome si deseo seguir agregando productos o no) o supongo que no se como hacerlo, quizás si estoy complicando más las cosas de lo que debería, ¿tu qué piensas?. Ya ví un tuto por internet y crea una serie de archivos para hacer un login para dar inicio a la sesion para luego poder cerrarla, o acaso ¿Esto no es necesario?

2- Algo que me pareció problemático fue que, al terminar de utilizar el programa, muestre los datos de las opciones "Cheque" "Efectivo" de la Lista/Menu, intenté usar tu código del contador combinado con el "echo" y nada, se supone que lo que debo hacer es que por cada sesión (foreach($_SESSION)) me cuente verdaderamente los pagos en efectivo y cheque y los aumente.

3-No se como sumar variables ($_SESSION) es decir, si no he terminado la sesión (cerrando el navegador) por lo que sigue registrando datos, me sume el nuevo producto que agregue con el anterior, y actualice el total a pagar y recaudado.


Entonces ¿tu que piensas lo estoy complicando mucho con lo de las base de datos y el login y todas esas cosas?, ¿Cómo puedo hacerlo para seguir con nuestro formato de variables de sesión?.

Gracias de nuevo César, y disculpa la molestia jajaja, como alumno soy así muy preguntón.

PS: Aquí están los códigos para cada página del login

Para las funciones:

Código: [Seleccionar]
<?php
function conectar($servidor$user$pass$name)
{
$con = @mysql_connect($servidor$user$pass);
@mysql_select_db($name$con);

?>


Para el Login HTML

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Login Html</title>
</head>

<body>

<form action="registro.php" method="$POST">
Usuario: <input type="text" name="user" /> <br />
  Contraseña: <input type="text" name="pass" /> <br />
Registrar: <input type="submit" name="Enviar" /> <br />

Para el Login PHP

Código: [Seleccionar]
<?php
require_once('funciones.php');
conectar('localhost''root''supermercado');
$user strip_tags($_POST['user']);
$pass strip_tags(sha1($_POST['pass']));
$query = @mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'" AND  pass="'.mysql_real_escape_string($pass).'"; 

?>


Para el estado "Logueado"
Código: [Seleccionar]
<?php
session_start();
if(
$_SESSION['logged'] == 'yes')
{
echo 'Bienvenido '.$_SESSION['user'].', Esta es tu página personal.';
}else{
echo "No estas logueado";
}
}
?>

Registro.
Código: [Seleccionar]
<?php
require_once('funciones.php');
conectar('localhost''root''supermercado');

//recibir datos
$user strip_tags($_POST['user']);
$pass strip_tags(sha1($_POST['pass']));
$ip =$_SERVER['REMOTE_ADDR'];

$query = @mysql_query('SELECT * FROM usuarios WHERE user = "'.mysql_real_escape_string($user).'";

if($existe = @mysql_fetch_object($query))
{
echo '
El Usuario '.$user.' Ya Existe.';
}
else
{
$registrar = @mysql_query('
INSERT INTO usuarios(userpassipvalues"'.mysql_real_escape_string($user).'""'.mysql_real_escape_string($pass).'","'.$ip.'")');
if ($registrar)
{
echo '
Usuario Registrado Con Exito';
}
else
{
echo "Lo Sentimos, Hubo Un Error";
}
}

?>

Y aquí la página de la que me estoy guiando
Link : http://www.youtube.com/watch?v=2i8IDybjQGA


« Última modificación: 21 de Diciembre 2013, 22:20 por Jigsaw_MGO »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #15 en: 22 de Diciembre 2013, 22:35 »
Esto hay muchas formas de hacerlo. Yo trataría de simplificar, y simplificando no veo necesidad ni siquiera de cerrar sesión. Lo único que necesitas es un formulario adicional o un simple link en el que puedas clickar cuando quieras dejar de introducir artículos. Es decir, vas introduciendo artículos, uno, dos... todos los que quieras. Cuando terminas marcas la casilla de un nuevo formulario "Terminada la introducción de artículos" (o un link (Pulsar aquí cuando termine de introducir artículos". Una vez se marca la casilla y se pulsa aceptar, o una vez  se pulsa el link, usas un condicional para detectar que ha terminado la introducción de artículos y en vez de añadir un artículo procedes a calcular el total y los datos que sean necesarios mostrar, y eso es todo.

En resumen, puedes usar login y puedes usar bases de datos y puedes usar muchas cosas más, todo lo que quieras, aunque para mí lo más simple es lo que te he indicado.
Responsable de departamento de producción aprenderaprogramar.com

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #16 en: 23 de Diciembre 2013, 00:14 »
Buenas Noches César gracias por la respuesta, ahora tengo otras preguntas:

1- ¿Cómo puedo hacer para que en la misma sesión, me vaya sumando los precios de los productos?, existe una manera de adaptar el codigo para esto?, intenté con las variables de suma que encontré por internet pero ninguna se adapta al código de manera que me lea los datos que haya ingresado en el textbox 'textpreciop' y me lo sume con lo que sería el 'textpreciop2'<--- datos que va agregando cada vez que envio los datos, se supone que son arrays, e intenté crear una variable para que me diga el total a pagar por el cliente, intenté algo asi:

Código para sumar dos variables $_SESSION:

Código: [Seleccionar]
$_SESSION['Totalacobrar'][$_SESSION['contadorProductos']] = (isset($_POST['totalacobrar']) ) ? $_POST['TipoDePago'] : ''; // <--- AQUI es donde surgen mis problemas, si se como sumar dos variables, pero no se en donde poner que $totalacobrar= textpreciop+textpreciop2... etc sabiendo que cada uno aumenta despues del registrar nuevos productos <---
2- ¿Y cómo podría modificar este codigo para que lea los datos de una lista/menú que generalmente son 'options' de manera  que me reciba la elección "Cheque" o "Efectivo" para que cuando muestre la información por 'echo' ella me diga,

Tipo de Pago: Cheque
Pagos Con Cheque: 1
Pagos Con Efectivo:0

Código de contador para tipo de pago:

Código: [Seleccionar]
  <p>
    <label>Tipo de Pago
    <select name="TipoDePago">
      <option>Efectivo</option>
      <option>Cheque</option>
    </select>
    </label>
  </p> ''; <-- Aquí me puse a jugar con condicionales, que si $_SESSION['TipoDePago'][$_SESSION['contadorProductos']] = (isset($_POST['TipoDePago']) ) ? $_POST['TipoDePago']="Cheque" me aumente 1, pero es un desastre!!!



3-Bajé el Adobe Dreamweaver CC, ¿es este mejor que el Macromedia Dreamweaver 8?

4-¿Cómo haría yo para configurar la carpeta del proyecto, de las paginas que he hecho y que están localizadas en wampserver?, quiero desinstalar El DW8 pero no sé si me borrará todo, lo que quiero hacer es importarlas al nuevo DWCC, para que me vaya guardando las webs en la misma carpeta del DW8.

Gracias de antemano, Buenas noches.

PS y un recordatorio: Cesar no creas que no he hecho nada o que ni siquiera lo he intentado, de verdad, la educación aquí es pésima en el sentido de que te dan un tema, te mandan a hacer 4 o 5 programas y cambian de lenguaje rapidamente, por lo que no se casi nada de html, y menos de php ya que ni 3 clases vimos por: huelgas, elecciones presidenciales, etc. Yo se que no hay excusa ya que también he visto tutoriales por internet, y ya he entendido, sólo que por el tiempo, necesito apurarme a hacer estos ejercicios, este tercero me ha tomado mas tiempo, ya que tiene cosas que nunca vi y tambien pasa que de lo que llevo aprendido todavía no he llegado a estos métodos de manejo de sesiones... Bueno espero que me entiendas ya que sabes lo que se siente ser nuevo en una carrera tan complicada como lo es la programación y lo frustrante que es saber lo que quieres hacer y no como plasmarlo.
[/font][/size][/color]

« Última modificación: 23 de Diciembre 2013, 00:29 por Jigsaw_MGO »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #17 en: 23 de Diciembre 2013, 12:19 »
Sobre la suma del precio de los productos: los precios los tienes en un array. Ahora lo que tienes que hacer es crear una variable de sesión que se llame "$sumaDePrecios" o algo similar, y en dicha variable sumar todos los precios. Esto se puede hacer con un simple for:

(for i=1 hasta último índice) {

$sumaDePrecios = $sumaDePrecios + precio[ i ];

}

Esto no es código verdadero, sólo es una indicación de la lógica con que se haría.


Para los pagos con cheque o efectivo exactamente igual, los tienes en un array, lo que tienes que hacer es recorrer el array y hacer los cálculos.

Puedes guiarte por lo que dice aquí:


https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=571:funcion-count-recorrer-arreglos-o-arrays-multidimensionales-en-php-con-for-foreach-ejemplos-cu00826b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193

Si tengo tiempo creo el código... pero ahora vienen días navideños :)



Sobre el Adobe Dreamweaver y Macromedia no sabría decirte cuál es el mejor, no estoy trabajando con estos programas.


Sobre el aprendizaje de la programación, efectivamente es complicado y requiere tiempo. Te recomiendo los cursos sobre HTML, CSS y PHP que ofrecemos aquí, pero requieren tiempo y muchas veces no se dispone de él. Saludos.

Responsable de departamento de producción aprenderaprogramar.com

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #18 en: 23 de Diciembre 2013, 18:06 »
Muchas gracias, y Feliz Navidad!!! te dejo descansar estos tres dias jajajaja, el 27 volvemos, que disfrutes!!!.

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:AYUDA CON PHP URGENTE!!!!!!
« Respuesta #19 en: 26 de Diciembre 2013, 14:47 »
Espero que hayas comido muchos turrones  ;D Aquí te dejo el código con la idea que te había comentado. Al ejecutarlo con datos de prueba el resultado es así:

Código: [Seleccionar]
Cantidad de productos registrada: 3
Datos:
Nombre del Producto: 1 : coles
Precio Neto del Producto: 1 : 12000 Bolivares
Tipo de Pago del producto: 1 : Efectivo

Datos:
Nombre del Producto: 2 : pepino
Precio Neto del Producto: 2 : 14000 Bolivares
Tipo de Pago del producto: 2 : Cheque

Datos:
Nombre del Producto: 3 : tomate
Precio Neto del Producto: 3 : 16000 Bolivares
Tipo de Pago del producto: 3 : Cheque
No ha pulsado boton terminado


HA PULSADO BOTON TERMINADO. CALCULO DE DATOS.

RESULTADOS:

Cobros totales en el dia: 42000 bolivares
Numero total de pagos: 3
Pagos en efectivo: 1
Pagos en cheque: 2
Valor promedio de pago: 14000 bolivares

El código para obtener los resultados anteriores:

Código: [Seleccionar]
<?php 
session_start
(); //Iniciamos o Continuamos la sesion
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Supermercado</title>
</head>

<body>
<p>En       un supermercado un cajero captura los precios de los art&iacute;culos que los       clientes compran e indica a cada cliente cual es el monto de lo que deben       pagar, al final del d&iacute;a le indica a su supervisor cuanto fue lo que cobro       en total a todos los clientes que pasaron por su caja, cual fue el       promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con       cheques. </p>
<form id="form1" name="form1" method="post" action="">
  <label>Nombre de Producto
  <input name="textnombrep" type="text" id="textnombrep" />
  </label>
  <p>
    <label>Precio Neto del Producto:
    <input name="textpreciop" type="text" id="textpreciop" />
    </label>
  </p>
  <p>
    <label>Tipo de Pago
    <select name="TipoDePago">
      <option>Efectivo</option>
      <option>Cheque</option>
    </select>
    </label>
  </p>
  <p>
    <label>Totalizar:
    <input type="submit" name="Submit" value="Enviar" />
    </label>
  </p>
</form>


<form id="form2" name="form2" method="post" action="">
<input type="hidden" name="final" value="terminado">
<p> Cuando termine la introduccion de productos pulse en el boton "He terminado" </p>

  <p>
    <label>
    <input type="submit" name="Submit2" value="He terminado" />
    </label>
  </p>
</form>


<?php
if (!
$_SESSION['contadorProductos'] && $_POST['final'] != "terminado"){
$_SESSION['contadorProductos']=1;
}


$_SESSION['nombreproducto'][$_SESSION['contadorProductos']] = (isset($_POST['textnombrep']) ) ? $_POST['textnombrep'] : '';
$_SESSION['precioproducto'][$_SESSION['contadorProductos']] = (isset($_POST['textpreciop']) ) ? $_POST['textpreciop'] : '';
$_SESSION['TipoDePago'][$_SESSION['contadorProductos']] = (isset($_POST['TipoDePago']) ) ? $_POST['TipoDePago'] : '';

if ($_POST && $_POST['final'] != "terminado") {
echo 'Cantidad de productos registrada: '.$_SESSION['contadorProductos'];
for($i=1;$i<=$_SESSION['contadorProductos'];$i++) {

echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre del Producto: '.$i.' : '.$_SESSION['nombreproducto'][$i].'<br/>';
echo 'Precio Neto del Producto: '.$i.' : '.$_SESSION['precioproducto'][$i].' Bolivares <br/>';
echo 'Tipo de Pago del producto: '.$i.' : '.$_SESSION['TipoDePago'][$i].'<br/>';
}
$_SESSION['contadorProductos'] = $_SESSION['contadorProductos']+1;
}

if ($_POST['final'] == "terminado") {
echo 'HA PULSADO BOTON TERMINADO. CALCULO DE DATOS. <br/>';
$cobrosTotalDia 0;
$pagosEfectivo 0;
$pagosCheque 0;
$pagoPromedio 0;

for($i=1;$i<=$_SESSION['contadorProductos'];$i++) {
$cobrosTotalDia $cobrosTotalDia $_SESSION['precioproducto'][$i];
if ($_SESSION['TipoDePago'][$i] =='Efectivo') {$pagosEfectivo $pagosEfectivo+1; }
if ($_SESSION['TipoDePago'][$i] =='Cheque') {$pagosCheque $pagosCheque+1; }

$pagoPromedio $cobrosTotalDia / ($pagosEfectivo+$pagosCheque);

}
echo '<br/> RESULTADOS: <br/><br/>';
echo 'Cobros totales en el dia: '.$cobrosTotalDia ' bolivares<br/>';
echo 'Numero total de pagos: '. ($pagosEfectivo+$pagosCheque).'<br/>';
echo 'Pagos en efectivo: '.$pagosEfectivo.'<br/>';
echo 'Pagos en cheque: '.$pagosCheque.'<br/>';
echo 'Valor promedio de pago: '.$pagoPromedio.' bolivares<br/>';


} else { echo 'No ha pulsado boton terminado <br/>';
}

?>

<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>

Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".