mois dans l'array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mois dans l'array

Re: mois dans l'array

par JeanJack » 29 nov. 2011, 00:04

Ca Marche ! Merci ca fait 4 jours que je bloquais ^^

Re: mois dans l'array

par dix2 » 28 nov. 2011, 23:13

En fait, il faut boucler sur tous les résultats de la requête avec un while
Ce qui donne :
<?PHP
try{
  $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
  $bdd = new PDO('mysql:host=localhost;dbname=************************', 'root', '', $pdo_options);
  $bdd->query('SET lc_time_names="fr_FR"');
              $req = $bdd->prepare('SELECT titre, contenu, DATE_FORMAT(date_creation, "%d/%m/%Y") AS date_creation_fr FROM article WHERE DATE_FORMAT(date_creation, "%M") = ? ORDER BY date_creation DESC LIMIT 0,5');
  $req->execute(array($_GET['mois']));
?>
<h1><?PHP echo($_GET['mois']) ?></h1>
<?PHP
  while($donnees = $req->fetch()){
?>
<div class="post">
  <h3>
<?PHP
    echo(htmlspecialchars($donnees['titre']));
?>
  </h3>
<?PHP
    echo('Le'.$donnees['date_creation_fr']);
?>
  <p>
<?PHP
    echo(nl2br(htmlspecialchars($donnees['contenu'])));
?>
  </p>
</div>
<?PHP
  }
}
catch(Exception $e){
  exit('Erreur : '.$e->getMessage());
}
?>

Re: mois dans l'array

par JeanJack » 28 nov. 2011, 22:12

effectivement j'ai plus d'erreur SQL mais au final que mettre dans l'array car quand je met $_GET['mois'] il m'affiche un article mais un seul uniquement alors que normalement il doit en afficher 2.
Quand j'essaye avec autre chose il ne m'affiche rien donc je pense que la solution est pas loin #-o

Re: mois dans l'array

par xTG » 28 nov. 2011, 21:47

Tu as une virgule qui se balade avant le FROM.
Car l'erreur SQL ne peut provenir d'un paramètre, car les paramètres sont protégés dans les requêtes préparées.
L'erreur est donc la requête en elle même.

Re: mois dans l'array

par JeanJack » 28 nov. 2011, 21:28

oui je pense mais il faut mettre une autre valeur que january car ca ne marchera pas avec un autre mois :?
justement je ne sais pas quoi y mettre car j'ai essayer plusieurs truc sans succes avec que des erreurs sql

Re: mois dans l'array

par dix2 » 28 nov. 2011, 20:48

salut,

à la place des ??????????????, il faut mettre un truc du genre :
$req->execute(array("'January'"));

@+
dix2

mois dans l'array

par JeanJack » 28 nov. 2011, 18:12

Bonjour a tous
Je n'arrive pas a finir mon code php du moins ce qu'il faut mettre dans l'array il me semble je vous montre. Il se compose en 2 fichiers. Le but de ce code est que quand il y a un article a un mois donnée, il affiche un lien avec ce 'mois' écrit en francais et que lorsque on clique sur ce mois il nous affiche tous les articles du mois précédemment cliqué .
<nav>
			<h3>Articles par Mois</h3>
			<ul>
				<?php
					try
					{
						$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
						$bdd = new PDO('mysql:host=localhost;dbname=*************', 'root', '', $pdo_options);
						$bdd->query('SET lc_time_names="fr_FR"');
						$reponse = $bdd->query('SELECT DATE_FORMAT(date_creation, "%M") AS mois FROM article GROUP BY MONTH(date_creation)');
						while( $data = $reponse->fetch(PDO::FETCH_ASSOC) )
						{
							echo '<ul>';
							echo '<li><a href="post_mois.php?mois=' . $data['mois'] . '">
							' . $data['mois'] . ' 2012</a></li>';
							echo '</ul>';
						}
							$reponse->closeCursor();
					}
					catch(PDOException $e)
					{
						exit('Erreur : '.$e->getMessage());
					}
				?>
			</ul>
		</nav>
Ce premier code est normalement bon enfin on sais jamais
C'est plutot sur celui ci que je coince
<?php
				try
				{
				$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
				$bdd = new PDO('mysql:host=localhost;dbname=************************', 'root', '', $pdo_options);
				$bdd->query('SET lc_time_names="fr_FR"');
				$req = $bdd->prepare('SELECT titre, contenu, DATE_FORMAT(date_creation, "%d/%m/%Y") AS date_creation_fr, FROM article WHERE DATE_FORMAT(date_creation, "%M") = ? ORDER BY date_creation DESC LIMIT 0,5');
                                 ??????????????????????????????????????????????????????????????????????????????????
				$donnees = $req->fetch();
					{
					?>
					<h1><?php echo $_GET['mois'];'</h1>'
					?>
						<div class="post">
							<h3><?php echo htmlspecialchars($donnees['titre']); ?></h3>
							 Le <?php echo $donnees['date_creation_fr']; ?>
							<p>
								<?php
								echo nl2br(htmlspecialchars($donnees['contenu']));
								}
								?>
							</p>
						</div>
				<?php
					}
					catch(Exception $e)
					{
						exit('Erreur : '.$e->getMessage());
					}
				?>
Je ne sais pas quoi mettre a la place de tout les ?????
c'est peu etre une autre erreur je ne sais pas trop :?
Cordialement
JeanJack