probleme requete mysql

Eléphant du PHP | 259 Messages

05 mars 2007, 15:12

bonjour
alors j'ai un gros problème

j'essaye de faire une requete sql par php comme ceci
function trouve_site ($indice1,$table1)
{
	global $indice2; $indice2=0;
	include("../config.php");
	while($indice2<$indice1&&$true==0)
		{
		$research = $table1[$indice2];
		$sql1="SELECT site_id FROM wv_sites_visio order by rand() limit 1";
		//$req1= mysql_query($sql1);
		//global $data1; WHERE site_id!='$research'  && user_id!='$user_id' && site_id!='$dernier' 
		$data1 = mysql_fetch_array($sql1);
		if(empty($data1['site_id'])){$true=0;}else{$true=1;}
		$indice2++;
		}
	//verif_user ($data1);
	//return($data1);
}
dans une fonction
ce qui me pose problème c'est $sql1 : la requête qui choisit au hasard une entrée dans la table

a chaque fois cela me met ceci :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\FTP\interem\surf\essai_surf_top_v2.php on line 40
je ne sais pas pourquoi

le bout de code, je l'ai tiré d'ici :
http://www.phpscripts-fr.net/portions/portion.php?id=96

je ne vois pas pourquoi celà ne marche pas

merci d'avance pour votre aide
yann
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 543 Messages

05 mars 2007, 15:19

Tu as bien sur testé sans les // devant $req1 = mysql_query($sql1); ?

Si tu les a bien enlevé, alors remplace la ligne par :
$req1 = mysql_query($sql1) or die(mysql_error());

Tu auras ainsi l'explication de l'erreur dans la requete $sql1.

@+

Eléphant du PHP | 259 Messages

05 mars 2007, 15:22

nan
sa ne marche pas comme sa
sa met toujours
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\FTP\interem\surf\essai_surf_top_v2.php on line 40
je suis très embetté
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Avatar du membre
ViPHP
ViPHP | 3008 Messages

05 mars 2007, 15:47

function trouve_site ($indice1,$table1) 
{ 
    global $indice2; $indice2=0; 
    include("../config.php"); 
    while($indice2<$indice1&&$true==0) 
        { 
        $research = $table1[$indice2]; 
        $sql1="SELECT site_id FROM wv_sites_visio order by rand() limit 1"; 
        $req1= mysql_query($sql1); 
        //global $data1; WHERE site_id!='$research'  && user_id!='$user_id' && site_id!='$dernier'  
        $data1 = mysql_fetch_array($req1); 
        if(empty($data1['site_id'])){$true=0;}else{$true=1;} 
        $indice2++; 
        } 
    //verif_user ($data1); 
    //return($data1); 
} 
Tu t'es trompé dans ton code. Il faut déjà que tu enlèves les // pour le mysql_query, ensuite le mysql_fetch_array prend $ret1 et non$sql1.

Mammouth du PHP | 543 Messages

05 mars 2007, 16:21

A ben ouais forcement, si il prend une chaine dans le fetch_array ^^.
J'étais pas allé voir jusque là dans le code, m'etais arreté au mysql_query.
Bien vu charabia

Eléphant du PHP | 259 Messages

05 mars 2007, 17:56

exact merci
je m'étais tellement embrouillé dans ma page que je n'aivais pas vu celà
j'ai voulut faire directement mysql_query(machin ...)

mais j'ai oublié de le faire
après celà ne marchait encore pas mais j'ai résolut tous les probs
merci
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

05 mars 2007, 18:37

Modération :
yuuzhantar, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.