Décrivez ici votre problème ou ce que vous cherchez à faire.
$ch=explode("|",$resultat[0]['taches']);
//resultat de explode BDD
echo "<br/>";
foreach($ch as $value)
{
echo $value.'<br>';
}
echo "<br/><br/><br/><br/>";
$sql = $bdd->query ("SELECT * FROM `liste_taches`WHERE `id_taches`= $value;");
$sql ->rowCount();
while ($donnees = $sql->fetch())
{
echo $donnees['Taches'];
}
$sql->closeCursor();
Ce que je veux
Bonjour
Le resultat de explode est un tableau avec ces données
5
7
8
Je recherche toutes ces valeurs dans une table ; mais j'obtiens que la dernière ligne correpondant à 8
Ce que j'obtiens
5
7
8
la ligne de la colonne id_taches = 8
6 - Rechercher, comparer et choisir des solutions techniques
Hello,
En vrai j'ai rien compris mais déjà quand je vois des echo avec plusieurs <br> je pense qu'il faut d'abord revoir le code en amont. Pareil pour rowCount qui ne doit pas être utilisé sur une requête de type SELECT. Et je ne parle pas de l'indentation qui est horribles.
Je te conseil de mieux présenter ton code et de revenir plus tard en expliquant mieux ton problème.
**
$ch=explode("|",$resultat[0]['taches']);
foreach($ch as $value)
{
echo $value.'<br>';
}
$sql = $bdd->query ("SELECT * FROM liste_taches
WHERE id_taches
= $value;");
while ($donnees = $sql->fetch())
{
echo $donnees['Taches'];
}
$sql->closeCursor();**
Ce que je veux
Bonjour
Le resultat de explode est un tableau avec ces données affichées
5
7
8
ce que je recherche:
C'est de chercher les 3 valeurs (dans l'exemple (voir plus)) dans une table "liste_taches" dans la colonne " id_taches"
bonsoir.
en même temps br sert comme tu dis à aller dans un paragraphe.
et en sql cela ne sert à rien.
regarde du côté de la fonction sql IN
Regarde du côté du IN comme là dit @Carouge10 mais quand je parlais de mieux écrire ton code, je ne parlais pas sur le forum
// $ch ne veut rien dire
$taskIds = explode('|', $result[0]['task_ids']);
$taskIds = array_filter($taskIds, static fn(int $id) => $id > 0);
$sqlTaskIds = implode(',', $taskIds);
$reqTasks = $db->prepare("SELECT id, task, completed FROM task_list WHERE id IN ({$sqlTaskIds})");
$reqTasks->execute();
$tasks = $reqTasks->fetchAll(PDO::FETCH_ASSOC); // Normalement le PDO::FETCH_ASSOC devrais être configuré par défaut
?>
<h2>Tasks<?= count($tasks) ?></h2>
<p class="task">
<?php foreach ($tasks as $task): ?>
<p>
<input type="checkbox" name="task[]" value="<?= $task['id'] ?>" <?= $task['completed'] ? 'checked' : '' ?>>
<?= $task['task'] ?>
</p>
<?php endforeach; ?>
</p>
Merci beaucoup quenti77!!
Je sais que mon code n'ai pas bien écrit.....
Le php et mysql me servent que en localhost pour me faciliter mes préparations de cours.
<pre><code>
$tableauTaches=explode("|",$resultat[0]['taches']);
$tableauTaches = array_filter($tableauTaches, static fn(int $id) => $id > 0);
$sqlTacheIds = implode(',', $tableauTaches);
$reqTaches = $bdd->prepare("SELECT * FROM liste_taches WHERE id_taches IN ({$sqlTacheIds})");
$reqTaches->execute();
$taches = $reqTaches->fetchAll(PDO::FETCH_ASSOC); // Normalement le PDO::FETCH_ASSOC devrais être configuré par défaut
?>
<h2>Tâches <?= count($taches) ?></h2>
<p>
<?php foreach ($taches as $tache): ?>
<p>
<?= $tache['Taches'] ?>
</p>
<?php endforeach; ?>
</code></pre>