PHP - Insert Indices Varios PHP

 
Vista:
sin imagen de perfil
Val: 31
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por Augusto (11 intervenciones) el 23/10/2020 03:39:19
Hola a todos tengo un consulta/duda sobre el siguiente problema
intento realizar un insert en una tabla su indice es Auto-Increment como clave foranea recibe
el indice de otras 2 tablas el id del usuario ,y el id mercaderia .
teniendo todos los datos al momento de concretar el insert sucede que no lo realiza me gustaria
saber si es por los indices multiple en el insert o hay alguna función para estos casos ?
debajo dejare las capturas junto con el codigo.

Capturas
seleccion

lo que se muestra es la seleccion del producto mas el usuario y el total de la selección
llegoparaconsulta

la siguiente captura es la tabla a la cual se intenta realizar el insert
tablacarrito


codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
include 'index.php';
if(isset($_POST['agregar'])){
 
    $id=array($_POST['id']);
    $cantselec=(int)$_POST['cantselec'];
    $users=$_POST['users'];
 
//se declara vacio porque se piensa utilizar mas adelante
    $_SESSION['Carrito'];
 
 if(empty($id) && empty($cantselec) && empty($users) ){echo"vacio";}else{
     if(!isset($_SESSION['Carrito'])){    //existe pero aún vacio
 
    $Prod="SELECT * FROM mercaderias WHERE numMercaderia='$id[0]'";
    if($r=$con->query($Prod)) {
        if ($f= mysqli_fetch_assoc($r)){
            (int)$f['numMercaderia'];
            (int)$f['precio'];
            (int)$f['cantidad'];
            $f['caducidad'];
            $f['imagen'];
 
 
 
 
            $usuario="SELECT * FROM usuarios WHERE correo='$users'";
            if($r=$con->query($usuario)) {
                if ($u= mysqli_fetch_assoc($r)){
                    $u['numUsuarios'];
                    $u['correo'];
 
             $monto=$f['precio']*$cantselec;
             $numMerc=(int)$f['numMercaderia'];
             $usuario=(int)$u['numUsuarios'];
             $correo=$u['correo'];
 
             echo " user ";
            var_dump($usuario);
            echo " correo ";
            var_dump($u['correo']);
            echo " id mercaderia ";
            var_dump($numMerc);
            echo " total pagar ";
            var_dump($monto);
            echo" cantselec ".$cantselec." fin ";
 
            $crearCarrito="INSERT INTO `carritos` (`numCarritos`,
             `Usuarios_numUsuarios`, `Usuarios_correo`,
              `Mercaderias_numMercaderia`, `CantU`, `total`) VALUES
            (NULL,'$usuario','$correo','$numMerc','$cantselec','$monto')";
 
     echo"llego";
                }}
        }}}}
 
}

a modo de ejercicio propio me planteo lo siguiente

la idea de realizar estos insert es hacer update a la hora que realize cambios, el usuario
en su carrito para saber cuantas veces elimino o agrego el mismo producto

desde ya muchisimas gracias todo consejo
es bienvenido
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Luis
Val: 129
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por Luis (31 intervenciones) el 23/10/2020 09:22:59
Hola, no pongas el campo que es AUTO_INCREMENT es decir;

1
2
3
$crearCarrito="INSERT INTO `carritos` ( `Usuarios_numUsuarios`, `Usuarios_correo`,
              `Mercaderias_numMercaderia`, `CantU`, `total`) VALUES
            ('$usuario','$correo','$numMerc','$cantselec','$monto')";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por Augusto (11 intervenciones) el 27/10/2020 16:30:53
gracias por responder con respecto al problema en cuestion ,
lo hice modifique la consulta como describes pero sin cambios no realiza el insert tampoco envia algún error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.865
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por javier (493 intervenciones) el 27/10/2020 16:36:55
no insertesd valor NULL en el campo auto increment inserta un valor vacio ""

tu mismo en tu tabla pones que el campo autoincrement no sea NULL y le insertas NULL.....

y si no te salen los errores es por que no los tendras activados

has de colocar error_reporting(E_ALL);

a demas de que no compruebas si la insercion fué bien o no.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por Augusto (11 intervenciones) el 27/10/2020 16:59:30
Hola honestamente cuando lei tu respuesta:
tu mismo en tu tabla pones que el campo autoincrement no sea NULL y le insertas NULL.
me sentí como una foca jajaja

realicé los cambios que mencionas pero no muestra ningún error tampoco realiza el insert.

error_reporting(E_ALL);

1
2
3
4
5
6
7
$crearCarrito="INSERT INTO `carritos` (`numCarritos`,
             `Usuarios_numUsuarios`, `Usuarios_correo`,
              `Mercaderias_numMercaderia`, `CantU`, `total`) VALUES
            ('','$usuario','$correo','$numMerc','$cantselec','$monto')";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.865
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por javier (493 intervenciones) el 27/10/2020 17:00:56
Muestra al código completo de cómo haces el insert
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por Augusto (11 intervenciones) el 27/10/2020 17:10:58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
 
include 'index.php';
error_reporting(E_ALL);
 
if(isset($_POST['agregar'])){
 
 
 
    $id=array($_POST['id']);
 
    $cantselec=(int)$_POST['cantselec'];
 
    $users=$_POST['users'];
 
 
 
//se declara vacio porque se piensa utilizar mas adelante
 
    $_SESSION['Carrito'];
 
 
 
 if(empty($id) && empty($cantselec) && empty($users) ){echo"vacio";}else{
 
     if(!isset($_SESSION['Carrito'])){    //existe pero aún vacio
 
 
 
    $Prod="SELECT * FROM mercaderias WHERE numMercaderia='$id[0]'";
 
    if($r=$con->query($Prod)) {
 
        if ($f= mysqli_fetch_assoc($r)){
 
            (int)$f['numMercaderia'];
 
            (int)$f['precio'];
 
            (int)$f['cantidad'];
 
            $f['caducidad'];
 
            $f['imagen'];
 
 
 
 
 
 
 
 
 
            $usuario="SELECT * FROM usuarios WHERE correo='$users'";
 
            if($r=$con->query($usuario)) {
 
                if ($u= mysqli_fetch_assoc($r)){
 
                    $u['numUsuarios'];
 
                    $u['correo'];
 
 
 
             $monto=$f['precio']*$cantselec;
 
             $numMerc=(int)$f['numMercaderia'];
 
             $usuario=(int)$u['numUsuarios'];
 
             $correo=$u['correo'];
 
 
 
             echo " user ";
 
            var_dump($usuario);
 
            echo " correo ";
 
            var_dump($u['correo']);
 
            echo " id mercaderia ";
 
            var_dump($numMerc);
 
            echo " total pagar ";
 
            var_dump($monto);
 
            echo" cantselec ".$cantselec." fin ";
 
 
 
            $crearCarrito="INSERT INTO `carritos` (`numCarritos`,
             `Usuarios_numUsuarios`, `Usuarios_correo`,
              `Mercaderias_numMercaderia`, `CantU`, `total`) VALUES
            ('','$usuario','$correo','$numMerc','$cantselec','$monto')";
 
 
 
     echo"llego";
 
                }}
 
        }}}}
 
 
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.865
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por javier (493 intervenciones) el 27/10/2020 17:19:52
no estas haciendo ningun insert al final del codigo, solo declaras la query

1
2
3
4
$crearCarrito="INSERT INTO `carritos` (`numCarritos`,
             `Usuarios_numUsuarios`, `Usuarios_correo`,
              `Mercaderias_numMercaderia`, `CantU`, `total`) VALUES
            ('','$usuario','$correo','$numMerc','$cantselec','$monto')";

te falta algo como:

1
$r=$con->query($crearCarrito))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.865
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por javier (493 intervenciones) el 27/10/2020 17:23:33
y para comprobar si fué bien o no has de hacer algo como:

1
2
3
4
5
if ($r){
echo 'bien';
}else{
echo 'mal';
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por Augusto (11 intervenciones) el 27/10/2020 17:38:57
1
2
3
4
5
6
7
8
9
if ($r=$con->query($crearCarrito)){
 
echo "Insert Correcto";
 
}else{
 
echo "Insert :"  .$con->errno. " : ".$con->error;
 
}

devuelve Insert Correcto

se que se envia correctamente la cuestión es porque no hay errores
no se si el problema son diferentes indices en un mismo insert.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.865
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por javier (493 intervenciones) el 28/10/2020 07:40:23
No, en principio, mientras haya solo un campo autoincrement no hay problema.
Muestra el codigo de la conexion a la BBDD.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por Augusto (11 intervenciones) el 28/10/2020 13:32:31
Hola de nuevo javier si las otras tablas del ejercicio de las cuales obtengo los demas valores son auto_increment
como `Usuarios_numUsuarios`, `Mercaderias_numMercaderia`,
pero el valor Usuarios_numUsuarios obtengo por el correo y Mercaderias_numMercaderia obtengo por el nombre
del producto para el abm del producto en cuestión funciona correctamente por eso descarto la conexión a la bdd
se que llegan correctamente de la bdd porque los imprimo con un Var_dump(); los valores para el alta del carrito
unicamente esta consulta no realiza el insert al agregar al carrito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.865
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por javier (493 intervenciones) el 28/10/2020 16:21:46
Te dije la conexión, no por que falle, si no para ver como conectas y si usas mysqli capturar el posible error.
Si no lo enseñas no puedo hacer más.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por Augusto (11 intervenciones) el 28/10/2020 18:39:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
$h="";
$u="";
$p="";
$db="";
 
//Realizar conexion
$con=mysqli_connect($h,$u,$p,$db);
 
//Comprobar conexión
if(mysqli_connect_errno())
{
    echo  "Error de conexión "  .mysqli_connect_errno(). " : " .mysqli_connect_error();
}
else
{
  //  echo "Conectado a base de datos ".$db;
    echo "<br>";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.865
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por javier (493 intervenciones) el 28/10/2020 19:11:57
conectas a mysqli por procedimientos y luego las consultas la haces orientadas a objetos?
no lo entiendo.

segun tu codigo de conexion prueba asi a ver si te lanza error (y coloca error_reporting(E_ALL); al principio del script)

1
2
3
4
5
6
7
8
9
10
11
12
13
$query = "INSERT INTO `carritos` (`numCarritos`,
`Usuarios_numUsuarios`, `Usuarios_correo`,
 `Mercaderias_numMercaderia`, `CantU`, `total`) VALUES
('','$usuario','$correo','$numMerc','$cantselec','$monto')";
 
if (!$resultado = mysqli_query($con, $query)) {
 
  printf("Error: %s\n", mysqli_error($con));
 
  mysqli_free_result($resultado);
}
 
mysqli_close($con);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insert Indices Varios PHP

Publicado por Augusto (11 intervenciones) el 29/10/2020 19:01:08
hola te comento que el error efectivamente es de sql
es por num_usuarios queria almacenar tanto id como correo
solo permite una referencia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar