Trying to access array offset on value of type bool in [Résolu]

Signaler
Messages postés
13
Date d'inscription
dimanche 8 juillet 2018
Statut
Membre
Dernière intervention
4 janvier 2021
-
Messages postés
13
Date d'inscription
dimanche 8 juillet 2018
Statut
Membre
Dernière intervention
4 janvier 2021
-
Bonjour,

Je suis en galère depuis quelques heures avec une fonction qui marché jusqu'à maintenant,
Merci d'avance

le code en question :
  if(!function_exists('relation_link_to_display')){
   function relation_link_to_display($id){
    global $db;

    $q = $db->prepare('SELECT user_id1, user_id2, status FROM friends_relationships
     WHERE (user_id1 = :user_id1 AND user_id2 = :user_id2)
     OR (user_id1 = :user_id2 AND user_id2 = :user_id1)');

    $q->execute([
      'user_id1' => get_session('user_id'),
      'user_id2' => $id
   ]);

    $data = $q->fetch();

    // var_dump($data);

  if($data['user_id1'] == $id && $data['status'] == '0'){ // même erreur ici 

    return "accept_reject_relation_link";

 }elseif($data['user_id1'] == get_session('user_id') && $data['status'] == '0'){ // même erreur ici 
    
    return "cancel_reject_relation_link";

 }elseif(($data['user_id1'] == get_session('user_id') or $data['user_id1'] == $id)
 AND $data['status'] == '1'){ // même erreur ici 

  
    return "delet_relation_link";

 }else{
    
    return "add_relation_link";

 }

   $q->closeCursor();

}
}



le message d'erreur :
//Notice: Trying to access array offset on value of type bool in




Merci d'avance

3 réponses

Messages postés
13863
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 janvier 2021
780
bonjour,
pourrais-tu partager le message d'erreur complet, inclus la ligne où l'erreur se produit?
Messages postés
13
Date d'inscription
dimanche 8 juillet 2018
Statut
Membre
Dernière intervention
4 janvier 2021

Lignes 19 , 22, 26 (voir code poster) qui correspond lignes 897 , 901 .... Sur mon editeur
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 897
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 901
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 905
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 905
// bool(false)
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 897
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 901
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 905
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 905
// bool(false)
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 897
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 901
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 905
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 905
// bool(false)
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 897
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 901
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 905
// 
// Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\date\inc\functions.php on line 905
Messages postés
30996
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 janvier 2021
3 171
Bonjour,

Commence par appliquer ceci :
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Puis testes avec ce code
<?php

if (!function_exists('relation_link_to_display')) {

  function relation_link_to_display($id) {
    global $db;
    $sql = 'SELECT user_id1, user_id2, status 
            FROM friends_relationships
            WHERE (user_id1 = :user_id1 AND user_id2 = :user_id2)
               OR (user_id1 = :user_id2 AND user_id2 = :user_id1)';
    
    $params = [
        ':user_id1' => get_session('user_id'),
        ':user_id2' => $id
    ];
    try{
      $q = $db->prepare($sql);
      $q->execute($params);
      $data = $q->fetch();
      // var_dump($data); // Qu'est-ce que ça t'affiche ?
    }catch(Exception $e){
      echo "Erreur : ".$e->getMessage();
    }

  // si tu le places après les return.. il ne sera jamais exécuté.
    $q->closeCursor();

    // Le temps des tests
    if(empty($data)){
      echo "La requête n'a retournée aucun résultat pour les variables :<br>";
      print_r($params);
      die();
    }
    
    $user_id1 = !empty($data['user_id1']) ? $data['user_id1'] : NULL;
    $user_id2 = !empty($data['user_id2']) ? $data['user_id2'] : NULL;
    $status = !empty($data['status']) ? $data['status'] : NULL;
    
    if ($user_id1 == $id && $status == '0') { // même erreur ici 
      return "accept_reject_relation_link";
    } elseif ($user_id1 == get_session('user_id') && $status == '0') { // même erreur ici 
      return "cancel_reject_relation_link";
    } elseif (($user_id1 == get_session('user_id') || $user_id1 == $id)  && $status == '1') { // même erreur ici 
      return "delet_relation_link";
    } else {
      return "add_relation_link";
    }

  }

}


Cordialement,
Jordane
Messages postés
13
Date d'inscription
dimanche 8 juillet 2018
Statut
Membre
Dernière intervention
4 janvier 2021

Merci.