2009-09-28 9 views
0

Comment puis-je comparer le mot explodé avec mysql varchar en PHP?
Ce code produire ce que je veux, mais il donne aussi cette erreurPHP - Comparer le mot éclaté avec mysql varchar en PHP

veranderenwachtwoordjij
Erreur fatale: Appel à une fonction membre fetch_assoc() sur un objet non ......

$word = "Also, to be safe, change your password regularly... you don't have to be obsessive about it: every three hours or so should be enough. And because erring on the side of caution is always a good idea, fake your own suicide and change your identity at least once a year."; 

$pieces = explode(" ", $word); 

$x = 0; 
while($x < word_count($word)) { // word count function returns int (51) 
    $aPiece = $pieces[$x]; // change $pieces[$x] to 'you' and then it works 
    $result = $conn->query("SELECT * FROM dict WHERE english='$aPiece'"); 

    $z = 0; 
    while($z < $num_result) // $num_result returns amount of rows in database 
    { 
    $row = $result->fetch_assoc(); //error line is here 
    echo stripslashes($row['dutch']); 
    $z++; 
    } 

    $x++; 
} 
+0

Cela fait longtemps que je n'ai pas fait de PHP. Ont-ils déprécié la boucle 'for'? – Johnsyweb

Répondre

0

Je pense que

$row = $result2->fetch_assoc();

devrait être

$row = $result->fetch_assoc();

puisque vous ne semblez avoir aucun résultat $ nulle part.

+1

oups..it est une faute de frappe devrait être $ row = $ result-> fetch_assoc(); – Azam

1

Je suppose que le problème vient du don't dans votre phrase de test: vous avez oublié d'échapper des guillemets avec une fonction comme mysql_real_escape_string.

Par exemple:

$aPiece = mysql_real_escape_string($pieces[$x]); 
$result = $conn->query("SELECT * FROM dict WHERE english='$aPiece'"); 
0

result2 de $ en $ result2-> fetch_assoc(); est pas la variable correcte, il devrait être

$result->fetch_assoc(); 

par la façon dont vous devez supprimer les signes de ponctuation afin de trouver les mots dans votre base de données (je pense) un de vos premières lignes devraient (avant l'explosion) être semblable à ceci:

$words = strtr($words, ',.:!',''); 
+0

il est déjà en place dans la fonction word_count :) – Azam