2010-12-10 6 views
0

Je veux savoir comment font-ils une requête avec une seule zone de texte dans la page, mais le texte actuel dans la zone de texte peut être utilisé comme paramètre pour la requête. J'utilise actuellement la requête ci-dessous mais je ne pense pas obtenir les résultats escomptés, y a t-il un problème avec ma requête?Requête plus efficace dans mysql

$result1=query_database("SELECT * FROM prod_table WHERE CATEGORY LIKE '$cuts%' OR PRODUCT LIKE '$cuts%' OR P_DESC LIKE '$cuts%' ", "onstor", $link); 

?> 


<?php 

if(mysql_num_rows($result1)==0){ 

}else{ 

Comment faire ce genre de requête mieux.

+1

Quels sont les résultats que vous obtiennent vs qu'est-ce que vous attendant? Pensez aussi à utiliser des binds puisque faire une sous-station variable est très dangereux et buggé. –

+0

Quel résultat obtenez-vous et quel résultat espérez-vous obtenir? –

+0

Je devrais obtenir tous les résultats commençant par 'a' quand je tape 'a'. Mais je pense que je n'en ai qu'un ou deux. –

Répondre

0

utilisation% avant coupe $ et d'échapper à cette requête est bien

$result1=query_database("SELECT * FROM prod_table WHERE CATEGORY LIKE '%$cuts%' OR PRODUCT LIKE '%$cuts%' OR P_DESC LIKE '%$cuts%' ", "onstor", $link); 
1

si query_database n'est pas défini par vous

mysql_query("SELECT * FROM prod_table WHERE CATEGORY LIKE '$cuts%' OR PRODUCT LIKE '$cuts%' OR P_DESC LIKE '$cuts%' ", "onstor", $link); 
+0

J'ai défini query_database sur le fichier de connexion. –

0

Ajouter des index pour chacun des 3 champs, CATÉGORIE, PRODUIT, P_DESC et il faut beaucoup plus vite.

Etes-vous sûr que LIKE '$ cuts%' est correct. Je crois que cela devrait ressembler à '% $ cuts%'. De la manière que vous avez writtenn ne trouve que les produits Wich commencent par la valeur des coupes de $

Questions connexes