Problème création annuaire

Tutti -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai un problème avec mon code php. Je voudrais effectuer une recherche sur la partie annuaire de mon site ( cela correspond à tous les adhérents) mais cela ne m'affiche :
Parse error: syntax error, unexpected '}' in document.parser.class.inc.php(777) : eval()'d code on line 91 ( et pourtant je n'ai aucune parenthèse '}' à la ligne de mon code dans document.parser.php)

Voila mon code : ( en gros je renvois la requète ( nom, la région et le style musical) ( je ne vois pas ou est l'erreur ? )

merci d'avance,

<?php
echo '<div class="carnet-adresses">';

/* recup les vals */
/*
if(isset($_POST['nom'])) { $nom = $_POST['nom']; }
if(isset($_POST['dept'])) { $dept = $_POST['dept']; }
if(isset($_POST['type'])) { $type = $_POST['type']; } else { $type = 'tous'; }
if(isset($_POST['style'])) { $style = $_POST['style']; }
/**/

$depts=array();
$types =array();
$styles =array();

if(isset($_POST['nom'])) { $nom = $_POST['nom']; }
if(isset($_POST['dept'])) { $depts = $_POST['dept']; }
if(isset($_POST['type'])) { $types = $_POST['type']; } else { $type = 'tous'; }
if(isset($_POST['style'])) { $styles = $_POST['style']; }

$nom = str_replace("é","é",$nom);
$nom = str_replace("è","è",$nom);
$nom = str_replace("à","à",$nom);

if($nom!='') { $needNom = ' and nom like "%'.$nom.'%" '; } else { $needNom=''; }

$needDept='';
$needType='';

if( !empty($depts) && !in_array("tous",$depts) ){
foreach($depts as $dept){
$needDept .= ($needDept =="")? " AND ( " : " OR ";
$needDept .= " departement='".$dept."' ";
}
$needDept .=" ) ";
}

if( !empty($types) && !in_array("tous",$types) ){
foreach($types as $type){
$needType .= ($needType =="")? " AND ( " : " OR ";
$needType .= " type = '".$type."' ";
}
$needType .=" ) ";
}

/*
if($dept!='tous') { $needDept = ' and departement="'.$dept.'" '; } else { $needDept=''; }
if($type!='tous') { $needType = ' and type="'.$type.'" '; } else { $needType=''; }
if($style!='tous') { $needStyle = ' and nom="%'.$style.'%" '; } else { $needStyle=''; }
/**/

$where = $needNom.$needDept.$needType;

$l=0;
$query='SELECT * FROM membre where public=1 and actif = 1 and departement < 5 '.$where.' ORDER BY nom asc';
$res = $modx->db->query( $query );
//var_dump($query);

$nb = $modx->db->getRecordCount($res);

for($k=0;$k<$nb;$k++) {
$okreq = '0';
$ok='0';

$row = $modx->db->getRow($res);

$type2=$row['type'];

$needStyle='';
if( !empty($styles) && !in_array("tous",$styles) ){
foreach($styles as $style){
$needStyle .= ($needStyle =="")? " AND ( " : " OR ";
$needStyle .= " style_musical='".$style."' ";
}
$needStyle .=" ) ";
}

if( !in_array("tous",$styles) && $type2!='') {
/* filtre style musical */
$table_details = 'membre_'.$type2;

$selectD = $modx->db->query('select * from '.$table_details);
$colDnb = mysql_num_fields($selectD);
for($i=0; $i<$colDnb; $i++) {
$field_name = mysql_field_name($selectD,$i);
if($field_name=='style_musical') { $okreq='1';}
}

if($okreq=='1') {
if($row['idmembre'] != null && strlen($row['idmembre']) > 0){
echo "plop".$row['idmembre'];
die();
$idm = $row['idmembre'];
//$resMusic = $modx->db->query('select * from '.$table_details.' where IDmembre='.$idm.' and style_musical='.$style);
$queryMusic = 'select * from '.$table_details.' where IDmembre=0'.$idm.$needStyle;
$resMusic = $modx->db->query($queryMusic);
$nbM = mysql_num_rows($resMusic);
} else { $nbM = 0 }
if($nbM!='0') { $ok='1'; } else { $ok='0'; }
}
else {
if($row['idmembre'] != null && strlen($row['idmembre']) > 0){
echo "plop".$row['idmembre'];
die();
$idm = $row['idmembre'];
$resMusic = $modx->db->query('select * from '.$table_details.' where IDmembre=0'.$idm);
$nbM = mysql_num_rows($resMusic);
} else { $nbM = 0 }
if($nbM!='0') { $ok='1'; } else { $ok='0'; }
}

}
else { $ok='1'; }

if($ok=='1' && $nb!=0) {

$idm = $row['idmembre'];
$nom = utf8_encode($row['nom']);
$tel = utf8_encode($row['telephone']);
$ville = utf8_encode($row['ville']);
$email = utf8_encode($row['mail']);
if($row['site']!='') {
$siteweb = 'http://'.utf8_encode($row['site']);
} else { $siteweb=''; }
/* get type fullname */
$getType = $modx->db->query('select * from polca_sous_type_membre_db_name where value="'.$type2.'" ');
$rowgetType = $modx->db->getRow($getType);
$typeId = $rowgetType['internalKey_soustype'];

$getTypeName = $modx->db->query('select * from polca_type_sous_membre where id='.$typeId);
$rowgetTypeName = $modx->db->getRow($getTypeName);
$nameType = utf8_encode($rowgetTypeName['value']);

echo '<div class="col-sm-4"><div class="un_contact">';
if($nom!=NULL) { echo '<a class="manage plus" href="[~188~]&idm='.$idm.'" title="'.utf8_decode($nom).'">Voir</a>'; }
if($nom!=NULL) { echo '<a class="manage nom" href="[~188~]&idm='.$idm.'" title="'.utf8_decode($nom).'">'.ucwords(strtolower(utf8_decode($nom))).'</a>'; }
if($nom!=NULL) { echo '<a class="manage type" href="[~188~]&idm='.$idm.'" title="'.$type2.'">'.$nameType.'</a>'; }
if($ville!=NULL) { echo '<a class="manage ville" href="[~188~]&idm='.$idm.'" title="'.utf8_decode($nom).'"><span></span>'.$ville.'</a>'; }
if($tel!=NULL) { echo '<a class="manage phone" href="[~188~]&idm='.$idm.'" title="'.utf8_decode($nom).'"><span></span>'.$tel.'</a>'; }
echo '<a class="manage mail" href="[~190~]&idm='.$idm.'" title="'.utf8_decode($nom).'"><span></span>Écrire</a>';

if($siteweb!='') { echo '<a href="'.$siteweb.'" title="'.$nom.'" class="siteweb" onclick="window.open(this.href,\'_blank\');return false;"><span></span>Visiter le site</a></div></div>'; }
else { echo '</div></div>'; }

echo '</tr>';
}
}
if($nb==0){ echo '<p id="no_results_p">Aucun résultat de recherche. Élargissez votre requête pour obtenir plus de résultats.</p>'; }
echo '</div>';
?>

5 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, merci d'utiliser les balises de code, et d'indiquer à quelle ligne l'erreur se produit.
    0
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Pour commencer, comme te l'a indiqué Yg_be, il faut correctement utiliser les balises de code
    explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

    Ensuite, tu sembles utiliser l'ancienne extension mysql ... qui est désormais OBSOLETE.
    https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
    Il faut donc réécrire ton code en PDO ou en mysqli.

    Il serait bien également d'utiliser l'écriture ternaire histoire de rendre ton code un peu plus lisible.
    Par exemple;.. à la place de :
    if($nbM!='0') { 
          $ok='1'; 
        } else { 
          $ok='0'; 
        }
    

    écrire :
    $ok = $nbM!='0'  ?  '1' : 0 ;
    


    et lorsque tu as besoin de IF/ELSE .. la bonne présentation du code est la façon suivante (avec les retours à la ligne... et l'indentation )
    if( condition ) {
        //code  si vrai
    }else{
       // code si faux
    }
    


    je t'invite également à lire et à appliquer le contenu de ce lien :
    https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
    0
    1. Tutti
       
      D'accord merci :)
      0
    2. Tutti
       
      Bonjour,

      Voila j'ai modifié le code jordane45. Mon extension php est obsolète mais en faite mon site tourne avec du php 5.3 ( du coup j'aurais voulu trouvé une solution au code ci-dessous en attendant de devoir modifier mon code en PDO).

      ( je pense que l'erreur vient aussi d'un select au niveau de la base de donnée ou d'une variable = genre les variable 1 ou 2).

      merci d'avance,

      
      <?php
      echo '<div class="carnet-adresses">';
      
      /* recup les vals */
      /*
      if(isset($_POST['nom'])) { $nom = $_POST['nom']; }
      if(isset($_POST['dept'])) { $dept = $_POST['dept']; }
      if(isset($_POST['type'])) { $type = $_POST['type']; } else { $type = 'tous'; }
      if(isset($_POST['style'])) { $style = $_POST['style']; }
      /**/
      
      $depts=array();
      $types =array();
      $styles =array();
      
      if(isset($_POST['nom'])) { $nom = $_POST['nom']; }
      if(isset($_POST['dept'])) { $depts = $_POST['dept']; }
      if(isset($_POST['type'])) { $types = $_POST['type']; } else { $type = 'tous'; }
      if(isset($_POST['style'])) { $styles = $_POST['style']; }
      
      
      $nom = str_replace("é","é",$nom);
      $nom = str_replace("è","è",$nom);
      $nom = str_replace("à","à",$nom);
      
      if($nom!='') { 
      
      $needNom = ' and nom like "%'.$nom.'%" '; 
      } 
      
      else { 
      $needNom=''; 
      }
      
      $needDept='';
      $needType='';
      
      if( !empty($depts) && !in_array("tous",$depts) ){
      foreach($depts as $dept){
      $needDept .= ($needDept =="")? " AND ( " : " OR ";
      $needDept .= " departement='".$dept."' ";
      }
      $needDept .=" ) ";
      }
      
      if( !empty($types) && !in_array("tous",$types) ){
      foreach($types as $type){
      $needType .= ($needType =="")? " AND ( " : " OR ";
      $needType .= " type = '".$type."' ";
      }
      $needType .=" ) ";
      }
      
      
      /*
      if($dept!='tous') {
              $needDept = ' and departement="'.$dept.'" ';
       }
      
       else { 
            $needDept='';
       }
      if($type!='tous') { 
          $needType = ' and type="'.$type.'" '; 
      }
       else { 
      $needType='';
       }
      if($style!='tous') { 
      $needStyle = ' and nom="%'.$style.'%" ';
       } 
      else { 
      $needStyle='';
       }
      /**/
      
      
      $where = $needNom.$needDept.$needType;
      
      $l=0;
      $query='SELECT * FROM membre where public=1 and actif = 1 and departement < 5 '.$where.' ORDER BY nom asc';
      $res = $modx->db->query( $query );
      //var_dump($query);
      
      $nb = $modx->db->getRecordCount($res);
      
      for($k=0;$k<$nb;$k++) {
      $okreq = '0';
      $ok='0';
      
      $row = $modx->db->getRow($res);
      
      $type2=$row['type'];
      
      $needStyle='';
      if( !empty($styles) && !in_array("tous",$styles) ){
      foreach($styles as $style){
      $needStyle .= ($needStyle =="")? " AND ( " : " OR ";
      $needStyle .= " style_musical='".$style."' ";
      }
      $needStyle .=" ) ";
      }
      
      if( !in_array("tous",$styles) && $type2!='') {
      /* filtre style musical */
      $table_details = 'membre_'.$type2;
      
      $selectD = $modx->db->query('select * from '.$table_details);
      $colDnb = mysql_num_fields($selectD);
      for($i=0; $i<$colDnb; $i++) {
      $field_name = mysql_field_name($selectD,$i);
      if($field_name=='style_musical') { $okreq='1';}
      }
      
      if($okreq=='1') {
      if($row['idmembre'] != null && strlen($row['idmembre']) > 0){
      echo "plop".$row['idmembre'];
      die();
      $idm = $row['idmembre'];
      //$resMusic = $modx->db->query('select * from '.$table_details.' where IDmembre='.$idm.' and style_musical='.$style);
      $queryMusic = 'select * from '.$table_details.' where IDmembre=0'.$idm.$needStyle;
      $resMusic = $modx->db->query($queryMusic);
      $nbM = mysql_num_rows($resMusic);
      } else { $nbM = 0 }
      $ok = $nbM!='0'  ?  '1' : 0 ;
      else {
      if($row['idmembre'] != null && strlen($row['idmembre']) > 0){
      echo "plop".$row['idmembre'];
      die();
      $idm = $row['idmembre'];
      $resMusic = $modx->db->query('select * from '.$table_details.' where IDmembre=0'.$idm);
      $nbM = mysql_num_rows($resMusic);
      } else { $nbM = 0 }
      $ok = $nbM!='0'  ?  '1' : 0 ;
      
      if($ok=='1' && $nb!=0) {
      
      $idm = $row['idmembre'];
      $nom = utf8_encode($row['nom']);
      $tel = utf8_encode($row['telephone']);
      $ville = utf8_encode($row['ville']);
      $email = utf8_encode($row['mail']);
      if($row['site']!='') {
      $siteweb = 'http://'.utf8_encode($row['site']);
      } else 
      { 
      $siteweb=''; 
      }
      /* get type fullname */
      
      $getType = $modx->db->query('select * from polca_sous_type_membre_db_name where value="'.$type2.'" ');
      $rowgetType = $modx->db->getRow($getType);
      $typeId = $rowgetType['internalKey_soustype'];
      
      $getTypeName = $modx->db->query('select * from polca_type_sous_membre where id='.$typeId);
      $rowgetTypeName = $modx->db->getRow($getTypeName);
      $nameType = utf8_encode($rowgetTypeName['value']);
      
      echo '<div class="col-sm-4"><div class="un_contact">';
      if($nom!=NULL) { echo '<a class="manage plus" href="[~188~]&idm='.$idm.'" title="'.utf8_decode($nom).'">Voir</a>'; }
      if($nom!=NULL) { echo '<a class="manage nom" href="[~188~]&idm='.$idm.'" title="'.utf8_decode($nom).'">'.ucwords(strtolower(utf8_decode($nom))).'</a>'; }
      if($nom!=NULL) { echo '<a class="manage type" href="[~188~]&idm='.$idm.'" title="'.$type2.'">'.$nameType.'</a>'; }
      if($ville!=NULL) { echo '<a class="manage ville" href="[~188~]&idm='.$idm.'" title="'.utf8_decode($nom).'"><span></span>'.$ville.'</a>'; }
      if($tel!=NULL) { echo '<a class="manage phone" href="[~188~]&idm='.$idm.'" title="'.utf8_decode($nom).'"><span></span>'.$tel.'</a>'; }
      echo '<a class="manage mail" href="[~190~]&idm='.$idm.'" title="'.utf8_decode($nom).'"><span></span>Écrire</a>';
      
      if($siteweb!='') 
      { 
           echo '<a href="'.$siteweb.'" title="'.$nom.'" class="siteweb" onclick="window.open(this.href,\'_blank\');return false;"><span></span>Visiter le site</a></div></div>'; 
      }
      else {
          echo '</div></div>'; 
      }
      
      echo '</tr>';
      }
      }
      if($nb==0){ echo '<p id="no_results_p">Aucun résultat de recherche. Élargissez votre requête pour obtenir plus de résultats.</p>'; }
      echo '</div>';
      ?>
      
      
      
      
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Tutti
       
      et maintenant, tout fonctionne?
      0
    4. Tutti > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Non j'ai toujours le même problème.
      0
    5. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      D'où vient ta fonction $modx->db->query ?
      Gères tu les éventuelles erreurs sql ?
      0
  3. Tutti
     
    <?php
    $host = "Mon serveur";
    
    $user = "utilisateur";
    
    $password = "mot de passe";
    
    $bdd = "ma base de donnée";
    
    mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
    
    // on choisit la bonne base
    mysql_select_db($bdd) or die ("Connexion a la base impossible");
    
    $nom = $_POST['nom']; 
    
    echo "
    <html>
    
    <head>
    
    <title>Résultat de la recherche</title>
    
    </head>
    
    <body>";
    
    if (($Mot == "")||($Mot == "%")) {
    // Si aucun mot clé n'a été saisi,
    // le script demande à l'utilisateur
    // de bien vouloir préciser un mot clé
    
    echo "
    Aucun résultat de recherche. Élargissez votre requête pour obtenir plus de résultats.
    <p>";
    
    }
    
    else {
    // On selectionne les enregistrements contenant le mot clé
    
    $query = "SELECT distinct nom FROM membre
    WHERE nom LIKE \"%$nom%\"
    ";
    
    $result = mysql_query($query);
    
    $row = mysql_fetch_row($result);
    
    $Nombre = $row[0];
    
    // Si aucun enregistrement n'est retourné,
    // on affiche un message adéquat
    if ($Nombre == "0") {
    echo "
    <h2>Aucun résultat ne correspond à votre recherche</h2>
    
    <p>
    
    ";
    
    }
    
    // Sinon, on affiche le nombre d'enregistrements correspondant
    // et les résultats eux-mêmes
    else {
    $query = "SELECT distinct nom, titre FROM membre
    WHERE nom LIKE \"%$nom%\"
     ORDER by titre ASC";
    
    $result = mysql_query($query);
    
    // Si un seul enregistrement est trouvé, on affiche un message au singulier
    if ($Nombre == "1") {
    echo "
    <a name=\"#resultat\"><h2>Résultat: Un article trouvé</h2></a>
    
    <p>";
    
    }
    // Dans le cas contraire le message est au pluriel...
    else {
    echo "
    <a name=\"#resultat\"><h2>Résultat: $Nombre articles trouvés</h2></a>
    
    <p>";
    
    }
    while($row = mysql_fetch_row($result))
    {
    echo "
    <p>\n
    <b>$row[2]</b>\n
    <br><a href=\"../$row[0]\">Visualiser l'article</a>\n
    <p>\n
    ";
    
    }
    }
    
    }
    
    // on ferme la base
    mysql_close();
    
    ?>
    
    </body>
    
    </html>
    
    


    J'ai essayé d'adapter mon code en sql. Je n'ai plus de problème d'erreur. Cependant quand je tape un mot ( il m'affiche tous le temps " Aucun résultat ne correspond à votre recherche. ( est ce que j'ai oublié une requète ? )
    PS : j'ai limité mon retour que au nom
    0
  4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Visiblement ... tu n'as pas envie de suivre les consignes qu'on te donne.
    Je t'ai "fortement" invité à lire ET à appliquer le contenu de ce lien : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
    .. mais tu ne sembles pas décidé à le faire...
    Tu as également de grosses lacunes sur l'écriture du code html en plus du code php...

    bref... ton code devrait ressembler à ceci :
    <?php
    $host = "Mon serveur";
    $user = "utilisateur";
    $password = "mot de passe";
    $bdd = "ma base de donnée";
    
    mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible :" .  . mysql_error());
    mysql_select_db($bdd) or die ("Erreur :" . mysql_error());
    
    
    // récupération PROPRE des variables AVANT de les utiliser
    $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; 
    
    if(!$nom){
      $error = "Vous devez rensigner un mot pour la recherche";
    } else {
      // On selectionne les enregistrements contenant le mot clé
        $query = "SELECT distinct nom
                          ,titre
                  FROM membre
                  WHERE nom LIKE '%$nom%' 
                  ORDER BY titre ASC";
    
        $result = mysql_query($query) or die('Requête invalide : ' . mysql_error());
        $Nombre = mysql_num_rows($result);  //Retourne le nombre de lignes d'un résultat MySQL
    
      // Si aucun enregistrement n'est retourné,
      // on affiche un message adéquat
        if ($Nombre == "0") {
          $error =  "<h2>Aucun résultat ne correspond à votre recherche</h2>";
        } 
    ?>
    <html>
      <head>
        <title>Résultat de la recherche</title>
        <meta charset="utf-8">
      </head>
      <body>
        <?php
          if(!empty($error)){
            echo "<p><span class='error'>".$error."</span></p>";
          }else{
            $txtNbResult = ($Nombre==1) ? "Un article trouvé" : "$Nombre articles trouvés " ;
            echo "<p><a name=\"#resultat\"><h2>Résultat: " . $txtNbResult ."</h2></a></p>";
            while($row = mysql_fetch_row($result)) {
              echo "<div id='resultat'><p>
                    <b>".$row['titre']."</b>\n
                    <br><a href=\"../".htmlspecialchars($row['nom'])".\">".htmlspecialchars($row['titre'])."</a>
                    </p>
                   </div>";
            }
          }
       
        // on ferme la base
        mysql_close();  
       ?>
       
      </body>
    </html>
    


    0
    1. Tutti
       
      merci par contre j'ai une erreur unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' à la ligne 43 ?
      0
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > Tutti
       
      et tu as quoi à la ligne 43 ?
      0
    3. Tutti
       
      J'ai ceci

      echo "<p><a name=\"#resultat\"><h2>Résultat: ".$txtNbResult. "</h2></a></p>";
      0
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > Tutti
       
      Tu ne veux toujours pas appliquer les consignes pour poster ton code ??
      Il faut utiliser les BALISES DE CODE !!!
      Grrrrr !!!!

      Mais non.. je ne pense pas que ça soit cette ligne qui pose problème
      Sûrement celle d'avant...
      Au pire, tu peux déjà la remplacer par :
      echo '<p><a name="#resultat"><h2>Résultat: ' . $txtNbResult .  '</h2></a></p>'; 
      
      0
    5. Tutti
       
      Oui tu as raison ça doit venir de la ligne dans deux sous ( j'ai rajouté des points à la variable Nombre mais en vain ...)
      
        $txtNbResult = ($Nombre==1) ? "Un article trouvé" : "".$Nombre." articles trouvés " ;
              echo '<p><a name=\"#resultat\"><h2>Résultat: " . $txtNbResult ."</h2></a></p>';
      
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Tutti
     
    J'ai essayé comme tu m'as dis mais ça marchais pas (c'est pour cela que j'avais laissé comme cela). ( j'ai regardé au niveau de l'encodage et tout est bien en utf 8 sans bom.

    <?php
    $host = "Mon serveur";
    $user = "utilisateur";
    $password = "mot de passe";
    $bdd = "ma base de donnée";
    
    mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible :" .  . mysql_error());
    mysql_select_db($bdd) or die ("Erreur :" . mysql_error());
    
    
    // récupération PROPRE des variables AVANT de les utiliser
    $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; 
    
    if(!$nom){
      $error = "Vous devez rensigner un mot pour la recherche";
    } else {
      // On selectionne les enregistrements contenant le mot clé
        $query = "SELECT distinct nom ? titre
                  FROM membre
                  WHERE nom LIKE '%$nom%' 
                  ORDER BY titre ASC";
    
        $result = mysql_query($query) or die('Requête invalide : ' . mysql_error());
        $Nombre = mysql_num_rows($result);  //Retourne le nombre de lignes d'un résultat MySQL
    
      // Si aucun enregistrement n'est retourné,
      // on affiche un message adéquat
        if ($Nombre == "0") {
          $error =  "<h2>Aucun résultat ne correspond à votre recherche</h2>";
        } 
    ?>
    <html>
      <head>
        <title>Résultat de la recherche</title>
        <meta charset="utf-8">
      </head>
      <body>
        <?php
          if(!empty($error)){
            echo "<p><span class='error'>".$error."</span></p>";
          }else{
            $txtNbResult = ($Nombre==1) ? "Un article trouvé" : "$Nombre articles trouvés " ;
           echo '<p><a name="#resultat"><h2>Résultat: ' . $txtNbResult .  '</h2></a></p>'; 
            while($row = mysql_fetch_row($result)) {
              echo "<div id='resultat'><p>
                    <b>".$row['titre']."</b>\n
                    <br><a href=\"../".htmlspecialchars($row['nom'])".\">".htmlspecialchars($row['titre'])."</a>
                    </p>
                   </div>";
            }
          }
       
        // on ferme la base
        mysql_close();  
       ?>
       
      </body>
    </html>
    
    
    
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Y'a une erreur sur cette ligne :
       <br><a href=\"../".htmlspecialchars($row['nom'])".\">".htmlspecialchars($row['titre'])."</a>
      

      A corriger par :
       <br><a href='../".htmlspecialchars($row['nom']) ."'>".htmlspecialchars($row['titre'])."</a>
      
      0
    2. Tutti > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
       
      merci ça marche mais j'ai un petit problème quand je fais ma recherche ( il m'affiche juste le nombre d'articles trouvés, j'aurais voulu faire une petite mise en page pour les résultats et qui me les affiche aussi ( genre le nom) )
      0
    3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > Tutti
       
      Je viens de voir une erreur dans ton code
      Tu as un point d'interrogation à la place d'une virgule
       $query = "SELECT distinct nom ? titre
                    FROM membre
                    WHERE nom LIKE '%$nom%' 
                    ORDER BY titre ASC";
      

      A remplacer par :
       $query = "SELECT distinct nom , titre
                    FROM membre
                    WHERE nom LIKE '%$nom%' 
                    ORDER BY titre ASC";
      

      C'est étonnant qu'il ne t'ait pas affiché une erreur....
      Car ben.. c'est bien grace à cette requête que tu affiches la liste des résultats trouvés...
      via cette boucle
      while($row = mysql_fetch_row($result)) {
                echo "<div id='resultat'><p>
                      <b>".$row['titre']."</b>\n
                      <br><a href=\"../".htmlspecialchars($row['nom'])".\">".htmlspecialchars($row['titre'])."</a>
                      </p>
                     </div>";
              }
      
      0
    4. tutti > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
       
      J'ai remplacé par une virgule ( et j'ai changé titre par idmembre au 3 emplacements car je n'avais pas de colonne titre) et j'ai le problème suivant quand je tape dans ma requête un mot ( il me reprend ce que j'ai écris dans la barre de recherche ? )
      0
    5. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > tutti
       

      car je n'avais pas de colonne titre)

      Je me suis appuyé sur ce que tu nous avais donné


      il me reprend ce que j'ai écris dans la barre de recherche ?

      Et ;... avec une explication plus claire et détaillée ça donne quoi ?
      0