web-dev-qa-db-fra.com

Erreurs de traitement du jeu de résultats de la requête: Variable non définie et Tentative d’obtenir la propriété de non-objet

J'ai déjà une table de base de données appelée "form"; J'ai ajouté un nouveau champ dans la même table.

Le problème est dans la requête select * from "form". Les anciens champs sont affichés, mais pas le nouveau.

Je ne sais pas pourquoi rien ne s'affiche encore; la requête est correcte. L'erreur est:

Variable non définie: Num dans C:\xampp\htdocs\velocizzare\modules\mod_client\mod_client.php à la ligne 96
Essayer d'obtenir la propriété de non-objet dans C:\xampp\htdocs\velocizzare\modules\mod_client\mod_client.php en ligne 96

Mon code est:

if(isset($_POST['BtnConsulter'])){
    $_SESSION["del"]=$_POST['BtnConsulter'];
    $user = JFactory::getUser();
    $db = JFactory::getDBO(); 
    $queri=$db->getQuery(true);
    $queri->select('*');
    $queri->from('ml0ak_chronoengine_chronoforms_datatable_formulaire');
    $queri->where('NuméroK10='.$_POST['BtnConsulter']);
    $db->setQuery ($queri); 
    $users = $db->loadObjectList();
    foreach ( $users as $us){
        $Cognome=$us->Cognome;
        $civilite=$us->civilite;
        $Email=$us->Email;
        $TelCellulaire=$us->TelCellulaire;
        $AutreTel=$us->AutreTel;
        $DataDiNascita=$us->DataDiNascita;
        $Ville=$us->Ville;
        $PaysNaissance=$us->PaysNaissance;
        $ResidenteInCitta=$us->ResidenteInCitta;
        $Provincia=$us->Provincia;
        $Num->$us->Num;                                      // <-- Line 96

        );

        echo"<br />Nome: $Nome";
        echo"<br />Cognome: $Cognome";
        echo"<br />E-mail: $Email";
        echo"<br />Tel/Cellulare: $TelCellulaire";
        echo"<br />Autre Tel: $AutreTel";
        echo"<br />Data di nascita: $DataDiNascita";
        echo"<br />Ville: $Ville";
        echo"<br />Pays de Naissance: $PaysNaissance";
        echo"<br />Residente in (Citta): $ResidenteInCitta";
        echo"<br />Provincia: $Provincia";
        echo"<br /> Num: $Num";

J'ai effacé le cache, cela ne fonctionne pas enter image description here S'il vous plaît, quelle est la solution?

Le résultat: enter image description here

1
hela briki

Le problème est ceci $Num->$us->Num;. Vous ne le définissez pas correctement.

Alors remplacez-le par ceci:

$Num = $us->Num;

Vous voudrez peut-être aussi améliorer un peu votre code. Essayez ce qui suit:

$jinput       = JFactory::getApplication()->input;
$BtnConsulter = $jinput->get('BtnConsulter', '');

if ($BtnConsulter)
{
    $user    = JFactory::getUser();
    $session = JFactory::getSession();
    $db      = JFactory::getDbo(); 

    $session->set('del', $BtnConsulter);

    $query = $db->getQuery(true);
    $query->select('*')
          ->from($db->qn('#__chronoengine_chronoforms_datatable_formulaire'))
          ->where($db->qn('NuméroK10') . ' = ' . $db->q($BtnConsulter));
    $db->setQuery ($query); 

    $users = $db->loadObjectList();

    foreach ($users as $us)
    {
        $Cognome          = $us->Cognome;
        $civilite         = $us->civilite;
        $Email            = $us->Email;
        $TelCellulaire    = $us->TelCellulaire;
        $AutreTel         = $us->AutreTel;
        $DataDiNascita    = $us->DataDiNascita;
        $Ville            = $us->Ville;
        $PaysNaissance    = $us->PaysNaissance;
        $ResidenteInCitta = $us->ResidenteInCitta;
        $Provincia        = $us->Provincia;
        $Num              = $us->Num;

        echo "<br>Nome: $Nome";
        echo "<br>Cognome: $Cognome";
        echo "<br>E-mail: $Email";
        echo "<br>Tel/Cellulare: $TelCellulaire";
        echo "<br>Autre Tel: $AutreTel";
        echo "<br>Data di nascita: $DataDiNascita";
        echo "<br>Ville: $Ville";
        echo "<br>Pays de Naissance: $PaysNaissance";
        echo "<br>Residente in (Citta): $ResidenteInCitta";
        echo "<br>Provincia: $Provincia";
        echo "<br>Num: $Num";
    }
}

Lors de la déclaration des variables d'ensemble de résultats à l'intérieur de la boucle foreach(), utilisez spacing/tabs pour aligner l'opérateur d'assignation =. Cela vous aidera à voir les incohérences dans votre code. Cette technique est utilisée à quelques endroits dans le document sur les normes de codage php de Joomla :

2
Lodder