Notice: Undefined index: .... in....

Résolu
someone -  
 someone -
Bonjour,

J'aimerai faire afficher des données qui se trouve dans ma table porte.
J'arrive à faire afficher l'attribut IP mais quand il s'agit du batiment j'obtient un message tel que :Notice: Undefined index: batiment in ... on line 28

voici mon code :
<!DOCTYPE html>
<html lang='fr'>
<?php
//require_once (__DIR__.'/../Controller/connbdd2.php'); 
try {
    $db = new PDO('mysql:host=localhost;dbname=bdd_ctrl_acces_dev', 'root', '');
} catch(PDOException $e){
    die('Erreur de connexion à la base de données :' .$e->etMessage());
}

$req = $db->prepare("SELECT idPorte, IP FROM portes");
$req->execute();
$row = $req->fetchAll(); 

if($row){
    foreach($row as $row){
        $ping = exec("ping -n 1 " . $row['IP']);                
        if (strpos($ping, "perte 100%")) {  
            $etat = "non";                       
        } else {
            $etat = "oui";
        }
        //echo $row['IP']." - ".$etat."<br>";
        $req2 = $db->prepare("SELECT batiment FROM portes ");
        $req2->execute();
        $row2 = $req2->fetchAll();
        
        echo $row2['batiment'] . "<br>";

    }
}
?>


D'après vous quel est le problème

Configuration: Windows / Chrome 100.0.4896.75

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour premier souci sur cette ligne de code
foreach($row as $row){

En utilisant deux fois le même nom de variable
$row tu écrases la première..

0
someone
 
 if($row){
    foreach($row as $ip){
        $ping = exec("ping -n 1 " . $ip['IP']);                
        if (strpos($ping, "perte 100%")) {  
            $etat = "non";                       
        } else {
            $etat = "oui";
        }
        echo $ip['IP']." - ".$etat."<br>";
        $req2 = $db->prepare("SELECT batiment FROM portes ");
        $req2->execute();
        $row2 = $req2->fetchAll();
        var_dump($row2); die();
        echo $row2['batiment'] . "<br>";


J'ai changé la variable mais même sans ça j'obtenais qqc en se qui concerne d'afficher les adresse ip et leur état.
Ce que j'essaye de faire c'est de récupérer les informations associés à chacun des ip à l'aide du foreach et executer des commande mais lorsque je veux récupérer les batiments je n'obtiens un message d'erreur (c'est juste un test)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > someone
 
bonjour,
as-tu envisagé de partager le contenu de
$row2
?
0
someone > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oui je l'ai envisagé.
Finalement, j'ai changé mon code j'ai tout mis dans la première requête comme ça je pourrais faire appel aux différents attributs contenus dans $row sans faire de requêtes supplémentaires et ne pas surcharger le code.
En tout cas merci
0