CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

foreach et pdo

korpikvodka
korpikvodka
Niveau 10
19 mai 2013 à 22:45:56

Bonjour j'aimerai traduire une simple requête maintenant que j'utilise pdo mais je n'arrive à faire sortir qu'un résultat. Je suis conscient que je suis pas très à l'aise encore avec PDO et que ça fait un bon moment que je teste sasn trop de résultat, enfin voilà pourquoi je solicite votre aide :)

Mon ancien code :
<?php
$sql_billets = mysql_query('SELECT * FROM news ORDER BY titre');

// On place dans $billets l'ensemble des données de ta table

$billets = array();

while($result = mysql_fetch_array($sql_billets)) {

$billets[] = $result;
?>
et la boucle :
<?php foreach($billets as $billet): ?>

<option value="<?php echo $billet['id']; ?>"><?php echo utf8_encode($billet['titre']); ?></option>

<?php endforeach; ?>

Nouveau code :
$sql_billets = $bdd->prepare('SELECT * FROM news ORDER BY titre');
$billets = array();
$sql_billets->execute();
$result = $sql_billets->fetch();
$billets[] = $result;
echo $billets;
echo $result;

et la boucle :
<?php foreach($billets as $billet) ?>

<option value="<?php echo $billet['id']; ?>"><?php echo utf8_encode($billet->titre); ?></option>

<?php endforeach; ?>

J'ai aussi essayé :
$req="SELECT * FROM news ORDER BY titre";
$billets=$pdo->query($requete, PDO::FETCH_OBJ);

mais sans succès, halp plz :)

3615_mylife
3615_mylife
Niveau 10
19 mai 2013 à 23:51:13

Je ne parlerais que du code avec pdo.

Pourquoi tu mets le résultat de la requête (à savoir $result) dans une clé dans tableau ($index[]) ?

Pourquoi tu récupères les news par ordre alphabétique (du titre) ?

Pourquoi tu as des variables nommées "$billet" alors que tu stocks tes infos dans une table "news" ? (ici, je parle plus de convention)

Pourquoi dans le code de ta boucle, tu tentes d'accéder à l'id via la clé d'un tableau et pour le titre via une flèche comme en OO ?

Fais plutôt ceci:

$news = $bdd->prepare('SELECT * FROM news ORDER BY titre');

while($news = $sql_news->fetchAll(PDO::FETCH_ASSOC))
?>

<option value="<?php echo $news['id']; ?>"><?php echo utf8_encode($news['titre']); ?></option>

<?php
endforeach;
$sql_news->closeCursor();
?>

korpikvodka
korpikvodka
Niveau 10
20 mai 2013 à 01:06:53

Pourquoi tu mets le résultat de la requête (à savoir $result) dans une clé dans tableau ($index[]) ?
je testais :pf:

Pourquoi tu récupères les news par ordre alphabétique (du titre) ?
pour que le classement soit plus lisible

Pourquoi tu as des variables nommées "$billet" alors que tu stocks tes infos dans une table "news" ? (ici, je parle plus de convention)
j'ai renommé ma table pas ma variable :3

Pourquoi dans le code de ta boucle, tu tentes d'accéder à l'id via la clé d'un tableau et pour le titre via une flèche comme en OO ?
je veux mettre l'id pour récupérer l'id après le formulaire.

Le code que tu me propose est bien plus clair je te remercie beaucoup ! :)

deepblue
deepblue
Niveau 16
20 mai 2013 à 14:29:36

$billets = $sql_billets->fetchAll();

korpikvodka
korpikvodka
Niveau 10
20 mai 2013 à 18:17:04

@3615_mylife : je vois pas trop finalement. Il n'y a pas de début de foreach. Je ne comprend pas là u_u

Malgré ça, problème résolu. Merci à vous.

J'ai fait :
$sql_billets = $bdd->prepare('SELECT * FROM news ORDER BY titre');
$sql_billets->execute();
$billets = $sql_billets->fetchAll();

et :
<?php foreach($billets as $billet): ?>
<option value="<?php echo $billet['id']; ?>"><?php echo utf8_encode($billet['titre']); ?></option>
<?php endforeach; ?>

Rien de choquant j'espère ? en tous cas c'est clair et ça fonctionne.

Pseudo supprimé
Pseudo supprimé 20 mai 2013 à 23:11:01

Rien de choquant, c'est même comme ça qu'on fait souvent.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment