IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Moteur de recherche ultra simple ?


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut [SQL] Moteur de recherche ultra simple ?
    Bonsoir,

    Ma question est en fait 2 questions:

    1° Comment afficher une liste de films en faisant passer la 1ère lettre du film ? Est-ce possible par SQL svp ?

    2° Est-ce possible de faire un mini moteur de recherche simple à mettre en place avec des capacités limitées ça va sans dire

    J'aurais aimé proposé un début de code ou de SQL mais j'avou ne jamais avoir fais ça donc je ne sais pas du tout comment commencer...

    Quelqu'un peut m'aider svp ?

    Merci d'avance...

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Alors tu peux faire comme ceci si tu as la première lettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT titre, id FROM table_film WHERE titre LIKE talettre%
    C'est purement du sql. et le LIKE talettre% recherche tous les enregistrements commencant par talettre

  3. #3
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Jiraiya42
    1° Comment afficher une liste de films en faisant passer la 1ère lettre du film ? Est-ce possible par SQL svp ?
    La requête suivante te sortira les films dont la première lettre est 'M' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from `films` WHERE `titre` LIKE "M%"
    Ca devrait t'aider à démarrer ? (c'est insensible à la casse)

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Et je rajoute ceci : La clause WHERE

    Qui te donnera des informations supplémentaires sur les possibilités de recherche

  5. #5
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Merci pour les réponses dsl pour le retard dans la réponse mais je me suis apperçu d'un autre petit soucis en me heurtant au problème de moteur de recherche.

    J'ai une base qui devient conséquente et jusqu'à présent je créais des fichiers "films.php" où j'affichais 10 résultats "films2.php" encore 10 "films3.php"... ma base grossi donc ça devient ingérable non ? Il me semblait avoir lu quelque part que l'on pouvait gérer ça autrement, me trompe-je svp ?

  6. #6
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Le plus simple c'est de faire un seul fichier film.php et de faire un système de pages.
    Par exemple dans ta page film.php tu fais un lien sur le mot "suivant" qui pointe vers ta page film.php. Tu passe en paramètre un numéro de page (par exemple le numéro de la page courante que tu stockes dans une variable) incrémenté de 1 et tu mets à jour ta variable page courante. Ensuite tu créées une instruction sql qui tienne compte de ta page en cours (exemple: si page = 2 alors affiche les enregistrement ($page_courante*10) à ($page_courante*10)+10)
    De même avec d'autres liens (page précédente, première page, dernière page).

  7. #7
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par nicoaix
    Le plus simple c'est de faire un seul fichier film.php et de faire un système de pages.
    Par exemple dans ta page film.php tu fais un lien sur le mot "suivant" qui pointe vers ta page film.php. Tu passe en paramètre un numéro de page (par exemple le numéro de la page courante que tu stockes dans une variable) incrémenté de 1 et tu mets à jour ta variable page courante. Ensuite tu créées une instruction sql qui tienne compte de ta page en cours (exemple: si page = 2 alors affiche les enregistrement ($page_courante*10) à ($page_courante*10)+10)
    De même avec d'autres liens (page précédente, première page, dernière page).
    Est-ce que ça ressemblerait à ça svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?PHP
    	// on définit le numéro de la page
    	if(!isset($_GET['page']) || $_GET['page'] < 2)
     		{
     			$page = 1; 
    		}
    	else 
    		{
     			$page = $_GET['page']; 
    		}
     
    	// on définit le nombre de résultats max par page
    	$nombre_resultats = 30;
     
    	// on détermine l'index du 1er resultat que l'on veut (0, 30, 60)
    	$debut = ($page-1)*$nombre_resultats;
     
    	// on effectue la requete
    	$requete = "SELECT SQL_CALC_FOUND_ROWS * FROM films ORDER BY nomfilm DESC LIMIT $debut, $nombre_resultats;";
     
    	// on détermine le nombre d'entrées totales correspondant à la requete
    	$num_rows = mysql_result(mysql_query("SELECT FOUND_ROWS()"), 0);
     
    	// on affiche les 'page précédente' et 'page suivante
    	if($_GET['page'] != 1)	
    		{
     			echo '<a href="films.php?page='.$_GET['page']-1.'">Page précédente</a>';
    		}
    	if($page*$nombre_resultats < $num_rows)
    		{
     			echo '<a href="films.php?page='.$_GET['page']+1.'">Page suivante</a>'; 
    		} 
    ?>
    Mais j'obtiens ce message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in c:\program files\easyphp1-7\www\films\films_a.php on line 91

  8. #8
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Oui ça doit ressembler à ça. A partir de ce principe on a chacun notre manière de programmer... l'essentiel c'est que ça fonctionne ;-)

    C'est laquelle ta ligne 91?

  9. #9
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par nicoaix
    Oui ça doit ressembler à ça. A partir de ce principe on a chacun notre manière de programmer... l'essentiel c'est que ça fonctionne ;-)

    C'est laquelle ta ligne 91?
    Ah oui pardon j'ai oublié,

    Ligne 91
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<a href="films.php?page='.$_GET['page']-1.'">Page précédente</a>';

  10. #10
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    $_GET['page']-1 doit être entre parenthèse. Essaie comme ça:

    <?PHP
    // on définit le numéro de la page
    if(!isset($_GET['page']) || $_GET['page'] < 2)
    {
    $page = 1;
    }
    else
    {
    $page = $_GET['page'];
    }

    // on définit le nombre de résultats max par page
    $nombre_resultats = 30;

    // on détermine l'index du 1er resultat que l'on veut (0, 30, 60)
    $debut = ($page-1)*$nombre_resultats;

    // on effectue la requete
    $requete = "SELECT SQL_CALC_FOUND_ROWS * FROM films ORDER BY nomfilm DESC LIMIT $debut, $nombre_resultats;";

    // on détermine le nombre d'entrées totales correspondant à la requete
    $num_rows = mysql_result(mysql_query("SELECT FOUND_ROWS()"), 0);

    // on affiche les 'page précédente' et 'page suivante
    if($_GET['page'] != 1)
    {
    echo
    '<a href="films.php?page='.($_GET['page']-1).'">Page précédente</a>';
    }
    if(
    $page*$nombre_resultats < $num_rows)
    {
    echo
    '<a href="films.php?page='.($_GET['page']+1).'">Page suivante</a>';
    }
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  11. #11
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par nicoaix
    $_GET['page']-1 doit être entre parenthèse. Essaie comme ça:

    Colorez votre code PHP sur les forums grâce à Developpez.com
    Merci pour ta réponse, je n'ai plus de message d'erreur mais ça m'affiche tous les films, je sais pas comment intégrer ce bout de code dans mon script en entier, quelqu'un peut m'aider svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    <HTML>
    
          <HEAD>
                <TITLE></TITLE>      
                <link href="style.css" rel="stylesheet" type="text/css">
          </HEAD>
          
          <BODY>
          <div class="squelette">
                      <div class="barre">
                            <P align=center><FONT face="Comic Sans MS" size="6" color="white">Gestion des Films</FONT>
                            <form method="post" action="func_recherche.php">
                                  <p align=center><font color="white">Chercher:
                                  <input type="text" name="mot" size="15">
                                  <input type="submit" value="Go !" alt="Lancer la recherche!"></p>
                            </form>
                      </div>
                      <div class="centre">
                            <P align=center><FONT face="Comic Sans MS" size="3" color=#000000>Liste des films</FONT>
                            <TABLE border=1 cellspacing=10>
                                  <?PHP
                                        // on se connecte à MySQL et on sélectionne la base
                                        require ("./connect.php");
                                        mysql_connect (SERVEUR, NOM, PASSE) or die(mysql_error);
                                           mysql_select_db (BASE) or die(mysql_error);
    
                                        // on crée larequete pour remplir tableau (nom, genre, position)
                                        $select = "SELECT * from `films` ORDER BY nomfilm LIMIT 0, 10;";
                                        $sel = mysql_query($select) or die('Erreur SQL !<br>'.$select.'<br>'.mysql_error());
    
                                        // on fait une boucle qui va faire un tour pour chaque enregistrement
                                        while($data = mysql_fetch_assoc($sel))
                                              {
                                                    // on affiche les informations dans un tableau
                                  ?>
                                                    <TR>
                                                          <TD><?PHP echo stripslashes($data['nomfilm']); ?></TD>
                                                          <TD><?PHP echo stripslashes($data['genrefilm']); ?></TD>
                                                          <TD><?PHP echo stripslashes($data['posfilm']); ?></TD>
                                                          <TD><?PHP
                                                                      // on vérifie si le film est emprunté ou non
                                                                      $request = "SELECT nomemp FROM emprunteur e WHERE e.numfilm = '".$data['numfilm']."';";
                                                                      $resultat = mysql_query($request) or die('Erreur SQL !<br>'.$request.'<br>'.mysql_error());
                                                                      if(mysql_num_rows($resultat) === 0)
                                                                            {
                                                                                    echo 'Nom emprunté';
                                                                            }
                                                                      else
                                                                            {
                                                                                  while($ligne = mysql_fetch_assoc($resultat))
                                                                                        {
                                                                                              echo $ligne['nomemp'];
                                                                                        }
                                                                            }
                                                                 ?>
                                                          </TD>
                                                    </TR>            
                                  <?PHP
                                              }
                                              // on ferme la connexion à mysql
                                              mysql_close();
                                  ?>
                            </TABLE>
                            <BR>
                            <?PHP
                                  // on définit le numéro de la page
                                  if(!isset($_GET['page']) || $_GET['page'] < 2)
                                         {
                                               $page = 1; 
                                        }
                                  else 
                                        {
                                               $page = $_GET['page']; 
                                        }
    
                                  // on définit le nombre de résultats max par page
                                  $nombre_resultats = 10;
    
                                  // on détermine l'index du 1er resultat que l'on veut (0, 30, 60)
                                  $debut = ($page-1)*$nombre_resultats;
    
                                  // on effectue la requete
                                  $requete = "SELECT SQL_CALC_FOUND_ROWS * FROM films ORDER BY nomfilm DESC LIMIT $debut, $nombre_resultats;";
    
                                  // on détermine le nombre d'entrées totales correspondant à la requete
                                  $num_rows = mysql_result(mysql_query("SELECT FOUND_ROWS()"), 0);
    
                                  // on affiche les 'page précédente' et 'page suivante
                                  if($_GET['page'] != 1)
                                        {
                                              echo '<a href="films_A.php?page='.($_GET['page']-1).'">Page précédente</a>';
                                        }
                                  if($page*$nombre_resultats < $num_rows)
                                        {
                                              echo '<a href="films_A.php?page='.($_GET['page']+1).'">Page suivante</a>';
                                        } 
                            ?>
                                  <BR>
                      </div>      
                      <div class="colgauche">
                            <div id="navcontainer" align="center">
                                  <ul id="navlist">
                                        <li id="active"><a href="form_ajout_film.php">Ajouter un Film</a></li>
                                        <li><a href="form_maj_film.php">Modifier un Film</a></li>
                                        <li><a href="form_suppression_film.php">Supprimer un Film</a></li>
                                  </ul>
                            </div>
                            <div id="navcontainer" align="center">
                                  <ul id="navlist">      
                                        <li><a href="films_action.php">Action</a></li>
                                        <li id="active"><a href="films_comedie.php">Comédie</a></li>
                                        <li><a href="films_drame.php">Drame</a></li>
                                        <li><a href="films_horreur.php">Horreur</a></li>
                                  </ul>
                            </div>
                      </div>
                </div>      
          </div>
          
          </BODY>
          
    </HTML>Colorez votre code PHP sur les forums grâce à Developpez.com

  12. #12
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    A mon avis il faut que tu remplaces ta requete
    $select = "SELECT * from `films` ORDER BY nomfilm;";
    Par
    $select = "SELECT * from `films` ORDER BY nomfilmLIMIT $debut, $nombre_resultats;";

    Et il faut que tu places ton bloc php dans lequel tu calcules $debut et $nombre_resultats juste avant ta requête SELECT * from `films` ORDER BY nomfilm;

  13. #13
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par nicoaix
    A mon avis il faut que tu remplaces ta requete
    $select = "SELECT * from `films` ORDER BY nomfilm;";
    Par
    $select = "SELECT * from `films` ORDER BY nomfilmLIMIT $debut, $nombre_resultats;";

    Et il faut que tu places ton bloc php dans lequel tu calcules $debut et $nombre_resultats juste avant ta requête SELECT * from `films` ORDER BY nomfilm;
    Le code est intégré par contre il n'y a que "page précédente" qui s'affiche, page suivante ne s'affiche pas donc en gros j'ai une liste de 10 films mais le reste saute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <?PHP
                                        // on se connecte à MySQL et on sélectionne la base
                                        require ("./connect.php");
                                        mysql_connect (SERVEUR, NOM, PASSE) or die(mysql_error);
                                           mysql_select_db (BASE) or die(mysql_error);
                                        
                                        ////////////////////////////////////// MARQUE PAGE ///////////////////////////////////////////////
                                        // on définit le numéro de la page
                                        if(!isset($_GET['page']) || $_GET['page'] < 2)
                                               {
                                                     $page = 1; 
                                              }
                                        else 
                                              {
                                                     $page = $_GET['page']; 
                                              }
    
                                        // on définit le nombre de résultats max par page
                                        $nombre_resultats = 10;
    
                                        // on détermine l'index du 1er resultat que l'on veut (0, 30, 60)
                                        $debut = ($page-1)*$nombre_resultats;
    
                                        // on effectue la requete
                                        $requete = "SELECT SQL_CALC_FOUND_ROWS * FROM films ORDER BY nomfilm DESC LIMIT $debut, $nombre_resultats;";
    
                                        // on détermine le nombre d'entrées totales correspondant à la requete
                                        $num_rows = mysql_result(mysql_query("SELECT FOUND_ROWS()"), 0);
    
                                        // on affiche les 'page précédente' et 'page suivante
                                        if($_GET['page'] != 1)
                                              {
                                                    echo '<a href="films_A.php?page='.($_GET['page']-1).'">Page précédente</a>';
                                              }
                                        if($page*$nombre_resultats < $num_rows)
                                              {
                                                    echo '<a href="films_A.php?page='.($_GET['page']+1).'">Page suivante</a>';
                                              } 
                                        ///////////////////////////////////////////////////////////////////////////////////////////////////
                                        
                                        // on crée larequete pour remplir tableau (nom, genre, position)
                                        $select = "SELECT * from `films` ORDER BY nomfilm LIMIT $debut, $nombre_resultats;";
                                        $sel = mysql_query($select) or die('Erreur SQL !<br>'.$select.'<br>'.mysql_error());
    
                                        // on fait une boucle qui va faire un tour pour chaque enregistrement
                                        while($data = mysql_fetch_assoc($sel))
                                              {
                                                    // on affiche les informations dans un tableau
                                  ?>
                                                    <TR>
                                                          <TD><?PHP echo stripslashes($data['nomfilm']); ?></TD>
                                                          <TD><?PHP echo stripslashes($data['genrefilm']); ?></TD>
                                                          <TD><?PHP echo stripslashes($data['posfilm']); ?></TD>
                                                          <TD><?PHP
                                                                      // on vérifie si le film est emprunté ou non
                                                                      $request = "SELECT nomemp FROM emprunteur e WHERE e.numfilm = '".$data['numfilm']."';";
                                                                      $resultat = mysql_query($request) or die('Erreur SQL !<br>'.$request.'<br>'.mysql_error());
                                                                      if(mysql_num_rows($resultat) === 0)
                                                                            {
                                                                                    echo 'Nom emprunté';
                                                                            }
                                                                      else
                                                                            {
                                                                                  while($ligne = mysql_fetch_assoc($resultat))
                                                                                        {
                                                                                              echo $ligne['nomemp'];
                                                                                        }
                                                                            }
                                                                 ?>
                                                          </TD>
                                                    </TR>            
                                  <?PHP
                                              }
                                              // on ferme la connexion à mysql
                                              mysql_close();
                                  ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  14. #14
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Si tu veux voici ce que j'utilise pour mes pages:
    J'ai 2 fichiers:
    gestion_pages.inc:
    <?PHP
    $pas
    = $_SESSION['pas'];
    $nb_page = $numrow / $pas;
    $reste = $numrow % $pas;
    if(
    $reste > 0){$nb_page = intval(abs($nb_page)) + 1;}
    if(
    $page > $nb_page){
    $page = $nb_page;
    }elseif(
    $page < 1){
    $page = 1;
    }else{
    $pages = 1;
    }
    $debut = ($page * $pas) - $pas;
    if(
    $page == 1){$debut = 0; $fin = $debut + $pas;}else{$fin = $debut + $pas;}
    if(
    $debut >= $numrow){$debut = $numrow - $pas + 1;}
    if(
    $debut < 0){$debut = 0;}
    if(
    $fin >= $numrow){$fin = $numrow;}
    ?>
    Tu peux remplacer $_SESSION['pas'] par la valeur du nombre de lignes affichées par pages que tu veux.
    $numrow correspond au nombre d'enregistrement maximum de la requête.

    Et dans mes fichiers php:

    <?PHP
    ...
    function
    affiche_pages($param,$nb_page,$page){
    $chaine = explode("&", $param);
    while(list(
    $cle,$valeur)=each($chaine)){
    if(
    $cle == 0){
    $chaine_param = $valeur;
    }else{
    $chaine_param .= "&".$valeur;
    }
    }
    if(@
    $page == ''){$page = 1;}
    if(@
    $nb_page == ''){$nb_page = 1;}
    $pgeP1 = $page + 1;
    $pgeM1 = $page - 1;
    echo
    "
    <div align=\"center\">
    <a href=\""
    .$_SERVER['PHP_SELF']."?page=1&".$chaine_param."\"><img src=\"images/premier.gif\" width=\"25\" height=\"10\" border=\"0\"></a>
    <a href=\""
    .$_SERVER['PHP_SELF']."?page=".$pgeM1."&$chaine_param\"><img src=\"images/precedent.gif\" width=\"15\" height=\"10\" border=\"0\"></a>
    page "
    .$page."/".$nb_page."
    <a href=\""
    .$_SERVER['PHP_SELF']."?page=".$pgeP1."&$chaine_param\"><img src=\"images/suivant.gif\" width=\"15\" height=\"10\" border=\"0\"></a>
    <a href=\""
    .$_SERVER['PHP_SELF']."?page=".$nb_page."&$chaine_param\"><img src=\"images/dernier.gif\" width=\"25\" height=\"10\" border=\"0\"></a>
    </div>
    "
    ;
    }

    ...
    @
    $page = $_GET['page'];
    @
    $order = $_GET['order'];
    if(
    $order == '' ){$order = 'id desc';}
    ...
    include(
    "gestion_pages.inc");
    ...
    ?>

    <div align="center"><? $param = "order=$order"; affiche_pages($param,$nb_page,$page); ?></div>

  15. #15
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par nicoaix
    Si tu veux voici ce que j'utilise pour mes pages:
    J'ai 2 fichiers:
    gestion_pages.inc:

    Tu peux remplacer $_SESSION['pas'] par la valeur du nombre de lignes affichées par pages que tu veux.
    $numrow correspond au nombre d'enregistrement maximum de la requête.

    Et dans mes fichiers php:
    Oula merci mais c'est pas le même niveau je crois, je vais essayer d'y comprendre quelque chose si c'est vraiment impossible je resterai sur ma solution pour essayer de la faire marcher

  16. #16
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Voilà mon code final, il fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?PHP
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// on se connecte à MySQL et on sélectionne la base
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;require ("./connect.php");
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;mysql_connect (SERVEUR, NOM, PASSE) or die(mysql_error);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;mysql_select_db (BASE) or die(mysql_error);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;////////////////////////////////////// MARQUE PAGE ///////////////////////////////////////////////
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// on définit le numéro de la page
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(!isset($_GET&#91;'page']) || $_GET&#91;'page'] < 2)
     &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
     &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$page = 1; 
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else 
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
     &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$page = $_GET&#91;'page']; 
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// on définit le nombre de résultats max par page
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$nombre_resultats = 10;
    
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// on détermine l'index du 1er resultat que l'on veut (0, 30, 60)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$debut = ($page-1)*$nombre_resultats;
    
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// on effectue la requete d'affichage des films pour la 1ère page
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$requete = "SELECT SQL_CALC_FOUND_ROWS * FROM films ORDER BY nomfilm DESC LIMIT $debut, $nombre_resultats;";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$req = @mysql_query ($requete);&#160;&#160;&#160;&#160;&#160;&#160; 
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// on récupère le nombre total de films
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$nbtotal = "SELECT * FROM films;";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$nbtot = @mysql_query ($nbtotal);
    
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// on compte le nombre d'entrées totales correspondant à la requete du total des films
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$num_rows = mysql_num_rows($nbtot);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo $num_rows;
    
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// on affiche les 'page précédente' et 'page suivante'
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if($_GET&#91;'page'] != 1)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo '<a href="films_A.php?page='.($_GET&#91;'page']-1).'">Page précédente&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</a>';
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if($page*$nombre_resultats < $num_rows)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo '<a href="films_A.php?page='.($_GET&#91;'page']+1).'">Page suivante</a>';
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} 
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    [/quote]Colorez votre code PHP sur les forums grâce à Developpez.com
    Cependant petite question tout bete, comment faire pour que "page précédente" et "page suivante" ne soit pas collés l'un à l'autre Obligé d'utiliser un pti tableau ou pas obligé svp ?

  17. #17
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    C'est bon j'ai fais avec des <div> simple et ça marche bien reste à m'atteler sur le moteur de recherche maintenant

  18. #18
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(!isset($_GET['page']))
         $page = 1; 
            else 
                $page = (int)$_GET['page']; 
    
    if($page < 1)  $page = 1;
    Ca t'évitera des problèmes... et après dans ton code tu n'utilise plus $_GET['page'] mais $page sinon ça sert strictement à rien de déclarer une variable $page au début de ton script... .. .

    @ tchaOo°

  19. #19
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    J'ai un problème avec mon moteur de recherche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <?php 
    
          [/color]require ("../connect.php");
          mysql_connect (SERVEUR, NOM, PASSE) or die(mysql_error);
          mysql_select_db (BASE) or die(mysql_error); 
    
          $titre = addslashes($_POST['titre']);
    
          // on passe les mots recherchés en minuscules
          $recherche = strtolower($titre);
    
          // on remplace les ' + , :  par des espaces
          $mots = str_replace('+', ' ', trim($recherche));
          $mots = str_replace('\'', ' ', $mots);
          $mots = str_replace(',', ' ', $mots);
          $mots = str_replace(':', ' ', $mots);
    
          // on place les differents mots dans un tableau
          $tab = explode(' ' , $mots);
    
          // on compte le nombre d'éléments du tableau.
          $nb = count($tab);
    
          //on prépare la requête SQL.
          $sql = "SELECT * FROM films WHERE nomfilm like \'%$tab[0]%\' ";
    
          // on boucle pour integrer tous les mots dans la requête
          for($i = 1; $i < $nb; $i++) 
                {
                        $sql .= "$operateur nomfilm like \'%$tab[$i]%\' ";
                }
    
          // on execute la requête SQL.
          $result = @mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());      
          
          while($data = mysql_fetch_assoc($result))
                {
                      // on affiche les informations dans un tableau 
                      echo '<TABLE>'
                            . '<TR>'
                            . '<TD>stripslashes('.$data['nomfilm'].')</TD>'
                            . '<TD>stripslashes('.$data['genrefilm'].')</TD>'
                            . '<TD>stripslashes('.$data['posfilm'].')</TD>'
                            . '</TR>'
                            . '</TABLE>';
                                                    
                      // on vérifie si le film est emprunté ou non
                      $request = "SELECT nomemp FROM emprunteur e WHERE e.numfilm = '".$data['numfilm']."';";
                      $resultat = mysql_query($request) or die('Erreur SQL !<br>'.$request.'<br>'.mysql_error());
                      if(mysql_num_rows($resultat) === 0)
                            {
                                    echo 'Nom emprunté';
                            }
                      else
                            {
                                  while($ligne = mysql_fetch_assoc($resultat))
                                        {
                                              echo $ligne['nomemp'];
                                        }
                            }
                }
    
    ?>
    J'obtiens un message d'erreur que je n'arrive pas à "faire disparaitre":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur de syntaxe près de '\'%ali%\'' à la ligne 1
    Quelqu'un peut m'aider svp ?

    Merci d'avance...

  20. #20
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    wow... c'est un peu le bordel ta requete sql... tu peux pas faire ça comme ça...

    1 tu as des simple quotes échapées pour rien dans ta requète
    2 tu n'echape pas les charactères sensibles avec mysql_real_escape_string() ce qui représente un risque potentiel de sécurité
    3 tu ne peux faire qu'un like sinon il va falloir utiliser les jointures (à vérifier)
    4 ta boucle for génère je ne sais quoi d'autant plus que $operateur est idéfinis

    @ tchaOo°

Discussions similaires

  1. [SQL] moteur de recherche : affichage du nombre de résultats
    Par lachourave dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/02/2008, 14h09
  2. [SQL] moteur de recherche
    Par lachourave dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 19/02/2008, 00h24
  3. [Vba,RecordSet,SQL]Moteur de recherche plus rapide?!
    Par omegabahamut dans le forum Access
    Réponses: 2
    Dernier message: 25/02/2007, 21h18
  4. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 20h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo