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

Langage PHP Discussion :

PHP MySQL Live Search sur deux colonnes sans succès [PHP 7]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    sans
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Points : 4
    Points
    4
    Par défaut PHP MySQL Live Search sur deux colonnes sans succès
    Bonjour a tous,

    j'ai réussi a créer un champ de recherche 'live' sur ma page principale a l'aide d'un script java, ajax et php pour accéder a ma base de donnes. le script ci dessous fonctionne tres bien lorsque la recherche ce fait une colonne de la base de données mais si je veut rechercher sur deux colonnes , rien ne va plus...

    J,ai donc tenté de declarer la variable $sql = "SELECT * FROM `TABLE 1` WHERE `titrefr` LIKE ?"; EN: $sql = "SELECT * FROM `TABLE 1` WHERE `titrefr` LIKE ? OR `titreor` LIKE ? de façon a rechercher en LIVE sur les deux colonnes de ma base de données";

    Ansi Que mysqli_stmt_bind_param($stmt, "s", $param_term); EN mysqli_stmt_bind_param($stmt, "ss", $param_term);

    le tout sans Success. j'ai bien sur essaye d'autres syntaxes differentes mais rien
    Code d'erreur dans ERROR.log : Number of elements in type definition string doesn't match number of bind variables in /var/www/test.com/public_html/backend-search1.php on line 25

    Le fichier ci-dessous fonctionne parfaitement avec recherche sur un seul champ: comme je l'ai dit plus haut j'ai essaye plusieurs syntaxes differentes, j'espere trouve une ame charitable qui pourra m'aider.



    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
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="ISO-8859-1">
    <title>PHP Live MySQL Database Search</title>
    </head>
     <table border="1" align="center">
    <tr>
       <td>Titre FR</td>
    	<td>Titre Original</td>
    	<td>Resultat(s) Visionner</td>
     
    </tr>
    <?php header('Content-Type: text/html; charset=ISO-8859-15');
    /* Attempt MySQL server connection. Assuming you are running MySQL
    server with default setting (user 'root' with no password) */
    $link = mysqli_connect("localhost", "ff", "", "filmos");
     
    // Check connection
    if($link === false){
        die("ERROR: Could not connect. " . mysqli_connect_error());
    }
     
    if(isset($_REQUEST["term"])){
        // Prepare a select statement
        //$key = $_GET['term'];
        $sql = "SELECT * FROM `TABLE 1` WHERE `titrefr` LIKE ?";-----------------------------------------LIGNE Modifiée pour recherche sur deux champs 
        $parm = "%";
        $param_term = $parm . $_REQUEST["term"] . "%";
        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "s", $param_term);------------------------------------------------------LIGNE 25
            // Set parameters
            //$param_term = $parm . $_REQUEST["term"] . "%";
     
            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                $result = mysqli_stmt_get_result($stmt);
              //$vision = "<a>href={$row['lien']} download>{$row['titrefr']}</a>";
                // Check number of rows in the result set
                if(mysqli_num_rows($result) > 0){
                    // Fetch result rows as an associative array
                    while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
                    	echo 
     
        "<tr>
        <td>{$row['titrefr']}</td>
        <td>{$row['titreor']}</td>
        <td><a href={$row['lien']} download>VISIONNER </a></t  
        </tr>\n";
     
                    }
                } else{
                    echo "<p>Pas de Resultat(s)...</p>";
                }
            } else{
                echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
            }
        }
     
        // Close statement
        mysqli_stmt_close($stmt);
    }
     
    // close connection
    mysqli_close($link);
    ?>

  2. #2
    Candidat au Club
    Homme Profil pro
    sans
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Points : 4
    Points
    4
    Par défaut finalement trouve la solution
    Finalement j,ai trouve la solution , voici le morceau du code change:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = "SELECT * FROM `TABLE 1` WHERE `titrefr` LIKE ? OR `titreor` LIKE ?" ;
        $parm = "%";
        $param_term = $parm . $_REQUEST["term"] . "%";
            if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "ss", $param_term, $param_term);
    dans la dernière ligne ajouter un s et un $param_term

    Cool çà pourra servir peut-être a des novices comme moi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Formule somme sans doublon sur deux colonnes
    Par Light479 dans le forum Excel
    Réponses: 4
    Dernier message: 19/05/2017, 09h35
  2. [XSLT] Mettre sur deux colonnes
    Par tiboel dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/07/2006, 14h38
  3. Afficher des enregistrements sur deux colonnes
    Par Dauphind dans le forum Access
    Réponses: 1
    Dernier message: 22/06/2006, 14h16
  4. [Tableaux] Array sur deux colonnes et foreach..
    Par shadeoner dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2006, 08h46
  5. [CR] Faire un groupe sur deux colonnes, voir mon exemple
    Par Etienne51 dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 08/10/2004, 14h02

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