query mysqli prepared statements

alessandromonti

Utente Attivo
25 Mar 2012
62
0
0
salve,
ho codesta query msqli prepared statements su db con tabella catalogo e campi autore titolo editore anno euro:
PHP:
if (isset($_POST['keywords'])){	
	
    $keywords = $_POST['keywords'];
    $pattern = "/[\s]+/"; 
    $replacement = " ";
    $keywords = trim(preg_replace($pattern, $replacement, $keywords));	
    $db_connenct = new mysqli($dbHost, $dbUser, $dbPass, $dbName);
    if($db_connenct->connect_errno > 0){
    die('Unable to connect to database [' . $db_connenct->connect_error . ']');	
     }else{	
	 if($stmt = $db_connenct->prepare("SELECT catalogo.autore, catalogo.titolo, catalogo.editore, catalogo.anno, catalogo.euro FROM catalogo WHERE catalogo.autore LIKE ? OR catalogo.titolo LIKE ? ORDER BY anno DESC")){	
	 
	      $stmt->bind_param('ss', $key, $key2);
	      $key = $keywords;	
	      $key2 = $keywords;	
	      $stmt -> execute();
	      $stmt->store_result();  
              $numrows = $stmt->num_rows;			 
	      $stmt -> bind_result($autore, $titolo, $editore, $anno, $euro);
	 }else{
	      printf("Prepared Statement Error: %s\n", $db_connenct->error);
     	 }
    }	
}

poi in html stampo esito

HTML:
<body>
<?php
if($numrows > 0){  ?>
   
<table border="0"  cellspacing="0"     id="table-risultati">

     <?php while($stmt->fetch()) {  ?>
 
 <tbody>
        <tr>
          <td><img src="<?php echo $immagine; ?>" alt="la copertina del libro" width="30" height="50" /></td>
          
          <td><div class="dettaglio"><?php  $autore; ?></div></td>
          <td><div class="font-titolo"><?php echo  $titolo; ?></div></td>
          <td><div class="font-editore"><?php  echo  $editore; ?></div></td>
           <td><div class="font-novità"><?php echo $anno; ?></div></td>
          <td><div class="font-euro"><?php echo $euro; ?></div></td>
          <td><div class="dettaglio-novità-scheda"><a href="catalogo.php?recordID=<?php echo $id; ?>">scheda</a></div></td>
        </tr>
      </tbody>
   
<?php }
$stmt->close();
$db_connenct->close();	
}else{

    echo 'nessun risultato';
}
?>
</table>
</body>

..funziona solo se inserisco nome e cognome come è nel DB (es alberto savinio)..se cerco per nome o per cognome lo script non dà alcun risultato..il titolo lo devo inserire tutto...insomma funziona come un = ...come fare per permettere una riceca solo per nome o cognome o parte del titolo ?
grazie
 

Discussioni simili