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);
?>