PHP - MySQL Notice: Trying to access array offset on value

Fermé
Astolpho Messages postés 72 Date d'inscription vendredi 8 avril 2022 Statut Membre Dernière intervention 5 mars 2024 - 3 nov. 2022 à 12:06
Astolpho Messages postés 72 Date d'inscription vendredi 8 avril 2022 Statut Membre Dernière intervention 5 mars 2024 - 4 nov. 2022 à 15:48

Bonjour,

J'ai les messages d'erreur  ci-dessous: 

Notice: Undefined variable: row in
Notice: Trying to access array offset on value of type null in

J'affiche sur une page des informations provenant de plusieurs tables avec les jointures, quand les informations sont insérés ça fonctionne, mais quand certains champs ne sont pas remplis, j'ai ces erreurs. Si quelqu'un peut me dire a quoi ça correspond comme message.

Merci

A voir également:

3 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
3 nov. 2022 à 13:07

bonjour,

Cela correspond à des déficiences dans ton code, et nous ne voyons pas ton code.

0
Astolpho Messages postés 72 Date d'inscription vendredi 8 avril 2022 Statut Membre Dernière intervention 5 mars 2024
Modifié le 3 nov. 2022 à 17:57

Le code pour afficher le client par rapport à sa quittance : 

?php

require_once('../inc/connexion.php');
$receipt = $_GET['receipt'];
$db = getDB();
$stmt = $db->query("  SELECT * from receipt 

  LEFT JOIN customers ON (receipt.id_customers=customers.id_customers)
  LEFT JOIN rooms ON (receipt.room_number=rooms.room_number)         
  LEFT JOIN state ON (receipt.receipt=state.receipt)         

  WHERE receipt.receipt=$receipt ");

$donnees = $stmt->fetch();

include('../array/month.php');

?>

ici c'est le code pour afficher les informations du propriétaire celle du locataire et celle du prix. 

<!-- Main content -->
<section class="content">
 <div class="col-md-12">

 </div>

 <section >

   <div class="callout callout-info">
    <h4>Quittance #<?php echo $donnees['receipt'];?> - <?php echo $mois;?></h4>
  </div>

  <div class="row">
    <div class="col-md-5">
     <div class="box box-primary">
      <div class="box-header with-border">
        <h3 class="box-title text-light-blue">Propriétaire </h3>
      </div>
      <!-- /.box-header -->
      <div class="box-body">
       <strong><?php echo $company['name_company'];    ?></strong><br>
       SARL au Capital de <?php echo $company['capital'];?>€<br>
       <?php echo $company['address_company'];?> -  <?php echo $company['zipcode'];?> <?php echo $company['city'];?><br>
       RCS de PARIS de <?php echo $company['RCS'];?><br>
       tva N°FR <?php echo $company['TVA'];?><br>
     </div>
     <!-- /.box-body -->
   </div>
   <!-- /.box -->
 </div>
 <!-- /.col -->


 <div class="col-md-5">
   <div class="box box-primary">
    <div class="box-header with-border">
      <h3 class="box-title text-light-blue">Locataire</h3>
      <div class="box-tools pull-right">
      </div>
    </div>
    <!-- /.box-header -->
    <div class="box-body">
      <strong><?php echo $donnees['showin'];?></strong><br>
      Chambre : <?php echo $donnees['room_number'];    ?><br>
      Date d'entrée : <?php echo $donnees['entry_date'];?><br>
      Téléphone : <?php echo $donnees['mobile'];    ?><br>
       <br>
    </div>
    <!-- /.box-body -->
  </div>
  <!-- /.box -->
</div>

<?php
$receipt = $_GET['receipt'];
    try   //Connection a la bdd
    {
     $db = getDB();
   }
   catch (Exception $e)
   {
     die('Erreur : ' . $e->getMessage());
   }



   $stmt = $db->query("  SELECT vat  FROM tax ");
   $tax = $stmt->fetch();

 /////////////////PRIX CHAMBRE//////////////////////////////


   $sql=("SELECT price FROM rooms 
     LEFT JOIN receipt ON (rooms.id_customers=receipt.id_customers) 
     WHERE receipt.receipt=$receipt ");

   foreach ($db->query($sql) as $row) {


    //  $dbh = null;


   }

   /////////////////PRIX ARTICLES//////////////////////////////



   $sql=("SELECT SUM(price) FROM articles 
    LEFT JOIN receipt ON (articles.receipt=receipt.receipt)
    LEFT JOIN items ON (articles.id_items=items.id_items)
    WHERE articles.receipt=$receipt "); 

   foreach ($db->query($sql) as $row1) {


   }


   
    //  $dbh = null;


   
   //Formule : [Montant HT] x ([Taux TVA] / 100)=[Montant TVA]  100 € x (20 / 100)=20 € de TVA

  // echo $row['price'];
  //prix chambre
   $total_ht = $row['price'];
   //prix articles (en général, il n'y en a pas (clé, badge etc...)
   $articles = $row1['SUM(price)'];
   $txTVA = $company['TVA'];
   $TVA =  $total_ht * (10/100);


   $prix_ttc = $total_ht + $TVA + $articles;

   ?>

   <div class="col-md-2">
     <div class="box box-primary">
      <div class="box-header with-border">
        <h3 class="box-title text-light-blue">Paiement</h3>
        <div class="box-tools pull-right">
        </div>
      </div>
      <!-- /.box-header -->
      <div class="box-body">
        <strong>Sous-total : <?php echo number_format ($total_ht,2) ?>€</strong><br>
        TVA : <?php echo number_format ($TVA,2) ?>€<br>
        Total : <?php echo number_format ($prix_ttc,2) ?>€<br>
        Payé : <br>
        Balance : 

      </div>
      <!-- /.box-body -->
    </div>
    <!-- /.box -->
  </div>

le message d'erreur correspond au champs : 

$total_ht = $row['price'];
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
3 nov. 2022 à 18:05

Ne penses-tu pas utile d'insérer des instructions entre les lignes 77 et 83?

0
Astolpho Messages postés 72 Date d'inscription vendredi 8 avril 2022 Statut Membre Dernière intervention 5 mars 2024
4 nov. 2022 à 15:48

le message d'erreur vient du fait que certains champs de la chambre ne sont pas rempli. Sinon j'ai pas le message. Il faut que je fasse une vérifications?

0