Bonjour à tous, désolé pour le dérangement. Je cherche depuis un bout de temps comment envoyer les informations de mon panier vers ma base de donnée puisque je travaille sur un petit projet, jusqu'à présent je n'ai pas reçue d'information qui puisse m'aider malgrés mes recherches. C'est pour cela que je me tourne vers vous.

Ps: Je suis débutant et c'est la première fois que je poste sur ce site.



                    if(!empty($_POST['prenom']) || !empty($_POST['nom']) || !empty($_POST['ville']) || !empty($_POST['pays']) || !empty($_POST['arrondissement'])
                || !empty($_POST['reference']) || !empty($_POST['quartier']) || !empty($_POST['numero'])){

                }

                    $prenom = htmlspecialchars($_POST['prenom']);
                    $nom = htmlspecialchars($_POST['nom']);
                    $ville = htmlspecialchars($_POST['ville']);
                    $pays = htmlspecialchars($_POST['pays']);
                    $arrondissement = htmlspecialchars($_POST['arrondissement']);
                    $reference = htmlspecialchars($_POST['reference']);
                    $quartier = htmlspecialchars($_POST['quartier']);
                    $numero = htmlspecialchars($_POST['numero']);

                    $check = [
                        'prenom' => $prenom,
                        'nom' => $nom,
                        'ville' => $ville,
                        'pays' => $pays,
                        'arrondissement' => $arrondissement,
                        'reference' => $reference,
                        'quartier' => $quartier,
                        'numero' => $numero];

                    $sql = 'INSERT INTO users (prenom, nom, ville, pays, arrondissement, reference, quartier, numero)
                                VALUES (:prenom, :nom, :ville, :pays, :arrondissement, :reference, :quartier, :numero)';
                    $req = $this->DB->query($sql, $check);
                    return $req;

        }

        public function recup(){

        /*$quantity =0;
        $total = 0;

                $check = [
                    'quantity' => $quantity,
                    'total' => $total];

                $sql = 'INSERT INTO users ()
                            VALUES ()';
                $req = $this->DB->query($sql, $check);
                return $req;
        }*/

            $quantity=$_GET['quantity'];
            $ids=$_GET['ids'];
            $pdd=$_SESSION['ids'];   
            $value=array_combine($pdd,$quantity);

                foreach($value as $quantity=> $ids){

                    $sql="insert into client(id_product,productId,quantite) values('".$_SESSION['ids']."','$quantity','$val34')";

        }

        /*$qts = 0;
        $ids = array_keys($_SESSION['panier']);
        if(empty($ids)){
        $paccueil = array();
        }else{
            $paccueil = $this->DB->query('INSERT INTO users FROM paccueil WHERE id IN ('.implode(',',$ids).')');
        }
        foreach( $paccueil as $paccueil ){
            $qts = $paccueil->prix * $_SESSION['panier'][$paccueil->id];
        }
        return $qts;*/

    }```

6 réponses


SiProdZz
Réponse acceptée

Bonjour,
N'hésite pas à poster le code erreur que tu reçois.

Dans tous les cas je pense que tu devrais refaire ton code étape par étape.
Pour information '$_POST' sont des informations récupérés via la soumission d'un formulaire.

<?php // Ou est la balise php ?
// 1 - Si un de mes champs sont vide
if( !empty($_POST['prenom']) || 
    !empty($_POST['nom']) || 
    !empty($_POST['ville']) || 
    !empty($_POST['pays']) || 
    !empty($_POST['arrondissement']) || 
    !empty($_POST['reference']) || 
    !empty($_POST['quartier']) || 
    !empty($_POST['numero'])
){
 // Actuellement je ne fais rien
}

// 2- Du coup je définis des variables mais je ne fais aucune vérification.

    $prenom = htmlspecialchars($_POST['prenom']);
    $nom = htmlspecialchars($_POST['nom']);
    $ville = htmlspecialchars($_POST['ville']);
    $pays = htmlspecialchars($_POST['pays']);
    $arrondissement = htmlspecialchars($_POST['arrondissement']);
    $reference = htmlspecialchars($_POST['reference']);
    $quartier = htmlspecialchars($_POST['quartier']);
    $numero = htmlspecialchars($_POST['numero']);

 // 3 - Tu n'utilises plus tes variables par la suite tu n'a donc pas forcément besoin de déclaré des variables même si c'est une bonne approche.   
    $check = [
        // exemple :  'prenom' = htmlspecialchars($_POST['prenom']);
        'prenom' => $prenom,
        'nom' => $nom,
        'ville' => $ville,
        'pays' => $pays,
        'arrondissement' => $arrondissement,
        'reference' => $reference,
        'quartier' => $quartier,
        'numero' => $numero
    ];

    $sql = 'INSERT INTO users (prenom, nom, ville, pays, arrondissement, reference, quartier, numero)
                VALUES (:prenom, :nom, :ville, :pays, :arrondissement, :reference, :quartier, :numero)';
    $req = $this->DB->query($sql, $check);
    return $req; // Il y a un return, le code s'arrête donc forcément ici.

    } // Il n'y a pas de balise ouvrante, tu devrais avoir une erreur.

    // Tout le reste n'est pas utilisé. vu qu'il y a plus haut un return non utilisé.

Bonjour,
Ça fonctionne déjà, mais je n’arrive pas à récupérer les informations du panier comme, l’id, la quantité et le prix total pour les stocker dans la base de donnée.

Bonjour, c'est normal.
Tu as créer une méthode "recup()". Mais tu ne l'appels jamais dans ton code.
Il faut faire ainsi.

public function recup(){
// mon code
}

$this->recup(); // J'appel ma méthode pour qu'elle fasse ce qu'il y a à l'intérieur.

Sachant que l'id et le panier sont des informations que tu retrouves dans l'url vu que tu les appels via "GET"
tu devrais donc avoir un truc du style " http.google.fr?id=5&panier=35"

Comment faire ? Je suis perdu

Ne t'inquiète pas c'est normal ^^

Dans un premier temps je te conseille d'utiliser les dump($variable) et exit;
Dit mois ce que tu veux récupérer dans un premier temps avec le message d'erreur que tu reçois.

Là tu veux récupérer les informations suivantes :

$quantity=$_GET['quantity'];
$ids=$_GET['ids'];

1 /- "ids" et "quantity" sont-ils bien présent dans ton url ?
2/ - Appel tu bien ta méthod recup ?

N'hésite pas si il y a des points qui bloque

Salut, j’ai mis la quantité et le prix dans l’url