Afichage de données avec PDO

Fermé
Diedouch Messages postés 9 Date d'inscription samedi 21 décembre 2013 Statut Membre Dernière intervention 13 janvier 2014 - 22 déc. 2013 à 07:17
 Diedouch - 26 déc. 2013 à 09:43
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
22 déc. 2013 à 12:36
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 1095 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
25 déc. 2013 à 17:05
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
25 déc. 2013 à 17:30
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
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