Probleme selecteur php

Fermé
lwdu76 Messages postés 68 Date d'inscription samedi 16 janvier 2021 Statut Membre Dernière intervention 8 novembre 2022 - 7 nov. 2022 à 09:27
lwdu76 Messages postés 68 Date d'inscription samedi 16 janvier 2021 Statut Membre Dernière intervention 8 novembre 2022 - 8 nov. 2022 à 09:14

Bonjour, 

Je n'arrive pas a récupérer l'identifiant de mon selecteur 
En faite je lie la table incomes avec la table incomes_categories

<?php

require_once('./inc/header.php');
require_once ('./functions.php');

$db = db_connect();

session_start();

/* Vérifie et récupère les données de la table revenu de l'utilisateur pour le mettre à jour */
if (isset($_POST['inc_id']) & isset($_POST['inc_amount']) & isset($_POST['inc_receipt_date']) & isset($_POST['inc_cat_id']) & isset($_POST['user_id'])){
    
    try {

        $inc_id = $_POST['inc_id'];
        $inc_amount = $_POST['inc_amount'];
        $inc_receipt_date = $_POST['inc_receipt_date'];
        $inc_cat_id = $_POST['inc_cat_id'];
        $user_id = $_POST['user_id'];
        
        $sth = $db->prepare("UPDATE `incomes` SET `inc_amount`=:inc_amount, `inc_receipt_date`=:inc_receipt_date, `inc_cat_id`=:inc_cat_id, `user_id`=:user WHERE `inc_id`=:inc_id");
        
        $sth->bindParam(':inc_id', $inc_id);
        $sth->bindParam(':inc_amount', $inc_amount);
        $sth->bindParam(':inc_receipt_date', $inc_receipt_date);
        $sth->bindParam(':inc_cat_id', $inc_cat_id);
        $sth->bindParam(':user', $user_id);
        
        $sth->execute();
       
        header('location: users.php');
    }
    
    catch (PDOException $e){
    
        print "Erreur !: " . $e->getMessage() . "<br/>";
    }
} else {

    echo "";
}

$users = get_incomes_categories ();

?>
/* Categorie de revenu d'un utilisateur : requête paramétrée et utilisation de la méthode prépare avec des paramètres nommés */
function get_incomes_categories() {

    $db = db_connect();

    $sql = <<<EOD
    SELECT 
        `inc_cat_name`
    FROM
        `incomes_categories`
    LIMIT 10
    EOD;

    $incomeCategoriesStmt = $db->query($sql);

    $incomeCategories = $incomeCategoriesStmt->fetchAll(PDO::FETCH_ASSOC);
    
    return $incomeCategories;
}
            <div class="form-group" >
                <label class="control-label col-sm-3" for="inc_cat_id"><a>inc_cat_id</a></label>
                <div class="col-sm-8 col-xs-12">
                    <select name="inc_cat_id" required="true" class="form-control">
                        <option value="inc_cat_id">Changer la catégorie du revenu</option>
                        
                        <?php foreach ($users as $user) : ?>

                        <option>
                            <?php echo $user['inc_cat_name']; ?>
                        </option>

                        <?php endforeach; ?>
                    </select>
                    <!-- <input type="number" placeholder="Changer la catégorie du revenu" name="inc_cat_id" required="true" class="form-control"></input></br> -->
                </div>
            </div> 

il me renvoit cette erreur 

A voir également:

5 réponses

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
7 nov. 2022 à 09:35

bonjour,

je suppose que l'erreur se produit à a ligne 21 de ton code.

comprends-tu le message d'erreur?

0

Il me dit qu'il ne comprend la valeur sélectionnée alors qu'il attend un int en valeur comme retour 

0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > Lwdu76
7 nov. 2022 à 17:50

C'est une colonne définie comme entier, et tu essaies d'y faire entrer "produit financier".
As-tu visualisé le contenu de $_POST?

0
Lwdu76 > yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
7 nov. 2022 à 19:30

Dans ma méthode post je dit qu'il doit mettre à jour ma table incomes 

0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > Lwdu76
7 nov. 2022 à 20:43

C'est une colonne définie comme entier, et tu essaies d'y faire entrer "produit financier".

Ma question était à propos de la variable, pas de la méthode.

0
Lwdu76 > yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
7 nov. 2022 à 20:51

Je n´y fais pas référence dans mes  $_POST 

Je ne fais pas de $_POST ['inc_cat_name'] du coup il faut que j´en fasse un ? 

0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
7 nov. 2022 à 21:19

J'ai l'impression que tu mélanges la communication avec le client (post) et le contenu de ta base de données.

As-tu écrit tout cela?  Cela fonctionnait-il avant?  Dans quel contexte fais-tu ce travail?  Es-tu formé pour ce travail?

0

Je suis étudiant c´est un td pour utiliser du pdo et je bloque sur le fait que je voudrais récupérer le nom de la catégorie dans mon selecteur et qu'il envoi l´id de celui ci et je ne vois pas trop comment faire

Je sais ce que fais la méthode post elle envoi les informations

Pour récupérer les données de ma table incomes_catégories j´ai créé une variable users qui appel une fonction get_incomes catégories

Est-ce que le problème viens de ma fonction get_incomes_categories ou je dois faire une jointure sur inc_cat_id ? 

J´ai écrit une fonction pour chaque table qui affiche leurs informations comme celle de incomes_categories mais avec des jointures sur le user_id

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
8 nov. 2022 à 08:33

Bonjour,

Ton souci vient de ta liste déroulante.

Tu n'y a mis que le "nom" de la catégorie .. mais pas l'id correspondant..

Il faut donc modifier ta liste comme ceci:

<select name="inc_cat_id" required="true" class="form-control">
    <option value="inc_cat_id">Changer la catégorie du revenu</option>    
    <?php foreach ($users as $user) : ?>
    <option value="<?php echo $user['inc_cat_id']; ?>" ><?php echo $user['inc_cat_name']; ?> </option>
    <?php endforeach; ?>
</select>

0
lwdu76 Messages postés 68 Date d'inscription samedi 16 janvier 2021 Statut Membre Dernière intervention 8 novembre 2022
Modifié le 8 nov. 2022 à 08:37

merci on peut faire comme ci dans un value parce que j'avais fait un value="inc_cat_id" mais ça n'avais pas marché 

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > lwdu76 Messages postés 68 Date d'inscription samedi 16 janvier 2021 Statut Membre Dernière intervention 8 novembre 2022
8 nov. 2022 à 08:38

comme ça

<option value="<?php echo $user['inc_cat_id']; ?>" >
0
lwdu76 Messages postés 68 Date d'inscription samedi 16 janvier 2021 Statut Membre Dernière intervention 8 novembre 2022 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
8 nov. 2022 à 08:51

il me renvoit ceci

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > lwdu76 Messages postés 68 Date d'inscription samedi 16 janvier 2021 Statut Membre Dernière intervention 8 novembre 2022
8 nov. 2022 à 09:04

Faudrait peut-être ( c'est même sûr.....) que ta requête SQL retourne toutes les données necessaires !

Pour l'instant tu n'as que :

    SELECT 
        `inc_cat_name`
    FROM
        `incomes_categories`
    LIMIT 10

faut donc y ajouter aussi l' ID de la catégorie

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lwdu76 Messages postés 68 Date d'inscription samedi 16 janvier 2021 Statut Membre Dernière intervention 8 novembre 2022
8 nov. 2022 à 09:14

merci je n'avais pas vu que l'avais pas marqué 

0