[API Google] Erreur pour une recherche

seb306bzh

Nouveau WRInaute
hello everybody :D

j'ai un petit pb avec le web service de google "search"

je veux chercher dans google plusieurs mots clé, j'ai ce code qui recupere la liste des mots clé dans ma base et qui lance la recherche pour chaque

Code:
//on repupere les mots cle pour ce client
	
	$requete = "SELECT mots_cles FROM mots_cle WHERE id_client='$idClient';";
	$result = mysql_query($requete);
	$nbMotsCle = mysql_numrows($result);
	echo ("<br>nbMotsCLe: ".$nbMotsCle);
	
	if($nbMotsCle==0){ //aucun resultats
		echo ("<br><p align=center>Aucun mots cle pour <b>$client</b></p><br>");
	}else{
		//on parcours la liste des mots clé
		$i=0;
		while ($ligne = mysql_fetch_array($result)) {
			$mot=$ligne[$i];
			//lance la recherche sur google
			echo ("<br>lance recherche sur google du mot :".$mot);
			rechercheGoogle($mot,$site);
		 }
	} ?>

et donc pour chaques mots clé cette fonction est appelée:

Code:
function rechercheGoogle ($mots_cle, $nomDomaine){

	// inclusion de la bibliotheque
	include("googleAPI/google-api.php");
	
	// apres inscription sur google, reception d'une cle :
	$cle = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
	
	echo("<br><br>CLE=".$cle."  |  motCle=".$mots_cle."  |   NomDomaine=".$nomDomaine."<br><br>");
	
	// le nb de pages est bloque a 10 par google
	$nb_par_page = 10;
	
	$i=0;
	
	// la requete
	$q = $mots_cle;
	
	// on cree un objet pour utiliser la Google API
	$google = new GoogleApiSearch;
	
	// par defaut on recupere les premiers resultats, mais on peut faire une boucle
	// qui fait varier $start pour recuperer les 1000 premiers resultats
	$start = 0;
	
	// lancement de la requete
	$result = $google->doGoogleSearch($cle, $q, $start);
	
	// on verifie le resultat de la requete
	if ( $result == false ){
		// la requete n'a pas pu fonctionner
		echo "Erreur: limite de 1000 requetes/jours atteinte";
	}else{
		// la requete a reussi, on regarde maintenant le nb de resultats
	
		// nombre estime de resultats
		$nb_res = $result['estimatedTotalResultsCount'];
	
		if ( $nb_res == 0 ){ // aucun resultat
			echo "Aucun resultat.";
		}else{ // il y a des resultats
					$compteurG = 0;
			$trouveG = 0; //le nom de domaine a t il été trouve pour ce mot cle? '0' non, 'n' oui en position n	
			foreach ($result['resultElements'] as $resultat){ 
				//string utf8_decode(string data) : décode la chaîne data , en supposant qu'elle est au
				// format UTF-8 et la convertit au format ISO-8859-1 (sinon les caracteres de types
				// é à ê ... sont mal affichés. Exemple : Présentation de différents...  
				$compteurG++;
				if ( (utf8_decode ($resultat["URL"])) == ($nomDomaine) ){
					$trouveG = $compteurG;
				}else{}
			}
			if($trouveG == 0){
				echo ("Le mot cle <b>".$mots_cle."</b> n'a pas ete trouve sur le moteur <b>Google</b>");
			}else{
				echo ("Le mot cle <b>".$mots_cle."</b> a ete trouve en position <b>".$trouveG."</b> sur le moteur <b>Google</b>");
			}
		} //fin else{ // il y a des resultats
	}//fin else
}//fin rechercheGoogle

et il me renvoi cette erreur :

Warning: in_array(): Wrong datatype for second argument in c:\program files\easyphp1-8\www\seb\3_recherchemotsclebd\googleAPI\google-api.php on line 351
20 fois et que la requete n'a pas fonctionné (car $result == false )

quelqu'un pourrait m'aider ? :cry:

merci :wink:
 

seb306bzh

Nouveau WRInaute
sans1nu.jpg

:wink:
 

haderach

WRInaute impliqué
remplace
while ($ligne = mysql_fetch_array($result)) {
$mot=$ligne;
par

while ($ligne = mysql_fetch_object($result)) {
$mot = $ligne->mots_cles ;
 

Discussions similaires

Haut