[Résolu] Requete SQL dont les resultats ne s'affichent pas

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 : [Résolu] Requete SQL dont les resultats ne s'affichent pas

Re: [Résolu] Requete SQL dont les resultats ne s'affichent pas

par yannig » 12 mai 2011, 03:25

De quel lien, Resolu ou PHP ?
Bonne nuit,

Il s'agit du lien sur le petit bouton pour marquer le sujet 'Résolu'

Amitiés

Re: [Résolu] Requete SQL dont les resultats ne s'affichent pas

par ouckileou » 12 mai 2011, 00:46

De quel lien, Resolu ou PHP ?

Re: Code pourri

par yannig » 11 mai 2011, 21:57

Pense aussi a tagguer ton sujet en "Resulu" (il y a un bouton pour ca) et a utiliser les balises
 lors de tes prochains sujets.[/quote]

Re,

En fait il faudrait changer l'élément [b]alt[/b] du lien car il n'est pas explicite.

Amitiés

Re: Code pourri

par yannig » 11 mai 2011, 21:32

N'hesite pas a poster ton code, ca pourrait servir a quelqu'un. Je vais aussi changer le sujet pour quelque chose de plus explicite. Pense aussi a tagguer ton sujet en "Resulu" (il y a un bouton pour ca) et a utiliser les balises
 lors de tes prochains sujets.[/quote]

Bonsoir,

Voici donc les codes qui marchent. :D 
Encore merci pour le temps que tu as passé avec moi.
Le résultat physique est ici [url]http://guignen.voyeaud.org/F/35127_1F1_1851.php?annee=1851[/url]
Je dois encore affiner les 3 pages mais maintenant ce sont des détails. :wink: 

Concernant la mise en Résolu je ne vois pas le bouton dont tu parles. Si tu ne peux le faire dis moi où il est caché je le ferais. :D 
Pour le titre je te laisse faire car tu trouveras sûrement un truc très parlant.

[b][u]Formulaire de recherche[/u][/b]
[php]
<?php
// Récupération des éléments de recherches
$nom=$_REQUEST['nom'];
$prenom=$_REQUEST['prenom'];
$j=$_REQUEST['j'];
$nb_pages=$_REQUEST['nb_pages'];
$ligne_debut=$_REQUEST['$ligne_debut'];
$page=$_REQUEST['page'];
$annee=$_REQUEST['annee'];

 //SELECTION DE LA BASE
mysql_select_db($base,$mysql_id);

//SELECTION DE LA TABLE
$table = '35127_1F1';

//}//CONSTRUCTION DE LA CLAUSE 'WHERE'
if ($nom){ // Si un nom est inscrit dans le formulaire
$where=" WHERE annee='1851' AND nom='".$nom. "'";
   if ($prenom){ // Si le prénom est aussi renseigné
   $where=" WHERE annee='1851' AND nom='".$nom."' AND prenom LIKE '%".$prenom. "%' ";
   }
}
else{ // Les deux champs sont vides
$erreur="<a href=\"35127_1F1_1851_b.php\">Veuillez remplir au moins un champ</a>";
}

//CONSTRUCTION DE LA CLAUSE 'LIMIT'
//Nombre d'enregistrements souhaités par page
$nb_par_page=50;

if (!$page){
   $ligne_debut=0;
}
else{
   $page=$page-1;
   $ligne_debut=$page*$nb_par_page;
}

$limit=" LIMIT ".$ligne_debut.", ".$nb_par_page;

//REQUETE SQL
$qry="SELECT * FROM $table".$where.$limit;
//echo $qry;

//EXECUTION DE LA REQUETE
$result=mysql_query($qry);

$nb_pages=($nb_fiches_max/$nb_par_page);
$nb_pages=ceil($nb_pages);

//CALCUL DU NOMBRE DE PAGES

if (!$nb_pages) { // Si le nb de pages n'a encore jamais été calculé

   if ($nom){ 
      $nb_fiches_max=mysql_num_rows($result);
   }
   else{
      $qry2="SELECT * FROM $table";
      //echo $qry2;
      $result2=mysql_query($qry2);
      $nb_fiches_max=mysql_num_rows($result2);
   }
   $nb_pages=($nb_fiches_max/$nb_par_page);
   $nb_pages=ceil($nb_pages);
}

// MESSAGE AU DESSUS DU TABLEAU
if ($nb_fiches_max > 0){ //S'il y a au moins un résultat
   $page=$page+1;
   $msg= "page ".$page." sur ".$nb_pages." pour ".$nb_fiches_max." enregistrements"; //On affiche le nombre de pages sur le total
}
else{
   $msg="Désolé, aucun enregistrement trouvé !"; //Sinon, on signale qu'il n'y a pas de résultats
}

//DECLARATIONS DES FONCTIONS RIGHT ET LEFT QUI N'EXISTE PAS EN PHP !
function left($chaine,$num) {
return substr($chaine,0,$num);
}

function right($chaine,$num) {
return substr($chaine,-$num);
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Recensement de population Guignen</title>
<meta name="description" content="Recensement de population" />
<meta name="author" content="Yannick VOYEAUD" />
<meta name="keywords" content="Recensements de population, Relevés archives, Guignen" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">

body{
background-color:#EAFFFF;
font-family: Trebuchet MS,Verdana,Geneva,Arial,Helvetica,sans-serif;
}
table.result{
font-family:Arial,sans-serif;
border-collapse:collapse;
border:1px solid #333333;
margin-top:10px;
width:1000px;
}
td.nom {
padding:5px;
width: 150px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.prenom {
padding:5px;
width: 200px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.age  {
padding:5px;
width: 50px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.commune  {
padding:5px;
width: 50px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.village  {
padding:5px;
width: 150px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td {
border:1px solid #333333;
padding:3px;
text-align: left;
}
span.page{
padding-left: 10px;
}
div.pages{
text-align: center;
padding-top: 5px;
}
</style>
</head>

<body>
<h1 style="text-align: center"><font color="#0000FF" face="1550">Recensement de la population</font><br><?php echo $annee ?></h1>
<div class="pages">
<!-- FORMULAIRE -->
<form action= '35127_1F1_1851_a.php' method="post">
<div align="center">
      <table style="border:0px;">
         <td style="border:0px;"><strong>NOM</strong></td>
            <td style="border:0px;"><input type="text" name="nom" value="<?php echo $nom?>"></td>
            <td style="border:0px;"><strong>Prénom</strong></td>
            <td style="border:0px;"><input type="text" name="prenom" value="<?php echo $prenom?>"></td>
            <td style="border:0px;"><input type="submit" name="submit" value="Rechercher"></td>
         </tr>
      </table>
      </div>
  </form>
<!-- FIN FORMULAIRE -->


<?php 
echo $msg."\n"; // On écrit le message au dessus du tableau
?>

<!-- EN-TÊTES DU TABLEAU -->
<div align="center">
<table class="result">
<tr>
<td class="nom">Nom</td>
<td class="prenom">Prénom</td>
<td class="age">Âge</td>
<td class="village">Village</td>
<td class="commune">Numéro logement</td>
</tr>
<!-- FIN EN-TÊTES DU TABLEAU -->

<!-- REMPLISSAGE DU TABLEAU -->
<?php 
while($row=mysql_fetch_object($result)){
echo "<tr style=\"cursor: hand;\" onmouseover=\"this.style.backgroundColor='#6C81B9'\" onmouseout=\"this.style.backgroundColor = ''\" onclick=\"javascript:window.open('pop_35127_1F1.php?id=$id->id&annee=$row->annee&section=$row->section&lieu=$row->lieu&commune=$row->commune&photo=$row->photo','popup','width=1050,height=800,left=0,top=0,toolbar=no,menubar=no,resizable=no,scrollbars=yes');return(false);\">\n";
//TRAITEMENT DES AUTRES CHAMPS
echo "<td>$row->nom</a></td>\n";
echo "<td>$row->prenom</td>\n";
echo "<td>$row->age</td>\n";
echo "<td>$row->lieu</td>\n";
echo "<td>$row->commune</td>\n";
echo "</tr>\n";
}
?>
</table>

<!-- FIN REMPLISSAGE DU TABLEAU -->

<?php  //CECI PEUT ÊTRE EFFACER (CONTRÔLE)
//echo "<br>";
//echo "Nombre d'enregistrements : " .$nb_fiches_max;
//echo "<br>";
//echo "Nombre par page : " .$nb_par_page;
//echo "<br>";
//echo "Nombre de pages : " .$nb_pages;
?>



<!-- LIENS VERS LES AUTRES PAGES -->

<?php 
$i=0;
while ($i <= $nb_pages-1):
   $j=$i+1;
   if ((!$nom) AND (!$prenom)){
      echo "<span class=\"page\"><a href=\"35127_1F1_1851.php?page=".$j."&nb_pages=".$nb_pages."\">".$j."</a></span>\n";
   }
   else if (($nom) AND ($prenom)) {
      echo "<span class=\"page\"><a href=\"35127_1F1_1851.php?page=".$j."&nb_pages=".$nb_pages."&nom=".$nom."&prenom=".$prenom."\">".$j."</a></span>\n";
   }
   else{
      echo "<span class=\"page\"><a href=\"35127_1F1_1851.php?page=".$j."&nb_pages=".$nb_pages."&nom=".$nom."\">".$j."</a></span>\n";
   }
    $i++;
endwhile;
?>
</div>
<!-- FIN LIENS VERS LES AUTRES PAGES -->
Relance en cas de tentative de recherche sans servir le champ NOM
J'ai un peu coupé par rapport au précédent
....
<?php
//CONSTRUCTION DE LA CLAUSE 'WHERE'
if ($nom){ // Si un nom est inscrit dans le formulaire
$where=" WHERE annee='1851' AND nom='".$nom. "'";
   if ($prenom){ // Si le prénom est aussi renseigné
   $where=" WHERE annee='1851' AND nom='".$nom."' AND prenom LIKE '%".$prenom. "%' ";
   }
}
else{ // Les deux champs sont vides
$erreur="<a href=\"35127_1F1_1851_a.php\">Veuillez remplir au moins un champ</a>"; // Réaffiche la page avec le formulaire
}

//CONSTRUCTION DE LA CLAUSE 'LIMIT'
//Nombre d'enregistrements souhaités par page
$nb_par_page=50;

if (!$page){
   $ligne_debut=0;
}
else{
   $page=$page-1;
   $ligne_debut=$page*$nb_par_page;
}

$limit=" LIMIT ".$ligne_debut.", ".$nb_par_page;

//REQUETE SQL
$qry="SELECT * FROM $table".$where.$limit;
//echo $qry;

//EXECUTION DE LA REQUETE
$result=mysql_query($qry);
.....
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Recensement de population Guignen</title>
....
<style type="text/css">

body{
background-color:#EAFFFF;
font-family: Trebuchet MS,Verdana,Geneva,Arial,Helvetica,sans-serif;
}
table.result{
font-family:Arial,sans-serif;
border-collapse:collapse;
border:1px solid #333333;
margin-top:10px;
width:1000px;
}
....
td {
border:1px solid #333333;
padding:3px;
text-align: left;
}
span.page{
padding-left: 10px;
}
div.pages{
text-align: center;
padding-top: 5px;
}
</style>
</head>

<body>
<h1 style="text-align: center"><font color="#0000FF" face="1550">Recensement de la population</font><br><?php echo $annee ?></h1>
<div class="pages">
<!-- FORMULAIRE -->
<form action= '35127_1F1_1851_a.php' method="post">
<div align="center">
      <table style="border:0px;">
         <td style="border:0px;"><strong>NOM</strong></td>
            <td style="border:0px;"><input type="text" name="nom" value="<?php echo $nom?>"></td>
            <td style="border:0px;"><strong>Prénom</strong></td>
            <td style="border:0px;"><input type="text" name="prenom" value="<?php echo $prenom?>"></td>
            <td style="border:0px;"><input type="submit" name="submit" value="Rechercher"></td>
         </tr>
      </table>
      </div>
  </form>
<!-- FIN FORMULAIRE -->


<?php 
echo $msg."\n"; // On écrit le message au dessus du tableau
?>

<!-- EN-TÊTES DU TABLEAU -->
<div align="center">
<table class="result">
<tr>
<td class="nom">Nom</td>
<td class="prenom">Prénom</td>
<td class="age">Âge</td>
<td class="village">Village</td>
<td class="commune">Numéro logement</td>
</tr>
<!-- FIN EN-TÊTES DU TABLEAU -->

<!-- REMPLISSAGE DU TABLEAU -->
<?php 
while($row=mysql_fetch_object($result)){
echo "<tr style=\"cursor: hand;\" onmouseover=\"this.style.backgroundColor='#6C81B9'\" onmouseout=\"this.style.backgroundColor = ''\" onclick=\"javascript:window.open('pop_35127_1F1.php?id=$id->id&annee=$row->annee&section=$row->section&lieu=$row->lieu&commune=$row->commune&photo=$row->photo','popup','width=1050,height=800,left=0,top=0,toolbar=no,menubar=no,resizable=no,scrollbars=yes');return(false);\">\n";
//TRAITEMENT DES AUTRES CHAMPS
echo "<td>$row->nom</a></td>\n";
echo "<td>$row->prenom</td>\n";
echo "<td>$row->age</td>\n";
echo "<td>$row->lieu</td>\n";
echo "<td>$row->commune</td>\n";
echo "</tr>\n";
}
?>
</table>

<!-- FIN REMPLISSAGE DU TABLEAU -->

<!-- LIENS VERS LES AUTRES PAGES -->

<?php 
$i=0;
while ($i <= $nb_pages-1):
   $j=$i+1;
   if ((!$nom) AND (!$prenom)){
      echo "<span class=\"page\"><a href=\"35127_1F1_1851.php?page=".$j."&nb_pages=".$nb_pages."\">".$j."</a></span>\n";
   }
   else if (($nom) AND ($prenom)) {
      echo "<span class=\"page\"><a href=\"35127_1F1_1851.php?page=".$j."&nb_pages=".$nb_pages."&nom=".$nom."&prenom=".$prenom."\">".$j."</a></span>\n";
   }
   else{
      echo "<span class=\"page\"><a href=\"35127_1F1_1851.php?page=".$j."&nb_pages=".$nb_pages."&nom=".$nom."\">".$j."</a></span>\n";
   }
    $i++;
endwhile;
?>
</div>
<!-- FIN LIENS VERS LES AUTRES PAGES -->
Page de résultat finale
<?php
// Récupération des éléments transmis
$id=$_REQUEST['id'];
$annee=$_REQUEST['annee'];
$commune=$_REQUEST['commune'];
$lieu=$_REQUEST['lieu'];
$section=$_REQUEST['section'];
$photo=$_REQUEST['photo'];

//SELECTION DE LA BASE
mysql_select_db($base,$mysql_id);

//SELECTION DE LA TABLE
$table = '35127_1F1';

//REQUETE SQL 
$qry="SELECT * FROM $table WHERE commune='".$commune."' AND annee='".$annee."'";
//echo $qry;

//EXECUTION DE LA REQUETE
//$result=mysql_query($qry);
//mysql_query($qry) or die (mysql_error());
//mysql_query($requeteSQL) or die (mysql_error());

$result=mysql_query($qry);

//echo $result;
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Recensement de population Guignen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">

body{
background-color:#EAFFFF;
font-family: Trebuchet MS,Verdana,Geneva,Arial,Helvetica,sans-serif;
align:center;
}
span.bold{
font-weight: bold;
}
span.center {
	text-align: center;
}
table.result{
font-family:Arial,sans-serif;
border-collapse:collapse;
border:1px solid #333333;
margin-top:10px;
width:1000px;
}
td.nom {
padding:5px;
width: 150px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.prenom {
padding:5px;
width: 200px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.age  {
padding:5px;
width: 50px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.lien  {
padding:5px;
width: 150px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.profession {
padding:5px;
width: 150px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.situation{
font-family:Arial,sans-serif;
border-collapse:collapse;
border:1px solid #333333;
margin-top:10px;
width:150px;
background-color:#087417;
color:#ffffff;
}
td.information {
padding:5px;
width: 150px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td {
border:1px solid #333333;
padding:3px;
text-align: left;
}
</style>
</head>

<body>
<span class="center">
<h1><font color="#0000FF" face="1550">Ensemble des informations sur</font></h1>
<h2>le logement <?php echo "$commune <br />\n
de la section de $section <br />\n  au lieu-dit $lieu";?></h2>
</span>
<div align="center">
<?php echo "<strong>Photo:</strong> $photo";
echo "<br />\n"; //On passe une ligne
echo "<br />\n"; //On passe une ligne
?>
</div>
<!-- EN-TÊTES DU TABLEAU-->
<div align="center">
<table class="result">
<tr>
<td class="nom">Nom</td>
<td class="prenom">Prénom</td>
<td class="age">Âge</td>
<td class="lien">Lien de<br>parenté</td>
<td class="profession">Profession</td>
<td class="situation">Situation<br>maritale</td>
<td class="information">Informations<br>diverses</td>
</tr>
<!-- FIN EN-TÊTES DU TABLEAU -->

<!-- REMPLISSAGE DU TABLEAU -->
<?php 
while($row=mysql_fetch_object($result)){
$Photo=$row->photo;
$Nom=$row->nom;
$Prenom=$row->prenom;
$Age=$row->age;
$Village=$row->lieu;
$Section=$row->section;
$Commune=$row->commune;
$Nu_section=$row->nu_section;
$Nu_village=$row->village;
$Num_maison=$row->maison;
$Profession=$row->profession;
$Lien=$row->lien;
$Situation=$row->situation;
$Notes=$row->observation;
echo "<tr style=\"cursor: hand;\" onmouseover=\"this.style.backgroundColor='#6C81B9'\" onmouseout=\"this.style.backgroundColor = ''\" ;return(false);\">\n";
//TRAITEMENT DES AUTRES CHAMPS
echo "<td>$Nom</a></td>\n";
echo "<td>$Prenom</td>\n";
echo "<td>$Age</td>\n";
echo "<td>$Lien</td>\n";
echo "<td>$Profession</td>\n";
echo "<td>$Situation</td>\n";
echo "<td>$Notes</td>\n";
echo "</tr>\n";
}
?>
</table>
</div>
<!-- FIN REMPLISSAGE DU TABLEAU -->

<?php 
require ("../Pied.inc");
?></body>
</html>

Re: Code pourri

par ouckileou » 11 mai 2011, 20:29

Hier soir, enfin ce matin, je finissais par être trop crevé pour voir mes anomalies.
C'est parfois la meilleure solution : /quit dodo
Et le lendemain comme par miracle, on met le doigt dessus.

N'hesite pas a poster ton code, ca pourrait servir a quelqu'un. Je vais aussi changer le sujet pour quelque chose de plus explicite. Pense aussi a tagguer ton sujet en "Resulu" (il y a un bouton pour ca) et a utiliser les balises
 lors de tes prochains sujets.

Re: Code pourri

par yannig » 11 mai 2011, 19:16

Bonsoir,

C'est fait mon code marche correctement.
Si certains le veulent je peux mettre à disposition le code fonctionnel.

Mazarini
Oui tu as pensé juste mais ce n'est pas le code de commune que j'entre.
En fait il s'agit d'un dépouillement de recensement de population et ce chiffre correspond au rang de l'habitation dans la commune. Je me sers donc de ce champ pour afficher tous les habitants d'un même foyer.
En me servant de ce mode opératoire je pourrais aussi proposer le listage des habitants d'un village.
Je pense que je vais donc valider ces deux nouveaux index

ouckileou
J'avais des erreurs dans les variables.
Merci quand même de ton aide.
Hier soir, enfin ce matin, je finissais par être trop crevé pour voir mes anomalies.
Toutefois j'ai opté pour la solution d'un tableau pour afficher l'ensemble des réponses. Cela évite une grosse prise de tête pour la présentation.
Je m'excuse pour ce midi mais j'ai été obligé de partir rapidement.

Amitiés

--
Yannick

Re: Code pourri

par Mazarini » 11 mai 2011, 15:43

Bonjour,

Le fait d'avoir commune et annee comme index améliorerai le temps d'exécution de ta requête.

Je suis étonné de ton code commune '654', si tu utilises le code INSEE, il faudrai le département devant.

Re: Code pourri

par ouckileou » 11 mai 2011, 15:15

On voit que tu as une erreur : "Query was empty" ce qui est un peu bizarre. Si tu copies-colles le code SQL affiche directement dans phpMyAdmin (est-ce que tu as cet outil?) qu'est-ce que ca donne? Il faudrait en fait valider que ta requete renvoie des resultats, et de bons resultats, avant que tu te prennes la tete avec le PHP.

Re: Code pourri

par yannig » 11 mai 2011, 13:18

Bonjour,

Voici le code tel qu'il est à cet instant donc il annule et remplace les précédents

Code d'appel
<?php 
while($row=mysql_fetch_object($result)){
echo "<tr style=\"cursor: hand;\" onmouseover=\"this.style.backgroundColor='#6C81B9'\" onmouseout=\"this.style.backgroundColor = ''\" onclick=\"javascript:window.open('pop_35127_1F1.php?id=$row->id&annee=$row->annee&commune=$row->commune','popup','width=550,height=800,left=0,top=0,toolbar=no,menubar=no,resizable=no,scrollbars=yes');return(false);\">\n";
//TRAITEMENT DES AUTRES CHAMPS
echo "<td>$row->nom</a></td>\n";
echo "<td>$row->prenom</td>\n";
echo "<td>$row->age</td>\n";
echo "<td>$row->lieu</td>\n";
echo "<td>$row->commune</td>\n";
echo "</tr>\n";
}
?>
Code à exécuter

// Récupération des éléments transmis
$id=$_REQUEST['id'];
$annee=$_REQUEST['annee'];
$commune=$_REQUEST['commune'];

//SELECTION DE LA BASE
mysql_select_db($base,$mysql_id);

//SELECTION DE LA TABLE
$table = '35127_1F1';

//REQUETE SQL 
$qry="SELECT * FROM $table WHERE commune='".$commune."' AND annee='".$annee."'";
echo $qry;

//EXECUTION DE LA REQUETE
//$result=mysql_query($qry);
mysql_query($qry) or die (mysql_error());

$result=mysql_query($qry);
while($row=mysql_fetch_object($result)) {
$Photo=$row->photo;
$Nom=$row->nom;
$Prenom=$row->prenom;
$Age=$row->age;
$Village=$row->lieu;
$Section=$row->section;
$Commune=$row->commune;
$Nu_section=$row->nu_section;
$Nu_village=$row->village;
$Num_maison=$row->maison;
$Profession=$row->profession;
$Lien=$row->lien;
$Situation=$row->situation;
$Notes=$row->observation;
}

echo $result;
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Recensement de population 1851</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
....
</style>
</head>

<body>

<span class="center"><h1>Ensemble des informations sur</h1>
<h2>le logement <?php echo "$Commune <br />\n
Section $Section <br />\n  Lieu-dit $Village";?></h2></span>
<?php echo "Photo: $Photo";
echo "<br />\n"; //On passe une ligne
echo "<br />\n"; //On passe une ligne
?>
<!-- EN-TÊTES DU TABLEAU-->
<table class="result">
<tr>
<td class="nom">Nom</td>
<td class="prenom">Prénom</td>
<td class="age">Âge</td>
<td class="lien">Lien de<br>parenté</td>
<td class="profession">Profession</td>
<td class="situation">Situation<br>maritale</td>
<td class="information">Informations<br>diverses</td>
</tr>
<!-- FIN EN-TÊTES DU TABLEAU -->

<!-- REMPLISSAGE DU TABLEAU -->
<?php 
while($row=mysql_fetch_object($result)){
echo "<tr style=\"cursor: hand;\" onmouseover=\"this.style.backgroundColor='#6C81B9'\" onmouseout=\"this.style.backgroundColor = ''\" ;return(false);\">\n";
//TRAITEMENT DES AUTRES CHAMPS
echo "<td>$Nom</a></td>\n";
echo "<td>$Prenom</td>\n";
echo "<td>$Age</td>\n";
echo "<td>$Lien</td>\n";
echo "<td>$Profession</td>\n";
echo "<td>$Situation</td>\n";
echo "<td>$Notes</td>\n";
echo "</tr>\n";
}
?>
</table>
<!-- FIN REMPLISSAGE DU TABLEAU -->
<?php 
echo "<div style=\"padding-left: 15px;\"><span class=\"bold\">Chef de famille: </span>$Nom $Prenom<br>
     <span class=\"bold\">Âgé de </span>$Age ans<br>
     <span class=\"bold\">Profession: </span>$Profession<br>
     <span class=\"bold\">Situation maritale: </span>$Situation<br>
     <span class=\"bold\">Informations diverses: $Notes</span>
</div>";
?> 
Réponse à ta commande (si elle est bien rédigée)
SELECT * FROM 35127_1F1 WHERE commune='654' AND annee='1851'Resource id #4 
Si je mets exactement ce que tu dis cad mysql_query($requeteSQL) or die (mysql_error());
SELECT * FROM 35127_1F1 WHERE commune='654' AND annee='1851'Query was empty

J'envisage de changer mon fusil d'épaule en générant un tableau avec toutes les entrées sans faire de présentation
Si dans le premier code je vire la référence à l'id et que je maintiens annee et commune normalement je devrais avoir le bon résultat mais ne serait-il pas judicieux que je définisse, dans la base, commune comme index? Actuellement je n'ai que id comme index.

Amitiés et merci d'avance

Re: Code pourri

par ouckileou » 11 mai 2011, 02:34

Non j'ai bien lu tous tes messages, sauf que pour moi il ne servait a rien de creuser avant d'avoir corrige ce probleme de requete. Quand au "RTFM" (j'avais quand meme pris d'ecrire un peu plus que ca...) qu'il ne soit pas parfait c'est fort possible mais qu'il soit "illisible" c'est quand meme un peu fort. Que veux-tu de plus ? Dans le point 1 tu as la fonction qui te permets d'afficher les erreurs MySQL, va voir dans le manuel PHP a quoi cela correspond ! C'est aussi (et surtout) pour toi, si tu sais corriger ces trucs la tout seul tu gagneras bien du temps.

Je ne dis pas que tout cela est evident, mais comme tu n'as pas mis en place ce qui est indique dans le sujet, ni pose de questions pour reussir a le faire, j'en deduis que tu ne l'as pas fait. Si tu ne comprends pas, demande. Si ca peut etre ameliore, propose. Mais ces conseils de debuggage sont le B-A BA du boulot...

Quant a d'autres pistes (en dehors de la requete) je t'en aurais bien donne mais comme tu n'as pas redonne de code je ne sais pas ou tu en es, je ne sais pas si tu as regle ce probleme de commune vide par exemple.

Re: Code pourri

par yannig » 11 mai 2011, 01:51

La requete n'est pas bonne, celle que tu affiches dans tes messages.

Tu n'as pas suivi pas a pas le lien que je t'ai donne, dommage...

Voici ton code :
$result=mysql_query($qry);
Extrait de l'article que je t'ai donne (point numero 1!):
mysql_query($requeteSQL) or die (mysql_error());
Donc si tu avais fait ca, tu aurais surement un message d'erreur disant que tu as une erreur de syntaxe dans ta requete, car :

1. la valeur "commune" est vide
2. l'operateur de comparaison =-> n'existe pas

Tu dis que tu fais souvent du copier/coller, ok on l'a tous fait mais a un moment il va falloir essayer de comprendre car sinon tu vas galerer longtemps comme ca, sur des trucs bidons (exemple parfait dans ce sujet). Fais au moins afficher un max de message d'erreur pour que ca te guide, et ce sera plus facile pour els forumeurs qui t'aideront.

Vu que tu n'as pas fait afficher les messages d'erreurs de MySQL, ce qui est pourtant le conseil numero 1 de l'article, j'en deduis que tu ne las pas lu et c'est bien dommage :(
Re,

Je suis au regret de te décevoir mais j'ai lu le dit document!
Que je n'aie compris tout ce qui était écrit je ne pourrais en disconvenir. Je ne suis pas un pro.

Il me semble que dans les messages suivants je précisais avoir un peu avancé. J'ai rectifié le tir sur certains aspect que tu mentionnes ici
Aurais-tu omis de lire tous mes messages? Je n'ose penser que tu fasses ce que tu me reproches aussi vertement.
Ce qui te semble évident ne l'est pas pour tout le monde!

Cela va faire presque 12:00 que je suis sur ce dossier entre la finalisation des données, les premières ligne de ces pages.
Je vais aller me coucher et je verrais demain si une personne a de bonnes pistes pour m'aider en dehors du rtfm qui ne t'en déplaise est illisible pour un non spécialiste.

Bonne nuit
Merci quand même

Re: Code pourri

par ouckileou » 11 mai 2011, 00:39

La requete n'est pas bonne, celle que tu affiches dans tes messages.

Tu n'as pas suivi pas a pas le lien que je t'ai donne, dommage...

Voici ton code :
$result=mysql_query($qry);
Extrait de l'article que je t'ai donne (point numero 1!):
mysql_query($requeteSQL) or die (mysql_error());
Donc si tu avais fait ca, tu aurais surement un message d'erreur disant que tu as une erreur de syntaxe dans ta requete, car :

1. la valeur "commune" est vide
2. l'operateur de comparaison =-> n'existe pas

Tu dis que tu fais souvent du copier/coller, ok on l'a tous fait mais a un moment il va falloir essayer de comprendre car sinon tu vas galerer longtemps comme ca, sur des trucs bidons (exemple parfait dans ce sujet). Fais au moins afficher un max de message d'erreur pour que ca te guide, et ce sera plus facile pour els forumeurs qui t'aideront.

Vu que tu n'as pas fait afficher les messages d'erreurs de MySQL, ce qui est pourtant le conseil numero 1 de l'article, j'en deduis que tu ne las pas lu et c'est bien dommage :(

Re: Code pourri

par yannig » 10 mai 2011, 23:58

Re,

J'ai un mieux mais ce n'est pas encore cela
J'ai modifié la ligne d'appel dans le premier script par ceci

Code : Tout sélectionner

echo "<tr style=\"cursor: hand;\" onmouseover=\"this.style.backgroundColor='#6C81B9'\" onmouseout=\"this.style.backgroundColor = ''\" onclick=\"javascript:window.open('pop_35127_1F1.php?id=$row->id&annee=$row->annee&commune=$row->commune','popup','width=550,height=800,left=0,top=0,toolbar=no,menubar=no,resizable=no,scrollbars=yes');return(false);\">\n";
Maintenant j'obtiens les informations de l'individu cliqué mais pas les autres habitants de commune

Amitiés

Re: Code pourri

par yannig » 10 mai 2011, 23:43

Re,

J'ai fait des modifs (voir ci-dessous) et voici le nouveau message d'erreur
SELECT * FROM 35127_1F1 WHERE commune='' AND annee='->1851' AND id='352'Resource id #3

Il y a un truc qui me chiffonne c'est le résultat de annee qui me donne un truc non demandé '->' ou alors je suis complètement miro

Amitiés et merci d'avance

Code : Tout sélectionner

//REQUETE SQL $qry="SELECT * FROM $table WHERE commune='".$commune."' AND annee='".$annee."' AND id='".$id."'"; echo $qry; //EXECUTION DE LA REQUETE $result=mysql_query($qry); while($row=mysql_fetch_object($result)) { $Photo=$row->photo; $Nom=$row->nom; $Prenom=$row->prenom; $Age=$row->age; $Village=$row->lieu; $Section=$row->section; $Commune=$row->commune; $Nu_section=$row->nu_section; $Nu_village=$row->village; $Num_maison=$row->maison; $Profession=$row->profession; $Lien=$row->lien; $Situation=$row->situation; $Notes=$row->observation; } echo $result; ?>

Re: Code pourri

par yannig » 10 mai 2011, 23:31

Re,

Tu as bien de la chance de voir mon erreur car cela va faire au moins 5 heures que je cherche.
Je dois reconnaître que je ne suis pas un pro et que je fais souvent du copié/collé de script que je sais marcher.

Si je réduit ma requête à seulement l'id que se passera-t-il? Je n'aurais pas le tri demandé où je ne veux QUE les éléments correspondants à commune de cette id.

Si tu pouvais me donner la solution ce serait sympa car franchement je n'y vois plus rien. Mais aussi avec l'explication de l'erreur pour éviter de la refaire.

Amitiés