ARRAY & Requete sql.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ARRAY & Requete sql.

Re: ARRAY & Requete sql.

par damien_55 » 22 nov. 2011, 23:03

Je crois avoir trouver. La variable $content['mots_clefs'] était défini plus loin dans mon script en fait je l'ai défini avant et là ça marche. :wink: La variable s'affiche bien dans la requete.

merci à vous

Re: ARRAY & Requete sql.

par damien_55 » 22 nov. 2011, 22:55

Le var_dump de la variable me donne:

array(2) { [0]=> string(9) "genetique" [1]=> string(12) "reproduction" }

Re: ARRAY & Requete sql.

par xTG » 22 nov. 2011, 22:50

Déjà... stripslashes() c'est loin d'être mysql_real_escape_string() ;)
S'il existe une fonction faite pour le driver c'est pas pour rien.

Ensuite il semblerai que tout simplement ta variable soit vide. Ou bien que cet index n'existe pas et que ton niveau d'erreur n'est pas réglé pour t'afficher le warning.
Fais un var_dump() de cette variable.

Re: ARRAY & Requete sql.

par damien_55 » 22 nov. 2011, 21:53

echo de la requete m'a donné:

Code : Tout sélectionner

SELECT id, titre FROM news WHERE titre LIKE '%%' order by rand() limit 20
avec cette requette a la envoyé/
$depeches_relatif = mysql_query("SELECT id, titre FROM news WHERE titre LIKE '%".stripslashes($content['mots_clefs'][0])."%' order by rand() limit 20");
Merci de votre aide.

Re: ARRAY & Requete sql.

par xTG » 22 nov. 2011, 21:15

Non, ce qui nous intéresse c'est la requête SQL : $requete
Et non $relatif qui est le retour de l'exécution de la requête.

Re: ARRAY & Requete sql.

par damien_55 » 22 nov. 2011, 19:42

Que renvoie echo $requete ? On ne te l'a pas demandé pour rien. ^^

ça me donne: Requete = Resource id #14

???

J'ai fait tout ça:

<h4><?php echo "Requete = $depeches_relatif";?></h4> => Requete = Resource id #14

<h4><?php print_r ($content['mots_clefs']);?></h4> => Array ( [0] => genetique [1] => reproduction )

<h4><?php echo ($content['mots_clefs'][0]);?></h4> => genetique

<h4><?php echo ($content['mots_clefs'][1]);?></h4> => reproduction

Je ne comprend pas individuellement, ça marche et dés que je les mets dans la requete ça bug...

Re: ARRAY & Requete sql.

par xTG » 22 nov. 2011, 19:32

Que renvoie echo $requete ? On ne te l'a pas demandé pour rien. ^^
Y-a-t-il une erreur d'affichée sur ta page lors de l'exécution ?

Re: ARRAY & Requete sql.

par damien_55 » 22 nov. 2011, 19:04

Oui, ca vient de ma requette:

J'ai un probleme par la: ....
WHERE titre LIKE '%" .stripslashes($content['mots_clefs'][0])."%' order by rand() limit 20"
:?

Re: ARRAY & Requete sql.

par macgawel » 22 nov. 2011, 18:55

foreach ($content['mots_clefs'] as $mot_cle) {
   $requete = "SELECT id, titre, FROM Adresse WHERE titre LIKE '$mot_cle' order by rand() limit 20";
   echo $requete; // afficher la requête
   $relatif1 = mysql_query($requete) or die ("erreur dans la requete '$requete' :".mysql_error());
   // traitement du retour de la requête
}
Et vu ton problème, tu devrais tester les requêtes générées en les passant dans phpMyAdmin (ou équivalent) :roll:

Re: ARRAY & Requete sql.

par damien_55 » 22 nov. 2011, 18:48

Alors quand, je fais un:

Code : Tout sélectionner

<?php print_r ($content['mots_clefs']);?>
Jai bien mes valeurs: Array ( [0] => genetique [1] => reproduction )

maintenant il faut que je prenne individuellement ces valeurs pour les inclure dans ma requete.

Re: ARRAY & Requete sql.

par damien_55 » 22 nov. 2011, 17:56

Re,

Mon vrai besoin est de passer la requete automatiquement pour chacun des mots_clefs. Mais vu que je n'arrive meme pas a en recuperer un seul dans ma requete. Je ne me suis pas pencher dessus encore.

Re: ARRAY & Requete sql.

par macgawel » 22 nov. 2011, 17:21

Bonjour.

1. Affiche le contenu de ton tableau :
var_dump($content['mots_clefs']);
2. Mets ta requête SQL dans une variable, et profite-en pour l'afficher :
$requete = "SELECT id, titre, FROM Adresse WHERE titre LIKE '%<span style="font-weight: bold">Valeur de mot cle du tableau</span>%' order by rand() limit 20";
echo "Requete = $requete";
$relatif1 = mysql_query($requete) or die ("erreur dans la requete :".mysql_error());
3. Essaye d'éclaircir un peu ton besoin.
Tu veux passer ta requête à partir d'un mot clé, ou tu veux automatiser pour la passer pour chacun ?

Re: ARRAY & Requete sql.

par damien_55 » 22 nov. 2011, 17:00

En fait, j'ai pas compris ta réponse:

J'ai essayé ça:

Code : Tout sélectionner

$relatif1 = mysql_query("SELECT id, titre, FROM Adresse WHERE titre LIKE '%" . mysql_real_escape_string($content['mots_clefs'][0]) . "%' order by rand() limit 20");
Mais ça ne marche pas.

En fait, je n'arrive pas a recuperer la premiere ou deuxieme valeur dans mon tableau.

Re: ARRAY & Requete sql.

par xTG » 22 nov. 2011, 15:41

Par concaténation. ;)
$relatif1 = mysql_query("SELECT id, titre, FROM Adresse WHERE titre LIKE '%" . mysql_real_escape_string($value[0]) . "%' order by rand() limit 20");
Et sans oublier mysql_real_escape_string() pour échapper la variable.

ARRAY & Requete sql.

par damien_55 » 22 nov. 2011, 15:27

Bonjour a tous,

Je cherche a recuperer les variables d'un tableau dans ma requete sql.

Alors j'ai ceci:
$tmp45 = explode(';', stripslashes($page['mots_clefs']));
$content['mots_clefs'] = array();
foreach($tmp45 as $tmp46) {
	if(strlen(trim($tmp46)) > 2) $content['mots_clefs'][] = trim($tmp46);
}
et
$relatif1 = mysql_query("SELECT id, titre, FROM Adresse	WHERE titre LIKE '%[b]Valeur de mot cle du tableau[/b]%' order by rand() limit 20");
En fait, je cherche a mettre a la place de valeur de mot cle du tableau par ma valeur de mon tableau. ex: valeur[1], valeur[2]

Merci de votre aide.