Duda sobre guardar datos en cada usuario en php

Iniciado por ::: Devil :::, 8 Julio 2014, 20:23 PM

0 Miembros y 2 Visitantes están viendo este tema.

::: Devil :::

si yo se que me dijistes que hiciera una columna mas para agregar el campo ced y tal pero mi problema esta en como yo asocio el inicio de sesion con la compra

si tu inicias sesion en mi pagina tu usuario es minus supongamos

comprastes 3 productos x

mi dilema esta en como asociar tu nombre de usuario a lo que se guarda en el carrito de compras.

mi problema es el codigo
NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA

::: Devil :::

<? session_start(); $ContenidoCesta = array( "codigo" -> $codigo, "cantidad" -> $cantidad ); $_SESSION["carrito"] = $carrito; ?>

no se se podria hacer esto??
NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA

MinusFour

¿Compras? ¿Estamos hablando apenas del carrito no?

Esto es lo que yo me imagino que haces:

Te logueas con un usuario.

Agregas un producto a tu carrito de compras. Se inserta en la base de datos, la llave asociada a ese producto y cantidad. (Que yo digo que aquí debes tambien poner la clave del usuario, su cedula)

Le imprimes un resumen de lo que tiene su carrito. (El carrito no tiene ni idea de quien pertenece los productos por lo de arriba que no tienes una clave para asociar a tu usuario).

Cita de: ::: Devil ::: en 11 Julio 2014, 18:51 PM
como yo asocio el inicio de sesion con la compra

Tienes esto en tu archivo index1.php

Código (php) [Seleccionar]
if($dato=mysql_fetch_array($can)){
$_SESSION['username']=$dato['usu'];
$_SESSION['tipo_usu']=$dato['tipo'];
if($_SESSION['tipo_usu']=='a' or $_SESSION['tipo_usu']=='ca'){
header('location:index.php');
}


Puedes guardar el CED del usuario así:

Código (php) [Seleccionar]

$_SESSION["ced"] = $dato["ced"]


Y luego usar el SQL para obtener la lista del carrito así:

Código (php) [Seleccionar]

$query = "SELECT codigo, cantidad FROM carrito WHERE ced = '" . $_SESSION["ced"] . "'";


Y para insertar nuevos productos en la lista de carrito:

Código (php) [Seleccionar]

$query = "INSERT INTO carrito (codigo, cantidad, ced) VALUES('" . $codigo . "', '" . $cantidad . "', '" . $_SESSION["ced"] . "')";


Y puedes actualizar la cantidad de los productos así:

Código (php) [Seleccionar]

$query = "UPDATE carrito SET cantidad =  '" . $cantidad . "' WHERE ced = '" . $_SESSION["ced"] . "' AND codigo =  '" . $codigo . "'";


Y puedes borrar un producto así:

Código (php) [Seleccionar]

$query = "DELETE FROM carrito WHERE ced = '" . $_SESSION["ced"] . "' AND codigo =  '" . $codigo . "'";

::: Devil :::

hola soy yo otra vez no habia probado porque estaba haciendo un proyecto aparte ya lo termine y empiezo con este de nuevo

hice esto y aora me da este error

Código (php) [Seleccionar]
<?php 
session_start();
include('php_conexion.php'); 
$act="0";
include_once("php_conexion.php");
if(!empty($_GET['del'])){
$id=$_GET['del'];
mysql_query("DELETE FROM carrito WHERE codigo='$id'");
}
   if(!$_SESSION['tipo_usu']=='a' or !$_SESSION['tipo_usu']=='ca'){
header('location:index.php');
    }
?>


<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">
    <title>Carrito de Compras</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <!-- Le styles -->
    <link href="css/bootstrap.css" rel="stylesheet">
    <style type="text/css">
      body {
        padding-top: 60px;
        padding-bottom: 40px;
      }
    </style>
    <link href="css/bootstrap-responsive.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="../assets/js/html5shiv.js"></script>
    <![endif]-->

    <!-- Fav and touch icons -->
   
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="ico/apple-touch-icon-114-precomposed.png">
      <link rel="apple-touch-icon-precomposed" sizes="72x72" href="ico/apple-touch-icon-72-precomposed.png">
                    <link rel="apple-touch-icon-precomposed" href="ico/apple-touch-icon-57-precomposed.png">
                                   <link rel="shortcut icon" href="ico/favicon.png">
  </head>

  <body>

    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="brand" href="#">Tienda Venezuela Computer</a>
          <div class="nav-collapse collapse">
            <ul class="nav">
              <li class="active"><a href="index.php">Principal</a></li>
              <li><a href="mis_pedidos.php">Mis Pedidos</a></li>
            </ul>

            </li>
            <table width="200" border="2" align="right">
              <tr>
                <td bgcolor="#FFFFFF"><a href="#" target="_blank" class="dropdown-toggle" id="drop3" role="button" data-toggle="dropdown"><i class="icon-user"></i> Hola! <?php echo $_SESSION['username']; ?> <b class="caret"></b></td>
              </tr>
            </table>
          </div><!--/.nav-collapse -->
          </a>
        </div>
      </div>
    </div>

    <div class="container">

      <!-- Main hero unit for a primary marketing message or call to action -->
      <div class="hero-unit" align="center">
        <p><img src="file:///C|/Users/Secretaria/Desktop/Nueva carpeta/images/slogan-bg.jpg" class="img-polaroid"></p>
       
      </div>

      <!-- Example row of columns -->
      <div class="row">
     
      </div>
      <div align="center">
     
        <div class="row-fluid">
    <div class="span8">
<?php
                $pa
=mysql_query("SELECT * FROM producto where estado='s'");
                while(
$row=mysql_fetch_array($pa)){
            
?>
                       
        <table class="table table-bordered">
            <tr><td>
                <div class="row-fluid">
                    <div class="span4">
                            <center><strong><?php echo $row['nombre']; ?></strong></center><br>
                            <img src="img/producto/<?php echo $row['codigo']; ?>.jpg" class="img-polaroid">
                        </div>
                        <div class="span4"><br><br><br><br>
                            <strong><?php echo $row['nota']; ?></strong><br><br>
                            <strong>Valor: </strong>$ <?php echo number_format($row['valor'],2,",","."); ?>
                        </div>
                        <div class="span4"><br><br><br><br><br>
                        <form name="form<?php $row['codigo']; ?>" method="post" action="">
                            <input type="hidden" name="codigo" value="<?php echo $row['codigo']; ?>">
                                <button type="submit" name="boton" class="btn btn-primary">
                                    <i class="icon-shopping-cart"></i> <strong>Agregar al Carrito</strong>
                                </button>
                            </form>
                        </div>
                    </div>
            </td></tr>
        </table>
        <?php ?>
        </div>
            <div class="span4">
                <?php
if(!empty($_POST['codigo'])){
$codigo=$_POST['codigo'];
$pa=mysql_query("SELECT codigo, cantidad FROM carrito WHERE ced = '" $_SESSION["ced"] . "'");
if($row=mysql_fetch_array($pa)){
$new_cant=$row['cantidad']+1;
mysql_query("UPDATE carrito SET cantidad =  '" $cantidad "' WHERE ced = '" $_SESSION["ced"] . "' AND codigo =  '" $codigo "'");
}else{
mysql_query("INSERT INTO carrito (codigo, cantidad, ced) VALUES('" $codigo "', '" $cantidad "', '" $_SESSION["ced"] . "'");
}
}
?>

               <div id="sidebar"><br><br><br>
                <h2 align="center">Mis Pedidos</h2>
                <table class="table table-bordered">
                      <tr>
                        <td height="153">
                        <table class="table table-bordered table table-hover">
                            <?php 
$neto=0;$tneto=0;
$pa=mysql_query("SELECT * FROM carrito");
while($row=mysql_fetch_array($pa)){
$oProducto=new Consultar_Producto($row['codigo']);
$neto=$oProducto->consultar('valor')*$row['cantidad'];
$tneto=$tneto+$neto;

?>

                              <tr style="font-size:9px">
                                <td><?php echo $oProducto->consultar('nombre'); ?></td>
                                <td><?php echo $row['cantidad']; ?></td>
                                <td>$ <?php echo number_format($neto,2,",","."); ?></td>
                                <td>
                                <a href="index.php?del=<?php echo $row['codigo']; ?>" title="Eliminar de la Lista">
                                <i class="icon-remove"></i>
                                    </a>
                                </td>
                              </tr>
                            <?php }
?>

                            <td colspan="4" style="font-size:9px"><div align="right">$<?php echo number_format($tneto,2,",","."); ?></div></td>
                            <?php 
$pa=mysql_query("SELECT * FROM carrito");
if(!$row=mysql_fetch_array($pa)){
?>

                              <tr><div class="alert alert-success" align="center"><strong>No hay Productos Registrados</strong></div></tr>
  <?php ?>
                            </table></td>
                      </tr>
                    </table>
                </div>
            </div>
    </div>
       
      </div>

      <hr>

      <footer>
        <p>&copy; Venezuela Computer 2014</p>
        <p>&nbsp;</p>
       
      </footer>

    </div> <!-- /container -->

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="js/jquery.js"></script>
    <script src="js/bootstrap-transition.js"></script>
    <script src="js/bootstrap-alert.js"></script>
    <script src="js/bootstrap-modal.js"></script>
    <script src="js/bootstrap-dropdown.js"></script>
    <script src="js/bootstrap-scrollspy.js"></script>
    <script src="js/bootstrap-tab.js"></script>
    <script src="js/bootstrap-tooltip.js"></script>
    <script src="js/bootstrap-popover.js"></script>
    <script src="js/bootstrap-button.js"></script>
    <script src="js/bootstrap-collapse.js"></script>
    <script src="js/bootstrap-carousel.js"></script>
    <script src="js/bootstrap-typeahead.js"></script>
    <script>
$(function() {
            var offset = $("#sidebar").offset();
            var topPadding = 15;
            $(window).scroll(function() {
                if ($("#sidebar").height() < $(window).height() && $(window).scrollTop() > offset.top) { /* LINEA MODIFICADA POR ALEX PARA NO ANIMAR SI EL SIDEBAR ES MAYOR AL TAMAÑO DE PANTALLA */
                    $("#sidebar").stop().animate({
                        marginTop: $(window).scrollTop() - offset.top + topPadding
                    });
                } else {
                    $("#sidebar").stop().animate({
                        marginTop: 0
                    });
                };
            });
        });
</script>

  </body>
</html>


Notice: Undefined index: ced in C:\xampp\htdocs\1carrito\index.php on line 125

Notice: Undefined variable: cantidad in C:\xampp\htdocs\1carrito\index.php on line 130

Notice: Undefined index: ced in C:\xampp\htdocs\1carrito\index.php on line 130
NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA

MinusFour

Cita de: MinusFour en 11 Julio 2014, 19:26 PM
Tienes esto en tu archivo index1.php

Código (php) [Seleccionar]
if($dato=mysql_fetch_array($can)){
$_SESSION['username']=$dato['usu'];
$_SESSION['tipo_usu']=$dato['tipo'];
if($_SESSION['tipo_usu']=='a' or $_SESSION['tipo_usu']=='ca'){
header('location:index.php');
}


Puedes guardar el CED del usuario así:

Código (php) [Seleccionar]

$_SESSION["ced"] = $dato["ced"]


No hay $_SESSION["ced"] porque no lo definiste en tu login o porque no estás logueado.

::: Devil :::

si mi pana aqui lo ingrese observa

Código (php) [Seleccionar]
<?php
session_start();
include('php_conexion.php'); 
$act="0";
?>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Entrar</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <!-- Le styles -->
    <link href="css/bootstrap.css" rel="stylesheet">
    <style type="text/css">
      body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #f5f5f5;
background-image: url(img/fondoP.png);
      }

      .form-signin {
        max-width: 300px;
        padding: 19px 29px 29px;
        margin: 0 auto 20px;
        background-color: #fff;
        border: 1px solid #e5e5e5;
        -webkit-border-radius: 5px;
           -moz-border-radius: 5px;
                border-radius: 5px;
        -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
           -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
                box-shadow: 0 1px 2px rgba(0,0,0,.05);
      }
      .form-signin .form-signin-heading,
      .form-signin .checkbox {
        margin-bottom: 10px;
      }
      .form-signin input[type="text"],
      .form-signin input[type="password"] {
        font-size: 16px;
        height: auto;
        margin-bottom: 15px;
        padding: 7px 9px;
      }

    </style>
    <link href="css/bootstrap-responsive.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="../assets/js/html5shiv.js"></script>
    <![endif]-->

    <!-- Fav and touch icons -->
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="ico/apple-touch-icon-114-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="ico/apple-touch-icon-72-precomposed.png">
    <link rel="apple-touch-icon-precomposed" href="ico/apple-touch-icon-57-precomposed.png">
    <link rel="shortcut icon" href="ico/favicon.png">
  </head>

  <body>

    <div class="container">
      <form name="form1" method="post" action="" class="form-signin">
        <h2 class="form-signin-heading">
          <?php
$act="1";
if(!empty($_POST['usuario']) and !empty($_POST['contra'])){
$usuario=trim($_POST['usuario']);
$contra=trim($_POST['contra']);
$can=mysql_query("SELECT * FROM usuarios WHERE (usu='".$usuario."' or ced='".$usuario."') and con='".$contra."'");
if($dato=mysql_fetch_array($can)){
$_SESSION['username']=$dato['usu'];
$_SESSION['tipo_usu']=$dato['tipo'];
$_SESSION["ced"] = $dato["ced"];
if($_SESSION['tipo_usu']=='a' or $_SESSION['tipo_usu']=='ca'){
header('location:index.php');
}
}else{
if($act=="1"){echo '<div class="alert alert-error" align="center">Usuario y Contraseña Incorrecta</div>';}else{$act="0";}
}
}else{

}
?>

        Bienvenid@s</h2>
        <input type="text" name="usuario" class="input-block-level" placeholder="Usuario">
        <input type="password" name="contra" class="input-block-level" placeholder="Contraseña">
        <button class="btn btn-large btn-primary" type="submit">Iniciar</button>
        <p>&nbsp;</p>
      </form>
    </div> <!-- /container -->

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="js\jquery.js"></script>
    <script src="js\bootstrap-transition.js"></script>
    <script src="js\bootstrap-alert.js"></script>
    <script src="js\bootstrap-modal.js"></script>
    <script src="js\bootstrap-dropdown.js"></script>
    <script src="js\bootstrap-scrollspy.js"></script>
    <script src="js\bootstrap-tab.js"></script>
    <script src="js\bootstrap-tooltip.js"></script>
    <script src="js\bootstrap-popover.js"></script>
    <script src="js\bootstrap-button.js"></script>
    <script src="js\bootstrap-collapse.js"></script>
    <script src="js\bootstrap-carousel.js"></script>
    <script src="js\bootstrap-typeahead.js"></script>

  </body>
</html>
NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA

MinusFour

¿Y te has logueado nuevamente no? Ese pedazo de código necesita ejecutarse para que $_SESSION["ced"] exista y que tenga el valor del ced del usuario.

El error:


Notice: Undefined variable: cantidad in C:\xampp\htdocs\1carrito\index.php on line 130


Es porque simplemente no existe la variable cantidad. Necesitas definirla para decir cuanto del producto vas a ingresar.

::: Devil :::

#37
declarar la variable cantidad pero ella esta declarada en index.php

y si ya estoy logueado cerre sesion y volvi a iniciarla y me sigue provocando ese mismo error
NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA

MinusFour

Cita de: ::: Devil ::: en 15 Julio 2014, 20:09 PM
declarar la variable cantidad pero ella esta declarada en index.php

No tienes una variable cantidad declarada, tienes una variable $new_cant, que solo está aplicando para cuando agregan el mismo producto a la base de datos.

Si estás agregando solo uno del producto necesitas cambiar:

Código (php) [Seleccionar]

mysql_query("INSERT INTO carrito (codigo, cantidad, ced) VALUES('" . $codigo . "', '" . $cantidad . "', '" . $_SESSION["ced"] . "'");


por

Código (php) [Seleccionar]

mysql_query("INSERT INTO carrito (codigo, cantidad, ced) VALUES('" . $codigo . "', '1', '" . $_SESSION["ced"] . "'");


Y como dije, tienes una variable new_cant o le cambias el nombre a $cantidad o en la query abajo de está le pones $new_cant en lugar de $cantidad.

::: Devil :::

#39
ok ya se resolvio eso porque solo me sale este error

Notice: Undefined index: ced in C:\xampp\htdocs\1carrito\index.php on line 130

Notice: Undefined index: ced in C:\xampp\htdocs\1carrito\index.php on line 135

esto tendria que declararlo aqui

Código (php) [Seleccionar]
<?php ?>
        </div>
           <div class="span4">
               <?php
if(!empty($_POST['codigo'])){
$codigo=$_POST['codigo'];
                                        
$ced=$_POST['ced']; >-asi lo declaro aqui-<
$pa=mysql_query("SELECT codigo, cantidad FROM carrito WHERE ced = '" $_SESSION["ced"] . "'");
if($row=mysql_fetch_array($pa)){
$new_cant=$row['cantidad']+1;
mysql_query("UPDATE carrito SET cantidad =  '" $new_cant "' WHERE ced = '" $_SESSION["ced"] . "' AND codigo =  '" $codigo "'");
}else{
mysql_query("INSERT INTO carrito (codigo, cantidad, ced) VALUES('" $codigo "', '1', '" $_SESSION["ced"] . "'");
}
}
?>
NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA