j'ai une base de données très simple (MySql) avec une table que j'accède en utilisant Propel avec ce code ...Propel retour même disque plusieurs fois
<?php
$autoloader = require '/vendor/autoload.php';
$autoloader->add('', __DIR__ . '/generated-classes/');
use Propel\Runtime\Propel;
use Propel\Runtime\Connection\ConnectionManagerSingle;
require './generated-conf/config.php';
require './includes/pagebuilder.php';
Propel::getConnection("default")->useDebug(true);
$videos = VideosQuery::create()
->orderByAddeddate()
->paginate($page = 1, $maxPerPage = 20);
echo GetMainPage($videos);
echo Propel::getConnection()->getLastExecutedQuery();
?>
La requête semble générer correctement ...
SELECT videos.id, videos.AddedDate, videos.Rating, videos.Views, videos.Title, videos.Description, videos.ImageUrl, videos.EmbedUrl FROM videos ORDER BY videos.AddedDate ASC LIMIT 20
Si je lance cette requête par phpMyAdmin je reçois les cependant, les résultats attendus, Propel semble revenir le premier enregistrement trouvé par la requête 20 fois. Quelqu'un sait ce qui pourrait se passer ici? Merci
modifier: enregistrement en boucle
function GetMainContent($videos) {
$mc = '<main>
<div id="video-box-wrapper">';
foreach($videos as $video) {
$mc .= '<div class="video-box">
<a href="#">
<img src="' . $video->getImageUrl() . '" />
<span>' . $video->getTitle() . '</span>
<br />
<p>' . $video->getViews() . ' views</p>
<p>Rating: ' . $video->getRating() . '/10</p>
</a>
</div>';
}
$mc .= '</main>';
return $mc;
}
Cela ressemble à votre code de récupération. Où est la partie où vous obtenez vingt disques identiques? – tadman
Lorsque je boucle des vidéos $ chaque enregistrement est identique. J'ai ajouté du code à la question originale. –
La requête exécutée manuellement produit-elle les résultats corrects? Que montre un ['var_dump'] (http://php.net/manual/fr/function.var-dump.php) de' $ videos'? – tadman