La requete n'affiche pas la premièreligne
Résolu/Fermé
christian820
Messages postés
12
Statut
Membre
-
Souma -
Souma -
Bonjour,
Je trtavaille sur un projet de base généalogique à mettre en ligne avec php et mysql.
J'ai une requête qui sélectionne les entrées de ma table sur le nom de l'individu, qui fonctionne apparemment, sauf qu'à l'affichage, il manque la première ligne. je bataille là-dessus depuis hier!
Quelqu'un pourrait-il m'aider?
Voici mon code:
<?php
htmlspecialchars($_POST['saisieNom']);
$_GET=$_POST;
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=chrisvia', 'root', '', $pdo_options);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$req = $bdd->prepare('SELECT * FROM actes WHERE nom = :nom');
$req->execute(array('nom' => $_GET['saisieNom'])) or die(print_r($req->errorInfo()));
?>
<table style="width:100%";>
<tr>
<th width="10px">Acte</th>
<th width="50px">Date</th>
<th width="20px">Nom</th>
<th width="25px">Prénoms</th>
<th width="25px">Commune</th>
<th width="25px">CP
<th width="20px">Pays</th>
<th width="20px">Nom du père</th>
<th width="25px">Prénoms du père</th>
<th width="20px">Nom de la mère</th>
<th width="20px">Prénom de la mère</th>
<th width="20px">Nom du Conjoint</th>
<th width="20px">Prénom du conjoint</th>
<th width="20px">Télécharger</th>
</tr>
<?php
$count = $req->FETCH();
if ($count > "0")
{
while ($row = $req->FETCH())
{
echo '<tr>';
echo '<td>' .$row['typeActe']; '</td>';
echo '<td>' .$row['dateActe']; '</td>';
echo '<td>' .$row['nom']; '</td>';
echo '<td>' .$row['prenom']; '</td>';
echo '<td>' .$row['commune']; '</td>';
echo '<td>' .$row['CP']; '</td>';
echo '<td>' .$row['pays']; '</td>';
echo '<td>' .$row['nomPere']; '</td>';
echo '<td>' .$row['prenomPere']; '</td>';
echo '<td>' .$row['nomMere']; '</td>';
echo '<td>' .$row['prenomMere']; '</td>';
echo '<td>' .$row['nomConjoint']; '</td>';
echo '<td>' .$row['prenomConjoint']; '</td>';
echo '<td>' .$row['photoActe']; '</td>';
echo '</tr>';
}
}
else
{
echo '<p><strong style="font-family:verdana; font-size: 1em; color: red">Le patronyme recherché ne figure
pas dans les listes déposées par nos adhérents.<br />
Dans le cas où il contient une lettre accentuée, essayez avec et sans accent.</strong></p>';
}
$req->closeCursor();
?>
</table>
Merci de votre aide
Christian
Je trtavaille sur un projet de base généalogique à mettre en ligne avec php et mysql.
J'ai une requête qui sélectionne les entrées de ma table sur le nom de l'individu, qui fonctionne apparemment, sauf qu'à l'affichage, il manque la première ligne. je bataille là-dessus depuis hier!
Quelqu'un pourrait-il m'aider?
Voici mon code:
<?php
htmlspecialchars($_POST['saisieNom']);
$_GET=$_POST;
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=chrisvia', 'root', '', $pdo_options);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$req = $bdd->prepare('SELECT * FROM actes WHERE nom = :nom');
$req->execute(array('nom' => $_GET['saisieNom'])) or die(print_r($req->errorInfo()));
?>
<table style="width:100%";>
<tr>
<th width="10px">Acte</th>
<th width="50px">Date</th>
<th width="20px">Nom</th>
<th width="25px">Prénoms</th>
<th width="25px">Commune</th>
<th width="25px">CP
<th width="20px">Pays</th>
<th width="20px">Nom du père</th>
<th width="25px">Prénoms du père</th>
<th width="20px">Nom de la mère</th>
<th width="20px">Prénom de la mère</th>
<th width="20px">Nom du Conjoint</th>
<th width="20px">Prénom du conjoint</th>
<th width="20px">Télécharger</th>
</tr>
<?php
$count = $req->FETCH();
if ($count > "0")
{
while ($row = $req->FETCH())
{
echo '<tr>';
echo '<td>' .$row['typeActe']; '</td>';
echo '<td>' .$row['dateActe']; '</td>';
echo '<td>' .$row['nom']; '</td>';
echo '<td>' .$row['prenom']; '</td>';
echo '<td>' .$row['commune']; '</td>';
echo '<td>' .$row['CP']; '</td>';
echo '<td>' .$row['pays']; '</td>';
echo '<td>' .$row['nomPere']; '</td>';
echo '<td>' .$row['prenomPere']; '</td>';
echo '<td>' .$row['nomMere']; '</td>';
echo '<td>' .$row['prenomMere']; '</td>';
echo '<td>' .$row['nomConjoint']; '</td>';
echo '<td>' .$row['prenomConjoint']; '</td>';
echo '<td>' .$row['photoActe']; '</td>';
echo '</tr>';
}
}
else
{
echo '<p><strong style="font-family:verdana; font-size: 1em; color: red">Le patronyme recherché ne figure
pas dans les listes déposées par nos adhérents.<br />
Dans le cas où il contient une lettre accentuée, essayez avec et sans accent.</strong></p>';
}
$req->closeCursor();
?>
</table>
Merci de votre aide
Christian
A voir également:
- La requete n'affiche pas la premièreligne
- Le clavier de mon telephone ne s'affiche plus - Guide
- Ma clé usb ne s'affiche pas - Guide
- Afficher la corbeille sur le bureau - Guide
- Freebox n'affiche plus l'heure mais fonctionne - Forum Freebox
- Ma free n'affiche plus l'heure ! - Forum Freebox
4 réponses
heu!!!!!
Effectivement, je n'avais pas lu jusqu'au bout!
Le script fonctionne bien maintenant.
Merci de ton aide, le père!
Christian
Effectivement, je n'avais pas lu jusqu'au bout!
Le script fonctionne bien maintenant.
Merci de ton aide, le père!
Christian
Je pense que ton problème vient de :
et regarde ici :
https://www.php.net/manual/fr/function.mysql-fetch-object.php
pour modifier ta boucle
if ($count > "0")
et regarde ici :
https://www.php.net/manual/fr/function.mysql-fetch-object.php
pour modifier ta boucle
Bonjour
Quand tu fais $count = $req->FETCH(); tu lis la première ligne, mais tu ne l'affiche pas. De plus, le résultat obtenu n'est pas un nombre, donc tu ne peux pas faire if ($count > "0")
Quand tu fais $count = $req->FETCH(); tu lis la première ligne, mais tu ne l'affiche pas. De plus, le résultat obtenu n'est pas un nombre, donc tu ne peux pas faire if ($count > "0")
<?php
$row = $req->FETCH(); // essaye de lire la 1ère ligne de résultat
if ($row) // teste s'il y a au moins une réponse
{
while ($row)
{
echo '<tr>';
echo '<td>' .$row['typeActe']; '</td>';
...
echo '<td>' .$row['prenomConjoint']; '</td>';
echo '<td>' .$row['photoActe']; '</td>';
echo '</tr>';
$row = $req->FETCH(); // lit la ligne suivante
}
}
else ...