Si une donnée est bonne on affiche
- Accueil
- Forum
- Programmation
- PHP
- Si une donnée est bonne on affiche
Chooper01 Le 1 septembre 2016 à 02:28 (Édité le 25 janvier 2019 à 17:52)
Je voudrais affiché une variable si seulement elle est égale a "blablabl" je vous montre mon code
<li id="titre_pers"><a href="lesrecettes.php?id=<?= $r['id']?>"><?= if ($r['type'] == 'Entrées')
{
echo $r['Titre'] ; ?></a></li>
<?=
}
?>
En gros je veux que si le $r['type'] = Entrées bah il affiche le titre .
Et voila l'erreur : "Parse error: syntax error, unexpected 'if' (T_IF) in C:\wamp64\www\cuisine\recettes.php on line 66"
Merci !
WhiiTe Le 1 septembre 2016 à 03:00 (Édité le 1 septembre 2016 à 03:00)
<li id="titre_pers"><a href="lesrecettes.php?id=<?= $r['id']; ?>"><?php if($r['Type'] == 'Entrées') { echo $r['Titre'] } ?></a></li>
Tu te compliques la vie à faire des sauts de ligne et des <?= à tout va, alors que ça loge sur une ligne .. ^^ Chooper01 Le 1 septembre 2016 à 03:34 (Édité le 1 janvier 1970 à 01:00)
je voudrais enlever le point ...
et le code en entier
<div id="point" style="color: rgba(212, 194, 73, 1);">
<ul>
<?php while ($r =$recette->fetch())
{?>
<li id="titre_pers"><a href="lesrecettes.php?id=<?= $r['id']; ?>"><?php if($r['type'] == 'Entrées') { echo $r['Titre']; } ?></a></li>
<?php
}
?>
</ul>
</div>
merci .. TheOldNoob Le 1 septembre 2016 à 09:15 (Édité le 1 septembre 2016 à 09:16)
Donc tu demandait de faire un echo de ton if
Ensuite, pour retier le point de ta liste, qui n'est pas un bug, c'est du CSS.
list-style : none;
Chooper01 Le 1 septembre 2016 à 11:47 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 1 septembre 2016 à 12:15 (Édité le 1 janvier 1970 à 01:00)
Chooper01 Le 1 septembre 2016 à 13:00 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 1 septembre 2016 à 13:12 (Édité le 1 janvier 1970 à 01:00)
Je te met le code que moi j'utilise pour affiche des commentaire sur un livre d'or, uniquement si l'admin a validé le commentaire.
Tu va voir que c'est exactement ce que tu cherche a faire, c'est a dire, afficher uniquement les entrées...
div class="row">
<?php
$res = $pdo->prepare('SELECT * FROM gold_book WHERE accepted = :show ORDER BY date_add DESC LIMIT 6 OFFSET 0');
$res->bindValue(':show', 'show');
$res->execute();
$notice = $res->fetchAll(PDO::FETCH_ASSOC);
foreach($notice as $not):
?>
<div class="col-xs-12 col-sm-12 col-md-6">
<blockquote><?= $not['desc_gold'] ?>" <cite><?php echo $not['name'].', le '. $not['date_add'] ?> </cite> </blockquote>
</div>
<?php endforeach; ?>
</div>
En fait, tout se passe dans ma requete.
Je lui dit d'aller chercher dans ma table 'gold_book' la ou l'état accepted est egale a 'show' et je les trie par date.(sachant que chez moi l'admin a la possibilité de changer l'état 'acccepted' en 'show' ou en 'hide'
Puis je fait un echo de ce que j'ai besoin.
Toi, vu va faire pareil, mais tu va choisir si c'est un plat, une entrée, un dessert, un accompagnement, un vin... bref, tout ce que peu avoir besoin ton restaurateur 😉
Chooper01 Le 1 septembre 2016 à 13:27 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 1 septembre 2016 à 14:33 (Édité le 1 janvier 1970 à 01:00)
Chooper01 Le 1 septembre 2016 à 15:34 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 1 septembre 2016 à 17:16 (Édité le 1 janvier 1970 à 01:00)
- Entrée
- Plat
- Dessert
- etc...
Ensuite, tu fait ta requete presque normalement, mais a la place de 'Entrée' tu fait une concaténation avec le choix fait dans le formulaire plus haut
En gros (attention, code a developper par toi même 😉 )
vérification du post avec les empty et isset blablabla tu fait ton php pour gérer ton formulaire
$type = $_POST['type'];
$res = $pdo->prepare('SELECT * FROM gold_book WHERE type = :'.$type.' ORDER BY date_add DESC LIMIT 6 OFFSET 0');
Puis tu fait ton formulaire
<form methode="post">
<select id="type" name="type">
<option value="entree">Entrée</option>
<option value="plat">Plat</option>
<option value="dessert">Déssert</option
etc...
Voilà, je pense t'avoir lancer dans la bonne dirrection, te reste plus qu'a codé 😉
Chooper01 Le 1 septembre 2016 à 18:42 (Édité le 1 janvier 1970 à 01:00)
Et je veux pas exemple si la personne a choisis dans <select> Entrées </select bah il me l'affiche dans la pages ou il y a des recettes en dessous du titre Les recettes
Merci 😋
TheOldNoob Le 1 septembre 2016 à 18:55 (Édité le 1 janvier 1970 à 01:00)
Balatharas Le 1 septembre 2016 à 18:55 (Édité le 1 septembre 2016 à 18:58)
if(isset($_POST['selection']) AND $_POST['selection'] == "Entrée") {
echo "ok";
} else {
echo "non";
}
En clair: si on a une sélection, et que cette sélection contient Entrée, alors je dis ok. Mais si elle contient autre chose, alors je dis non.
EDIT: Dans la page ou tu veux afficher, tu fais un query de ta table ou est stockée la sélection, et une boucle while avec un fetch de ton query, ensuite tu affiche par exemple $s['selection'] ($s qui est le fetch de ton query) dans ton <li>
Chooper01 Le 1 septembre 2016 à 21:58 (Édité le 1 janvier 1970 à 01:00)
Donc :
Mon code ou le gars entre la recette :
if (isset($_POST['titre'], $_POST['type'], $_POST['nbrpers'], $_POST['1ing'], $_POST['2ing'], $_POST['3ing'], $_POST['4ing'], $_POST['5ing'], $_POST['6ing'], $_POST['7ing'], $_POST['8ing'], $_POST['9ing'], $_POST['10ing'], $_POST['contenu']))
{
if (!empty($_POST['titre']) AND !empty($_POST['type']) AND !empty($_POST['nbrpers']) AND !empty($_POST['1ing']) AND !empty($_POST['2ing']) AND !empty($_POST['3ing']) AND !empty($_POST['4ing']) AND !empty($_POST['5ing']) AND !empty($_POST['6ing']) AND !empty($_POST['7ing']) AND !empty($_POST['8ing']) AND !empty($_POST['9ing']) AND !empty($_POST['10ing']) AND !empty($_POST['contenu']))
{
$titre = htmlspecialchars($_POST['titre']);
$type = htmlspecialchars($_POST['type']);
$nbrpers = htmlspecialchars($_POST['nbrpers']);
$_1ing = htmlspecialchars($_POST['1ing']);
$_2ing = htmlspecialchars($_POST['2ing']);
$_3ing = htmlspecialchars($_POST['3ing']);
$_4ing = htmlspecialchars($_POST['4ing']);
$_5ing = htmlspecialchars($_POST['5ing']);
$_6ing = htmlspecialchars($_POST['6ing']);
$_7ing = htmlspecialchars($_POST['7ing']);
$_8ing = htmlspecialchars($_POST['8ing']);
$_9ing = htmlspecialchars($_POST['9ing']);
$_10ing = htmlspecialchars($_POST['10ing']);
$contenu = htmlspecialchars($_POST['contenu']);
$image = "cuisine.png" ;
$ins = $bdd->prepare("INSERT INTO recette (Image, Titre, Contenu, Nbrpers, 1ing, 2ing, 3ing, 4ing, 5ing, 6ing, 7ing, 8ing, 9ing, 10ing, type, datepub) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())");
$ins->execute(array($image, $titre, $contenu, $nbrpers, $_1ing, $_2ing, $_3ing, $_4ing, $_5ing, $_6ing, $_7ing, $_8ing, $_9ing, $_10ing, $type));
$msg = 'Votre recette a bien été envoyée !' ;
}
else
{
$erreur = 'Veuillez remplir tous les champs !' ;
}
}
?>
// la partie ou le gars entre le type
<label for="type" > Type de la recette :</label>
<select id="type" name="ori">
<option value="Entrées"> Entrées </option>
<option value="Plat"> Plat </option>
<option value="Boisson"> Boisson </option>
<option value="Apéritifs"> Apéritifs </option>
</select> <br>
Ou la recette apparaît quand le gars appuie sur envoyer :
$recette = $bdd->query('SELECT * FROM recette ORDER BY datepub DESC');
<div id="Entrées"><h2> Recettes des Entrées </h2></div>
<div id="point" style="color: rgba(212, 194, 73, 1);">
<ul>
<?php while ($r =$recette->fetch())
{?>
<li id="titre_pers"><a href="lesrecettes.php?id=<?= $r['id']; ?>"><?php if($r['type'] == 'Entrées') { echo $r['Titre']; } ?></a></li>
<?php
}
?>
</ul>
</div>
Voila je m’excuse du dérangement .. TheOldNoob Le 1 septembre 2016 à 22:44 (Édité le 1 janvier 1970 à 01:00)
Dans ta requete, tu fait comme j'ai dit plus haut 'SELECT * FROM recette WHERE type = :entrées ODER BY datepub DESC'
Sinon dans ta bdd, je déconseil l'utilisation des accent, car suivent ton serveur d'hebergement l'utf-8 peu posé probleme.
La convention veux aussi qu'on ecrivent des noms anglais et sans majuscule.
Après tu fait comme tu veux ^^
Chooper01 Le 1 septembre 2016 à 23:04 (Édité le 1 janvier 1970 à 01:00)
$type ='Entrées';
$recette = $bdd->prepare('SELECT * FROM recette WHERE type ='.$type.'ORDER BY datepub DESC');
<div id="point" style="color: rgba(212, 194, 73, 1);">
<ul>
<?php while ($r =$recette->fetch())
{?>
<li id="titre_pers"><a href="lesrecettes.php?id=<?= $r['id']; ?>"><?= $r['Titre'] ?></a></li>
<?php
}
?>
</ul>
</div>
TheOldNoob Le 1 septembre 2016 à 23:54 (Édité le 2 septembre 2016 à 00:00)
$recette = $bdd->prepare('SELECT * FROM recette WHERE type = :'.$type.'ORDER BY datepub DESC');
$recette->bindValue(':$type', '$type');
$recette->execute();
Mais je te conseil de relire la totalité de mon code avant de l'adapté en morceau dans ton code.
<div class="row">
<?php
$res = $pdo->prepare('SELECT * FROM gold_book WHERE accepted = :show ORDER BY date_add DESC LIMIT 6 OFFSET 0');
$res->bindValue(':show', 'show');
$res->execute();
$notice = $res->fetchAll(PDO::FETCH_ASSOC);
foreach($notice as $not):
?>
<div class="col-xs-12 col-sm-12 col-md-6">
<blockquote><?php echo $not['desc_gold'] ?>" <cite><?php echo $not['name'].', le '. $not['date_add'] ?> </cite> </blockquote>
</div>
<?php endforeach; ?>
</div>
La façon dont j'affiche mes données est complêtement différentes de la tiennes Chooper01 Le 2 septembre 2016 à 16:34 (Édité le 1 janvier 1970 à 01:00)
Car en lissant ce que tu m'as envoyé j'ai eu du mal a comprendre et j'essaie de le faire avec tous ce que j'ai appris ..
^^