Afichage de données avec PDO

Diedouch Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
 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

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
MastercroW Messages postés 1094 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
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
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