Bonjour,

Voilà, moi j'vois pas de problême, mais y en a !!!!!

Ce que je fais

     $ar['perm1'] = 'permission_fournisseur';
    $perm = permissions('permission_fournisseur');
    $ar['perm']=$perm;
    if(strpos($perm,'ucd') === FALSE ){
        var_dump($result);
        echo "--".$result["condition_payement"]."--";
        unset($result["condition_payement"]); // <----------- ligne 9
        unset($result["condition"]);
    }
    if(strpos($perm,'w') === FALSE){
        $ar['msgerr']='Modification interdite';
        echo json_encode($ar);
        exit();
    }
    if($oper == 'del'){
        if(strpos($perm,'d') === FALSE ){
            $ar['msgerr']='supression interdite';
            echo json_encode($ar);
            exit();
        }   
    }

Ce que je veux

je veux virer l'element du tableau, j'le fais partout dans mon app, mais là, ça veut pas :D

Ce que j'obtiens

Voilà ce que j'ai dans la console :

var_dump($result);

array(42) {
["raison_sociale"]=>
string(15) "ADAM MONTMARTRE"
["adresse"]=>
string(17) "96 rue Damrémont"
["complement_adresse"]=>
string(0) ""
["adresse_autre"]=>
string(0) ""
["code_postal"]=>
string(5) "75018"
["ville"]=>
string(5) "PARIS"
["pays"]=>
string(0) ""
["telephone"]=>
string(14) "01.46.06.60.38"
["fax"]=>
string(14) "01.42.59.06.83"
["email_contact"]=>
string(25) "adam.montmartre@orange.fr"
["poste"]=>
string(11) "ACCESSOIRES"
["site_internet"]=>
string(0) ""
["commentaires"]=>
string(29) "fourniture de bureau d' etude"
["aa_raison_sociale"]=>
string(0) ""
["aa_adresse"]=>
string(0) ""
["aa_compl_adresse"]=>
string(0) ""
["aa_adr3"]=>
string(0) ""
["aa_code_postal"]=>
string(0) ""
["aa_ville"]=>
string(0) ""
["aa_pays"]=>
string(0) ""
["aa_tel"]=>
string(0) ""
["aa_contact"]=>
string(0) ""
["aa_email"]=>
string(0) ""
["aa_iban"]=>
string(0) ""
["aa_bic"]=>
string(0) ""
["aa_banque"]=>
string(0) ""
["aa_commentaire"]=>
string(0) ""
["code_comptable"]=>
string(8) "401ADAM "
["condition_payement"]=>
string(135) "30% d'acompte par chèque à réception de facture+++ <----- il est bient là
70% de solde par chèque à 60 jours date de réception de facture le 15 ou le 30"
["ordre_pour_cheque"]=>
string(0) ""
["compte_achat"]=>
string(7) "611ACCE"
["siret"]=>
string(0) ""
["attestation_frs"]=>
string(0) ""
["actif"]=>
string(1) "0"
["labelise"]=>
string(1) "0"
["black_liste"]=>
string(1) "0"
["num_tva"]=>
string(0) ""
["iban"]=>
string(0) ""
["bic"]=>
string(0) ""
["banque_fr"]=>
string(0) ""
["autre_adr_reglmt"]=>
string(1) "0"
["neutraliser"]=>
string(1) "0"
}

echo "--".$result['condition_payement']."----";

--30% d'acompte par chèque à réception de facture+++
70% de solde par chèque à 60 jours date de réception de facture le 15 ou le 30--<br />

unset($result["condition_payement"]);

<b>Notice</b>: Undefined index: condition_payement in <b>/var/www/html/profil/prostandv2/fournisseurs_bu.php</b> on line <b>4</b><br />

le rest est normal :D

{"perm1":"permission_fournisseur","perm":"rwd","pretraitement":"ok","info":"fichier include trouv\u00e9","rowsaffected":0,"msgerr":"","path":"\/var\/www\/html\/profil\/prostandv2\/","sql":"UPDATE fournisseurs SET raison_sociale = 'ADAM MONTMARTRE', adresse = '96 rue Damr\u00e9mont', complement_adresse = NULL, adresse_autre = NULL, code_postal = '75018', ville = 'PARIS', pays = NULL, telephone = '01.46.06.60.38', fax = '01.42.59.06.83', email_contact = 'adam.montmartre@orange.fr', poste = 'ACCESSOIRES', site_internet = NULL, commentaires = 'fourniture de bureau d\' etude', aa_raison_sociale = NULL, aa_adresse = NULL, aa_compl_adresse = NULL, aa_adr3 = NULL, aa_code_postal = NULL, aa_ville = NULL, aa_pays = NULL, aa_tel = NULL, aa_contact = NULL, aa_email = NULL, aa_iban = NULL, aa_bic = NULL, aa_banque = NULL, aa_commentaire = NULL, code_comptable = '401ADAM ', ordre_pour_cheque = NULL, compte_achat = '611ACCE', siret = NULL, attestation_frs = NULL, actif = '0', labelise = '0', black_liste = '0', num_tva = NULL, iban = NULL, bic = NULL, banque_fr = NULL, autre_adr_reglmt = '0', neutraliser = '0', condition_payement = '30% d\'acompte par ch\u00e8que \u00e0 r\u00e9ception de facture\n70% de solde par ch\u00e8que \u00e0 60 jours date de r\u00e9ception de facture le 15 ou le 30' WHERE id = 1","id":"1"}

l'élément 'condition_payement' est bien dans le tableau puisque'il est affiché dans le var_dump.

Je peux le manipuler puisque l'echo me donne bien l'information.

mais quand je fais l'unset, il me dit que l'élément n'extiste pas.

Ma version de php : 7.0.18

Merci pour vos réponses ;)
Pierre

5 réponses


Lartak
Réponse acceptée

Ok.
Mais dans ce cas là, il y a une chose que je ne comprends pas, car d'après tes commentaires, tu indiques que le unset est à la ligne 9 alors que l'erreur indique la ligne 4, étant donné que la ligne 4 se réfère à $perm = permissions('permission_fournisseur'); tu devrais regarder dans la fonction permissions.
Autre chose aussi, je ne vois pas le rapport entre le var_dump et les json_encode étant donné que les deux ne font référence a la même variable :

  • var_dump » $result
  • json_encode » $ar
Pierrot01
Auteur
Réponse acceptée

@Lartak ,
Salut,
Les var_dump, c'est pour le débuguage ;)
Merci pour ton intervention.
Plus loin, dans un autre fichier, j'avais ça :

            if($result['condition_payement']==''){
                $rowsoc = $connexion->query("SELECT * FROM societe WHERE id=1")->fetchAll(PDO::FETCH_ASSOC);
                $result['condition_payement']=$rowsoc['cond_reglement_frns'];
            }

et si $result['condition_payement'], j'avais évidement un problème ;)

alors, j'ai mis ça :

        if(isset($result['condition_payement'])){
            if($result['condition_payement']==''){
                $rowsoc = $connexion->query("SELECT * FROM societe WHERE id=1")->fetchAll(PDO::FETCH_ASSOC);
                $result['condition_payement']=$rowsoc['cond_reglement_frns'];
            }
        }   

Voilou, mon problème est réglé ;)
Merci

Pierre

Bonjour.
Je ne vois pas où est le problème, étant donné que tu fais le var_dump avant le unset de la clé __condition_payement__ elle existe puisque tu ne fais l'unset qu'après le var_dump et pour rappel unset:

unset — Détruit une variable

Il est donc tout à fait normal qu'après avoir utilisé unset sur la clé __condition_payement__ que celle-ci n'existe plus.

@Lartak,
C'est quand je fais le unset qu'il me dit que la clé n'existe pas

Pierre

Pourquoi ne pas remplacer :

if(isset($result['condition_payement'])){
    if($result['condition_payement']==''){

Par :

if(!empty($result['condition_payement'])){

Cela revient peut-être à la même chose, sauf que ça fait moins de ligne de code et moins de conditions.
Pour rappel :

empty — Détermine si une variable est vide
Détermine si une variable est considérée comme vide. Une variable est considérée comme vide si elle n'existe pas, ou si sa valeur équivaut à FALSE. La fonction empty() ne génère pas d'alerte si la variable n'existe pas.
Les valeurs ci-dessous sont considérés comme étant vide :

  • "" (une chaîne vide)
  • 0 (0 en tant qu'entier)
  • 0.0 (0 en tant que nombre à virgule flottante)
  • "0" (0 en tant que chaîne de caractères)
  • NULL
  • FALSE
  • array() (un tableau vide)