Afichage de données avec PDO

Diedouch Messages postés 9 Statut Membre -  
 Diedouch -
Bonjour,

Je sui autodidacte en informatique.je vous demande donc d'être très précis pou la réponse.
Mon problème concerne l'affichage de certaines données d'une table de donnée avec PDO
Le problème se pose comme suit :
J'ai une dizaine de champs
J'ai une trentaine de lignes de valeurs
Parmi les champs, j'ai trois menus déroulant intitulés :Que faire, emplacement ,demande.
Mes lignes qui m'interessent sont celles qui comprennent les valeurs en options de ces trois champs

Mon programme est le suivant
echo'
<form action="completCopie4.php?contenu=liens" method="POST">

<select name="quefaire">
<option value="Demanderoffir" >Demandé/offert</option>
<option value="demander" >demandé</option>
<option value="offrir" >offert</option>
</select>

<select name="emplacement">
<option value="ou" >ou?</option>
<option value="Brazilia" >Brazilia</option>
<option value="Fortaleza" >Fortaleza</option>
</select>

<select name="demande">
<option value="quoi" >quoi?</option>
<option value="immobilier" >immobilier</option>
<option value="vehicule" >vehicule</option>
<option value="Objet" >objet</option>
<select/>
<br/>
<input type="submit" name="valider" value="OK"/>

</form>
';
if (isset($_POST ['quefaire']))
{
$quefaire=$_POST ['quefaire'];
$emplacement=$_POST ['emplacement'];
$demande=$_POST ['demande'];
$Date=date("d/m/Y");
echo '<li>' . $_POST['quefaire'] .$_POST ['emplacement'].$_POST ['demande'].'</li>';
}
$cnx= new PDO('mysql:host=localhost;dbname=bresil', 'root', '');
$cnx->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$sql="SELECT * FROM offre";
(Il faudrait surement ajouter where mais ensuite je ne sais pas faire avec PDO )
$qid=$cnx->prepare($sql);
$qid->execute();

while($row=$qid->fetch(PDO::FETCH_OBJ ))
{
echo$row->titre;
//Ici le tri ne se fait pas
}
$qid->closeCursor();
$cnx=null;
}
L'erreur qui apparait est la suivante

Notice: Undefined property: stdClass::$titre in C:\wamp\www\bresil\completCopie4.php on line 261
Call Stack
# Time Memory Function Location
1 0.0023 277536 {main}( ) ..\completCopie4.php:0

Cette ligne correspond à echo$row->titre;

Merci de votre aide..

3 réponses

  1. Utilisateur anonyme
     
    Bonjour

    D'après ton message d'erreur, ce serait que le champ titre n'existe pas dans ta table offre. À moins que ce soit dû au manque d'espace entre echo et $row, je ne sais pas si c'est autorisé car j'en laisse toujours une.

    Pour le problème du WHERE (et du ORDER BY), ça dépend de ce que tu veux faire. Comment aurais-tu écrit ta requête si ça n'avait pas été PDO ?
    0
  2. MastercroW Messages postés 1259 Date d'inscription   Statut Membre Dernière intervention   163
     
    Bonjour,
    En mettant ça : echo$row->titre;
    Tu as oublié qu'il y avait un espace entre echo et ton $row

    Et comme le dit le père, il me semblerait que ta colonne titre n'existe pas dans ta table ;)
    0
    1. Utilisateur anonyme
       
      Merci, c'est sympa de répéter ce que j'ai dit.

      D'autre part, j'ai vérifié depuis, ça marche très bien sans espace entre echo et $row->titre;
      0
  3. Diedouch
     
    merci pour les réponses.

    Il y a eu peut être un prolème de comprehension
    Je ne cherchais pas à afficher "title" (merci néammoins pour la correction ), je cherhcais à afficher certaines données de title choisies en fonction de 3 critères quefaire,ou et quoi

    Voici ce que j'ai bricolé
    $sql=$cnx->prepare('SELECT identif,quefaire,ou,quoi,titre, FROM offre where quefaire=? and ou=? and quoi=?');

    if (isset($_POST ['valider']))
    {
    $quefaire=$_POST ['quefaire'];
    $ou=$_POST ['ou'];
    $quoi=$_POST ['quoi'];
    $Date=date("d/m/Y");
    echo'<li>' . $_POST['quefaire'] .$_POST ['ou'].$_POST ['quoi'].'</li>' ;

    $sql->execute(array($_POST ['quefaire'],$_POST ['ou'],$_POST ['quoi']));
    }

    while($row=$sql->fetch(PDO::FETCH_OBJ ))

    {

    echo $row->titre.'<br/><br/>';
    }

    et ça marche

    Merci encore
    0