Erreur mysql_fetch_array

Bonjour à tous,

Je suis en train d'essayer de valider un site fait à partir du squelette biospip
Le code suivant du squelette :
<meta name="Keywords" content="<BOUCLE_metamots(MOTS){id_article}{", "}>#TITRE</BOUCLE_metamots>, </B_metamots>[(#NOM_SITE_SPIP|supprimer_tags|attribut_html)]
<?php include "./biospip/biophp/motopbio.php"; ?>" />

me donne dans ma page le code suivant :
<meta name="Keywords" content="valsere 2007, Eco2scop &lt;br /&gt; &lt;b&gt;Warning&lt;/b&gt;: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in &lt;b&gt;motopbio.php&lt;/b&gt; on line ;b&gt;27&lt;/b&gt;&lt;br /&gt;" />

Je regarde donc le fichier motopbio.php (cf ci-dessous) dont la ligne 27 est la suivante :
        while( $mot = mysql_fetch_array( $listemots ))

Mais je n'y connais rien en sql et ne sais donc pas quoi faire ici...

Quelqu'un peut-il m'aider ?

Merci

Boby

Le fichier motopbio.php :

<?php
include('./ecrire/inc_version.php');

    include_ecrire("inc_connect.php");
    if ($db_ok) {

// mots exclus de la recherche (NOTA: SPIP elimine déjà les mots de moins de quatre lettres)
$exclus = "'dans', 'pour', 'plus', 'avec', 'sont', 'nôtre', 'vôtre', 'leur', 'leurs', 'cette', 'ceux', 'celles', 'elle', 'nous', 'vous', 'elles', 'mais', 'donc'";
$exclus .= ", 'quel', 'quelle', 'lequel', 'laquelle', 'moins', 'plus', 'sous', 'dessous', 'dessus', 'pour', 'avec', 'sans', 'parce', 'parce'";
$exclus .= ", 'etre', 'suis', 'sommes', 'êtes', 'sont', 'avoir', 'avons', 'avez', 'deux', 'trois', 'quatre', 'cinq', 'sept', 'huit', 'neuf', 'cent', 'mille'";
$exclus .= ", 'entre', 'deja', 'voici', 'sera', 'apres', 'encore', 'alors', 'autres', 'autre', 'puis', 'aussi', 'peut', 'bien', 'meme'";
$exclus .= ", 'tres', 'fait', 'email', 'tous', 'faire', 'comme', 'tout', 'vers', 'etes'";
$exclus .= ", 'site', 'page', 'base', 'php', 'sites', 'ligne', 'article', 'version', 'pouvez'";
$exclus .= ", 'passe', 'voir', 'textes', 'quelques', 'index', 'plusieurs', 'lien', 'chez', 'toutes', 'depuis', 'grace'";
$exclus .= ", 'ainsi', 'soit', 'dont', 'fois', 'faut', 'seul', 'quand', 'haut', 'mise', 'dire', 'pas', 'juste', 'partie', 'allez', 'rien', 'premier', 'titre', 'trait', 'suffit'";
$exclus .= ", 'veut', 'avant', 'ceci', 'toujours', '2002', '2003', '2004', '2005', 'type', 'text', 'petit', 'liens', 'adresse', 'faites', 'message', 'mettre', 'liste', 'voila', 'voulez', 'mail', 'quoi', 'chacun'";
$exclus .= ", 'numero', 'permet', 'genere', 'mieux', 'accueil', 'boucle', 'date', 'ecrire', 'chaque', 'racine', 'ouvre', 'rubrique', 'ecrivez', 'entrez', 'breve'";
// ajoutez ci-dessous vos mots à exclure entre les ''
$exclus .= ", 'http', 'besoin', 'afin', '=http', 'hors', 'egalement', 'mises', 'lors', 'prendre','0', 'n°10', 'precedent', 'suivant', 'presentant', 'comment', 'essai', 'different', 'vraiment', 'doivent', 'album', 'agenda', 'heures', 'rubriques', 'barre', 'livi', 'alter', 'atque', 'vetus', 'poema', 'casino', 'menu', 'accesskey=', 'accesskey', 'menu'
'mot type', 'administrateur', 'nadia', 'zigolupo', 'test', 'salon', 'descriptif', 'rapide', 'spip', 'acces','evenement', 'direct', 'forum', 'raccourcis', 'chapeau', 'xl___', 'concert', 'touches', 'texte', 'inter', 'touche', 'tete', 'sommaire', 'meta', 'partir', 'diaporama', 'photos', 'donnees', 'gallerie', 'fichiers', 'rubrique1', 'salons', 'note', 'post', 'scriptum', 'articles', 'theme', 'nihil', 'poetas'";
// colonne gauche
//echo "bio-squelettes";
$listemots = spip_query("select dico, sum(points) as pts from spip_index_dico, spip_index_articles
where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN($exclus))
GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 ");
        $i = 0;
        while( $mot = mysql_fetch_array( $listemots ))
        {
        $i++;
        echo ", ";
        echo $mot['dico'];
        }

           } else {}
?>

Salut boby,
il faudrait que juste avant $listemots = spip_query( …); tu rajoutes la ligne suivante:
echo "select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dicoIN($exclus)) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 ";
visiblement le message d’erreur indique que la requête n’est pas bonne, il faudrait voir à quel niveau (la table existe bien? les champs aussi? etc…)
@+
Cédric

ceci va t'afficher ta requete dans le navigateur, ensuite essaie de l'executer directement sous mysql ou via phpmyadmin

Boby K a écrit :

Boby K a écrit :

Salut boby,
il faudrait que juste avant $listemots = spip_query( …); tu
rajoutes la ligne suivante:
echo "select dico, sum(points) as pts from spip_index_dico,
spip_index_articles where spip_index_dico.hash =
spip_index_articles.hash AND NOT(dicoIN($exclus)) GROUP BY
spip_index_dico.hash order by pts DESC LIMIT 0,20 ";
visiblement le message d’erreur indique que la requête n’est pas
bonne, il faudrait voir à quel niveau (la table existe bien? les
champs aussi? etc…)
@+
Cédric

ceci va t’afficher ta requete dans le navigateur, ensuite essaie de
l’executer directement sous mysql ou via phpmyadmin

Désolé, je ne comprends pas ces dernières lignes. J’ai rajouté le bout de code, voici ce que ça me donne maintenant :

<!-- meta name -->

<meta name="Keywords"   content="valsere 2007, Eco2scop select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dicoIN('dans', 'pour', 'plus', 'avec', 'sont', 'n�tre', 'v�tre', 'leur', 'leurs', 'cette', 'ceux', 'celles', 'elle', 'nous', 'vous', 'elles', 'mais', 'donc', 'quel', 'quelle', 'lequel', 'laquelle', 'moins', 'plus', 'sous', 'dessous', 'dessus', 'pour', 'avec', 'sans', 'parce', 'parce', 'etre', 'suis', 'sommes', '�tes', 'sont', 'avoir', 'avons', 'avez', 'deux', 'trois', 'quatre', 'cinq', 'sept', 'huit', 'neuf', 'cent', 'mille', 'entre', 'deja', 'voici', 'sera', 'apres', 'encore', 'alors', 'autres', 'autre', 'puis', 'aussi', 'peut', 'bien', 'meme', 'tres', 'fait', 'email', 'tous', 'faire', 'comme', 'tout', 'vers', 'etes', 'site', 'page', 'base', 'php', 'sites', 'ligne', 'article', 'version', 'pouvez', 'passe', 'voir', 'textes', 'quelques', 'index'
, 'plusieurs', 'lien', 'chez', 'toutes', 'depuis', 'grace', 'ainsi', 'soit', 'dont', 'fois', 'faut', 'seul', 'quand', 'haut', 'mise', 'dire', 'pas', 'juste', 'partie', 'allez', 'rien', 'premier', 'titre', 'trait', 'suffit', 'veut', 'avant', 'ceci', 'toujours', '2002', '2003', '2004', '2005', 'type', 'text', 'petit', 'liens', 'adresse', 'faites', 'message', 'mettre', 'liste', 'voila', 'voulez', 'mail', 'quoi', 'chacun', 'numero', 'permet', 'genere', 'mieux', 'accueil', 'boucle', 'date', 'ecrire', 'chaque', 'racine', 'ouvre', 'rubrique', 'ecrivez', 'entrez', 'breve', 'http', 'besoin', 'afin', '=http', 'hors', 'egalement', 'mises', 'lors', 'prendre','0', 'n�10', 'precedent', 'suivant', 'presentant', 'comment', 'essai', 'different', 'vraiment', 'doivent', 'album', 'agenda', 'heures', 'rubriques', 'barre', 'livi', 'alter', 'atque', 'vetus', 'poema', 'casino', 'menu', 'accesskey=', 'accesskey', 'menu'
'mot type',  'administrateur', 'nadia', 'zigolupo', 'test', 'salon', 'descriptif', 'rapide', 'spip', 'acces','evenement', 'direct', 'forum', 'raccourcis', 'chapeau', 'xl___', 'concert', 'touches', 'texte', 'inter', 'touche', 'tete', 'sommaire', 'meta',  'partir', 'diaporama',  'photos', 'donnees', 'gallerie', 'fichiers', 'rubrique1', 'salons',  'note', 'post', 'scriptum', 'articles', 'theme',  'nihil', 'poetas')) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 <br />
<b>Warning</b>:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>motopbio.php</b> on line <b>28</b><br />
" /><meta name="Description" content="Eco2scop" /><link rel="author"href= />  <link rel="chapter" href= title="Nos r&#233;alisations" />   <link rel="section" href= title="Enduits terre" />   <link rel="up"        href=title="Enduits terre" /> <link rel="end"        href= title="Enduits terre sur vo&#251;te" /> <link rel="first"    href= title="Enduits terre sur vo&#251;te" /> 
  
J'ai laissé ci-dessous le code que j'obtenais avant pour comparaison
Que dois-je faire de ce qu'il m'affiche ?

Merci

Boby

<meta name=« Keywords » content=« <BOUCLE_metamots(MOTS){id_article}{ »,
"}>#TITRE</BOUCLE_metamots>,
</B_metamots>[(#NOM_SITE_SPIP|supprimer_tags|attribut_html)]

<?php include "./biospip/biophp/motopbio.php"; ?>" />

me donne dans ma page le code suivant :

Je regarde donc le fichier motopbio.php (cf ci-dessous) dont la ligne
27
est la suivante :
while( $mot = mysql_fetch_array( $listemots ))

Mais je n’y connais rien en sql et ne sais donc pas quoi faire ici…

Quelqu’un peut-il m’aider ?

Merci

Boby

Le fichier motopbio.php :

<?php include('./ecrire/inc_version.php'); include_ecrire("inc_connect.php"); if ($db_ok) { // mots exclus de la recherche (NOTA: SPIP elimine déjà les mots de moins de quatre lettres) $exclus = "'dans', 'pour', 'plus', 'avec', 'sont', 'nôtre', 'vôtre', 'leur', 'leurs', 'cette', 'ceux', 'celles', 'elle', 'nous', 'vous', 'elles', 'mais', 'donc'"; $exclus .= ", 'quel', 'quelle', 'lequel', 'laquelle', 'moins', 'plus', 'sous', 'dessous', 'dessus', 'pour', 'avec', 'sans', 'parce', 'parce'"; $exclus .= ", 'etre', 'suis', 'sommes', 'êtes', 'sont', 'avoir', 'avons', 'avez', 'deux', 'trois', 'quatre', 'cinq', 'sept', 'huit', 'neuf', 'cent', 'mille'"; $exclus .= ", 'entre', 'deja', 'voici', 'sera', 'apres', 'encore', 'alors', 'autres', 'autre', 'puis', 'aussi', 'peut', 'bien', 'meme'"; $exclus .= ", 'tres', 'fait', 'email', 'tous', 'faire', 'comme', 'tout', 'vers', 'etes'"; $exclus .= ", 'site', 'page', 'base', 'php', 'sites', 'ligne', 'article', 'version', 'pouvez'"; $exclus .= ", 'passe', 'voir', 'textes', 'quelques', 'index', 'plusieurs', 'lien', 'chez', 'toutes', 'depuis', 'grace'"; $exclus .= ", 'ainsi', 'soit', 'dont', 'fois', 'faut', 'seul', 'quand', 'haut', 'mise', 'dire', 'pas', 'juste', 'partie', 'allez', 'rien', 'premier', 'titre', 'trait', 'suffit'"; $exclus .= ", 'veut', 'avant', 'ceci', 'toujours', '2002', '2003', '2004', '2005', 'type', 'text', 'petit', 'liens', 'adresse', 'faites', 'message', 'mettre', 'liste', 'voila', 'voulez', 'mail', 'quoi', 'chacun'"; $exclus .= ", 'numero', 'permet', 'genere', 'mieux', 'accueil', 'boucle', 'date', 'ecrire', 'chaque', 'racine', 'ouvre', 'rubrique', 'ecrivez', 'entrez', 'breve'"; // ajoutez ci-dessous vos mots à exclure entre les '' $exclus .= ", 'http', 'besoin', 'afin', '=http', 'hors', 'egalement', 'mises', 'lors', 'prendre','0', 'n°10', 'precedent', 'suivant', 'presentant', 'comment', 'essai', 'different', 'vraiment', 'doivent', 'album', 'agenda', 'heures', 'rubriques', 'barre', 'livi', 'alter', 'atque', 'vetus', 'poema', 'casino', 'menu', 'accesskey=', 'accesskey', 'menu' 'mot type', 'administrateur', 'nadia', 'zigolupo', 'test', 'salon', 'descriptif', 'rapide', 'spip', 'acces','evenement', 'direct', 'forum', 'raccourcis', 'chapeau', 'xl___', 'concert', 'touches', 'texte', 'inter', 'touche', 'tete', 'sommaire', 'meta', 'partir', 'diaporama', 'photos', 'donnees', 'gallerie', 'fichiers', 'rubrique1', 'salons', 'note', 'post', 'scriptum', 'articles', 'theme', 'nihil', 'poetas'"; // colonne gauche //echo "bio-squelettes"; $listemots = spip_query("select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN($exclus)) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 "); $i = 0; while( $mot = mysql_fetch_array( $listemots )) { $i++; echo ", "; echo $mot['dico']; } } else {} > _______________________________________________ liste spip - désabonnement : > Infos et archives : > Documentation de SPIP : > irc://irc.freenode.net/spip > FAQ : > > > > ________________________________________________________________________ > Decouvrez les solutions d'emballages OTOR au salon INTERPACK 2008 > du 24 au 30 avril a Dusseldorf (Allemagne) - HALL 12 Stand B52 > > Suivez l'actualite du Groupe Otor sur nos sites Internet > >

(Petite info pense a rajouter l’email de la newsletter car ca te donnera plus de chance de trouver une solution à ton probleme)
Pour la requete je pense avoir deja vu une erreur, il faut que tu mettes un espace entre dico et IN car sinon il considére que dicoIN est un champ alors que celui-ci ne doit pas exister dans ta table.
@+
Cédric

Bonjour à tous,

Je récapitule mon problème avec un rappel des épisodes précédents :
Le code suivant dans mon squelette :
<meta name=« Keywords »

content=« <BOUCLE_metamots(MOTS){id_article}{ »,
« }>#TITRE</BOUCLE_metamots>,
</B_metamots>[(#NOM_SITE_SPIP|supprimer_tags|attribut_html)] <?php include "./biospip/biophp/motopbio.php"; ?> » />

me renvoie une erreur dans le fichier motopbio.php et produit dans ma page html le code suivant :

<!-- meta name -->

<meta name="Keywords"   content="valsere 2007, Eco2scop <br />
<b>Warning</b>:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>motopbio.php</b> on line <b>27</b><br />
" /><meta name="Description" content="Eco2scop" /><link rel="author"href="http://www.eco2scop.fr/spip.php?page=auteur&amp;id_auteur=2" />  <link rel="chapter" href="http://www.eco2scop.fr/spip.php?rubrique4" title="Nos r&#233;alisations" />   <link rel="section" href="http://www.eco2scop.fr/spip.php?rubrique5" title="Enduits terre" />   <link rel="up"        href="http://www.eco2scop.fr/spip.php?rubrique5"title="Enduits terre" /> <link rel="end"        href="http://www.eco2scop.fr/spip.php?article6" title="Enduits terre sur vo&#251;te" /> <link rel="first"    href="http://www.eco2scop.fr/spip.php?article6" title="Enduits terre sur vo&#251;te" /> 

La ligne 27 est la suivante :

while( $mot = mysql_fetch_array( $listemots ))
(cf tout le code en fin de message)

Cédric m’a conseillé de rajouté ceci juste avant cette ligne :
echo "select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN($exclus)) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 ";

Ce qui produit le code suivant :

!-- meta name -->

<meta name="Keywords"   content="valsere 2007, Eco2scop select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN('dans', 'pour', 'plus', 'avec', 'sont', 'n�tre', 'v�tre', 'leur', 'leurs', 'cette', 'ceux', 'celles', 'elle', 'nous', 'vous', 'elles', 'mais', 'donc', 'quel', 'quelle', 'lequel', 'laquelle', 'moins', 'plus', 'sous', 'dessous', 'dessus', 'pour', 'avec', 'sans', 'parce', 'parce', 'etre', 'suis', 'sommes', '�tes', 'sont', 'avoir', 'avons', 'avez', 'deux', 'trois', 'quatre', 'cinq', 'sept', 'huit', 'neuf', 'cent', 'mille', 'entre', 'deja', 'voici', 'sera', 'apres', 'encore', 'alors', 'autres', 'autre', 'puis', 'aussi', 'peut', 'bien', 'meme', 'tres', 'fait', 'email', 'tous', 'faire', 'comme', 'tout', 'vers', 'etes', 'site', 'page', 'base', 'php', 'sites', 'ligne', 'article', 'version', 'pouvez', 'passe', 'voir', 'textes', 'quelques', 'index', 'plusieurs', 'lien', 'chez', 'toutes', 'depuis', 'grace', 'ainsi', 'soit', 'dont', 'fois', 'faut', 'seul', 'quand', 'haut', 'mise', 'dire', 'pas', 'juste', 'partie', 'allez', 'rien', 'premier', 'titre', 'trait', 'suffit', 'veut', 'avant', 'ceci', 'toujours', '2002', '2003', '2004', '2005', 'type', 'text', 'petit', 'liens', 'adresse', 'faites', 'message', 'mettre', 'liste', 'voila', 'voulez', 'mail', 'quoi', 'chacun', 'numero', 'permet', 'genere', 'mieux', 'accueil', 'boucle', 'date', 'ecrire', 'chaque', 'racine', 'ouvre', 'rubrique', 'ecrivez', 'entrez', 'breve', 'http', 'besoin', 'afin', '=http', 'hors', 'egalement', 'mises', 'lors', 'prendre','0', 'n�10', 'precedent', 'suivant', 'presentant', 'comment', 'essai', 'different', 'vraiment', 'doivent', 'album', 'agenda', 'heures', 'rubriques', 'barre', 'livi', 'alter', 'atque', 'vetus', 'poema', 'casino', 'menu', 'accesskey=', 'accesskey', 'menu'
'mot type',  'administrateur', 'nadia', 'zigolupo', 'test', 'salon', 'descriptif', 'rapide', 'spip', 'acces','evenement', 'direct', 'forum', 'raccourcis', 'chapeau', 'xl___', 'concert', 'touches', 'texte', 'inter', 'touche', 'tete', 'sommaire', 'meta',  'partir', 'diaporama',  'photos', 'donnees', 'gallerie', 'fichiers', 'rubrique1', 'salons',  'note', 'post', 'scriptum', 'articles', 'theme',  'nihil', 'poetas')) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 <br />
<b>Warning</b>:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>motopbio.php</b> on line <b>28</b><br />
" /><meta name="Description" content="Eco2scop" /><link rel="author"href="http://www.eco2scop.fr/spip.php?page=auteur&amp;id_auteur=2" />  <link rel="chapter" href="http://www.eco2scop.fr/spip.php?rubrique4" title="Nos r&#233;alisations" />   <link rel="section" href="http://www.eco2scop.fr/spip.php?rubrique5" title="Enduits terre" />   <link rel="up"        href="http://www.eco2scop.fr/spip.php?rubrique5"title="Enduits terre" /> <link rel="end"        href="http://www.eco2scop.fr/spip.php?article6" title="Enduits terre sur vo&#251;te" /> <link rel="first"    href="http://www.eco2scop.fr/spip.php?article6" title="Enduits terre sur vo&#251;te" /> 

Je n’y connais rien en SQL mais en allant fouiller dans ma base (j’ai trouvé comment sur le site de mon hébergeur), j’ai vérifié les « champs » qui apparaissent dans le code php et ai trouvé :

spip_index_dico

Champ Type Null Défaut Commentaires
hash bigint(20) Non 0
dico varchar(30) Non

Par contre, je n’ai pas trouvé de « spip_index_articles »

Pouvez vous m’aider ?

Merci

Boby

PS : ci dessous le code php complet puis les échanges précédents (résumés ci-dessus)

<?php include('./ecrire/inc_version.php'); include_ecrire("inc_connect.php"); if ($db_ok) { // mots exclus de la recherche (NOTA: SPIP elimine déjà les mots de moins de quatre lettres) $exclus = "'dans', 'pour', 'plus', 'avec', 'sont', 'nôtre', 'vôtre', 'leur', 'leurs', 'cette', 'ceux', 'celles', 'elle', 'nous', 'vous', 'elles', 'mais', 'donc'"; $exclus .= ", 'quel', 'quelle', 'lequel', 'laquelle', 'moins', 'plus', 'sous', 'dessous', 'dessus', 'pour', 'avec', 'sans', 'parce', 'parce'"; $exclus .= ", 'etre', 'suis', 'sommes', 'êtes', 'sont', 'avoir', 'avons', 'avez', 'deux', 'trois', 'quatre', 'cinq', 'sept', 'huit', 'neuf', 'cent', 'mille'"; $exclus .= ", 'entre', 'deja', 'voici', 'sera', 'apres', 'encore', 'alors', 'autres', 'autre', 'puis', 'aussi', 'peut', 'bien', 'meme'"; $exclus .= ", 'tres', 'fait', 'email', 'tous', 'faire', 'comme', 'tout', 'vers', 'etes'"; $exclus .= ", 'site', 'page', 'base', 'php', 'sites', 'ligne', 'article', 'version', 'pouvez'"; $exclus .= ", 'passe', 'voir', 'textes', 'quelques', 'index', 'plusieurs', 'lien', 'chez', 'toutes', 'depuis', 'grace'"; $exclus .= ", 'ainsi', 'soit', 'dont', 'fois', 'faut', 'seul', 'quand', 'haut', 'mise', 'dire', 'pas', 'juste', 'partie', 'allez', 'rien', 'premier', 'titre', 'trait', 'suffit'"; $exclus .= ", 'veut', 'avant', 'ceci', 'toujours', '2002', '2003', '2004', '2005', 'type', 'text', 'petit', 'liens', 'adresse', 'faites', 'message', 'mettre', 'liste', 'voila', 'voulez', 'mail', 'quoi', 'chacun'"; $exclus .= ", 'numero', 'permet', 'genere', 'mieux', 'accueil', 'boucle', 'date', 'ecrire', 'chaque', 'racine', 'ouvre', 'rubrique', 'ecrivez', 'entrez', 'breve'"; // ajoutez ci-dessous vos mots à exclure entre les '' $exclus .= ", 'http', 'besoin', 'afin', '=http', 'hors', 'egalement', 'mises', 'lors', 'prendre','0', 'n°10', 'precedent', 'suivant', 'presentant', 'comment', 'essai', 'different', 'vraiment', 'doivent', 'album', 'agenda', 'heures', 'rubriques', 'barre', 'livi', 'alter', 'atque', 'vetus', 'poema', 'casino', 'menu', 'accesskey=', 'accesskey', 'menu' 'mot type', 'administrateur', 'nadia', 'zigolupo', 'test', 'salon', 'descriptif', 'rapide', 'spip', 'acces','evenement', 'direct', 'forum', 'raccourcis', 'chapeau', 'xl___', 'concert', 'touches', 'texte', 'inter', 'touche', 'tete', 'sommaire', 'meta', 'partir', 'diaporama', 'photos', 'donnees', 'gallerie', 'fichiers', 'rubrique1', 'salons', 'note', 'post', 'scriptum', 'articles', 'theme', 'nihil', 'poetas'"; // colonne gauche //echo "bio-squelettes"; $listemots = spip_query("select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN($exclus)) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 "); $i = 0; echo "select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN($exclus)) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 "; while( $mot = mysql_fetch_array( $listemots )) { $i++; echo ", "; echo $mot['dico']; } } else {} ?>

---- Original Message ----

Boby K a écrit :

Salut boby,
il faudrait que juste avant $listemots = spip_query( …); tu
rajoutes la ligne suivante:
echo "select dico, sum(points) as pts from spip_index_dico,
spip_index_articles where spip_index_dico.hash =
spip_index_articles.hash AND NOT(dicoIN($exclus)) GROUP BY
spip_index_dico.hash order by pts DESC LIMIT 0,20 ";
visiblement le message d’erreur indique que la requête n’est pas
bonne, il faudrait voir à quel niveau (la table existe bien? les
champs aussi? etc…)
@+
Cédric

ceci va t’afficher ta requete dans le navigateur, ensuite essaie de
l’executer directement sous mysql ou via phpmyadmin

Désolé, je ne comprends pas ces dernières lignes. J’ai rajouté le
bout de code, voici ce que ça me donne maintenant :

<link
rel="author"href=« http://www.eco2scop.fr/spip.php?page=auteur&amp;id_auteur=2 »
/> <link rel=« up »
href=« ECO2SCOP terre »
/>

J’ai laissé ci-dessous le code que j’obtenais avant pour comparaison
Que dois-je faire de ce qu’il m’affiche ?
Merci

Boby

<meta name=« Keywords »
content=« <BOUCLE_metamots(MOTS){id_article}{ »,
« }>#TITRE</BOUCLE_metamots>,
</B_metamots>[(#NOM_SITE_SPIP|supprimer_tags|attribut_html)] <?php include "./biospip/biophp/motopbio.php"; ?> » />

me donne dans ma page le code suivant :

Je regarde donc le fichier motopbio.php (cf ci-dessous) dont la ligne
27
est la suivante :
while( $mot = mysql_fetch_array( $listemots ))

Mais je n’y connais rien en sql et ne sais donc pas quoi faire ici…

Quelqu’un peut-il m’aider ?

Merci

Boby

Le fichier motopbio.php :

<?php include('./ecrire/inc_version.php'); include_ecrire("inc_connect.php"); if ($db_ok) { // mots exclus de la recherche (NOTA: SPIP elimine déjà les mots de moins de quatre lettres) $exclus = "'dans', 'pour', 'plus', 'avec', 'sont', 'nôtre', 'vôtre', 'leur', 'leurs', 'cette', 'ceux', 'celles', 'elle', 'nous', 'vous', 'elles', 'mais', 'donc'"; $exclus .= ", 'quel', 'quelle', 'lequel', 'laquelle', 'moins', 'plus', 'sous', 'dessous', 'dessus', 'pour', 'avec', 'sans', 'parce', 'parce'"; $exclus .= ", 'etre', 'suis', 'sommes', 'êtes', 'sont', 'avoir', 'avons', 'avez', 'deux', 'trois', 'quatre', 'cinq', 'sept', 'huit', 'neuf', 'cent', 'mille'"; $exclus .= ", 'entre', 'deja', 'voici', 'sera', 'apres', 'encore', 'alors', 'autres', 'autre', 'puis', 'aussi', 'peut', 'bien', 'meme'"; $exclus .= ", 'tres', 'fait', 'email', 'tous', 'faire', 'comme', 'tout', 'vers', 'etes'"; $exclus .= ", 'site', 'page', 'base', 'php', 'sites', 'ligne', 'article', 'version', 'pouvez'"; $exclus .= ", 'passe', 'voir', 'textes', 'quelques', 'index', 'plusieurs', 'lien', 'chez', 'toutes', 'depuis', 'grace'"; $exclus .= ", 'ainsi', 'soit', 'dont', 'fois', 'faut', 'seul', 'quand', 'haut', 'mise', 'dire', 'pas', 'juste', 'partie', 'allez', 'rien', 'premier', 'titre', 'trait', 'suffit'"; $exclus .= ", 'veut', 'avant', 'ceci', 'toujours', '2002', '2003', '2004', '2005', 'type', 'text', 'petit', 'liens', 'adresse', 'faites', 'message', 'mettre', 'liste', 'voila', 'voulez', 'mail', 'quoi', 'chacun'"; $exclus .= ", 'numero', 'permet', 'genere', 'mieux', 'accueil', 'boucle', 'date', 'ecrire', 'chaque', 'racine', 'ouvre', 'rubrique', 'ecrivez', 'entrez', 'breve'"; // ajoutez ci-dessous vos mots à exclure entre les '' $exclus .= ", 'http', 'besoin', 'afin', '=http', 'hors', 'egalement', 'mises', 'lors', 'prendre','0', 'n°10', 'precedent', 'suivant', 'presentant', 'comment', 'essai', 'different', 'vraiment', 'doivent', 'album', 'agenda', 'heures', 'rubriques', 'barre', 'livi', 'alter', 'atque', 'vetus', 'poema', 'casino', 'menu', 'accesskey=', 'accesskey', 'menu' 'mot type', 'administrateur', 'nadia', 'zigolupo', 'test', 'salon', 'descriptif', 'rapide', 'spip', 'acces','evenement', 'direct', 'forum', 'raccourcis', 'chapeau', 'xl___', 'concert', 'touches', 'texte', 'inter', 'touche', 'tete', 'sommaire', 'meta', 'partir', 'diaporama', 'photos', 'donnees', 'gallerie', 'fichiers', 'rubrique1', 'salons', 'note', 'post', 'scriptum', 'articles', 'theme', 'nihil', 'poetas'"; // colonne gauche //echo "bio-squelettes"; $listemots = spip_query("select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN($exclus)) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 "); $i = 0; while( $mot = mysql_fetch_array( $listemots )) { $i++; echo ", "; echo $mot['dico']; } } else {} > _______________________________________________ liste spip spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives : http://listes.rezo.net/mailman/listinfo/spip Documentation de SPIP : http://www.spip.net/ irc://irc.freenode.net/spip FAQ : http://www.spip.net/fr_article1054.html ________________________________________________________________________ Decouvrez les solutions d'emballages OTOR au salon INTERPACK 2008 du 24 au 30 avril a Dusseldorf (Allemagne) - HALL 12 Stand B52 Suivez l'actualite du Groupe Otor sur nos sites Internet http://www.otor.com http://www.otorsystems.com

(Petite info pense a rajouter l’email de la newsletter car ca te
donnera plus de chance de trouver une solution à ton probleme)
Pour la requete je pense avoir deja vu une erreur, il faut que tu
mettes un espace entre dico et IN car sinon il considére que dicoIN
est un champ alors que celui-ci ne doit pas exister dans ta table.
@+
Cédric


Decouvrez les solutions d’emballages OTOR au salon INTERPACK 2008
du 24 au 30 avril a Dusseldorf (Allemagne) - HALL 12 Stand B52

Suivez l’actualite du Groupe Otor sur nos sites Internet
http://www.otor.com
http://www.otorsystems.com

Boby K a écrit :

Bonjour à tous,

Je récapitule mon problème avec un rappel des épisodes précédents :
Le code suivant dans mon squelette :
<meta name="Keywords"

content="<BOUCLE_metamots(MOTS){id_article}{",
"}>#TITRE</BOUCLE_metamots>,
</B_metamots>[(#NOM_SITE_SPIP|supprimer_tags|attribut_html)] <?php
include "./biospip/biophp/motopbio.php"; ?>" />

me renvoie une erreur dans le fichier motopbio.php et produit dans ma page html le code suivant :

<!-- meta name -->

<meta name="Keywords" content="valsere 2007, Eco2scop <br />
<b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>motopbio.php</b> on line <b>27</b><br />
" /><meta name="Description" content="Eco2scop" /><link rel="author"href="http://www.eco2scop.fr/spip.php?page=auteur&amp;id_auteur=2&quot; /> <link rel="chapter" href="ECO2SCOP; title="Nos r&#233;alisations" /> <link rel="section" href="ECO2SCOP; title="Enduits terre" /> <link rel="up" href="ECO2SCOP terre" /> <link rel="end" href="Enduits terre sur voûte; title="Enduits terre sur vo&#251;te" /> <link rel="first" href="Enduits terre sur voûte; title="Enduits terre sur vo&#251;te" />

La ligne 27 est la suivante :

        while( $mot = mysql_fetch_array( $listemots ))
(cf tout le code en fin de message)
Cédric m'a conseillé de rajouté ceci juste avant cette ligne :
        echo "select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN($exclus)) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 ";
Ce qui produit le code suivant :

!-- meta name -->

<meta name="Keywords" content="valsere 2007, Eco2scop select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN('dans', 'pour', 'plus', 'avec', 'sont', 'n�tre', 'v�tre', 'leur', 'leurs', 'cette', 'ceux', 'celles', 'elle', 'nous', 'vous', 'elles', 'mais', 'donc', 'quel', 'quelle', 'lequel', 'laquelle', 'moins', 'plus', 'sous', 'dessous', 'dessus', 'pour', 'avec', 'sans', 'parce', 'parce', 'etre', 'suis', 'sommes', '�tes', 'sont', 'avoir', 'avons', 'avez', 'deux', 'trois', 'quatre', 'cinq', 'sept', 'huit', 'neuf', 'cent', 'mille', 'entre', 'deja', 'voici', 'sera', 'apres', 'encore', 'alors', 'autres', 'autre', 'puis', 'aussi', 'peut', 'bien', 'meme', 'tres', 'fait', 'email', 'tous', 'faire', 'comme', 'tout', 'vers', 'etes', 'site', 'page', 'base', 'php', 'sites', 'ligne', 'article', 'version', 'pouvez', 'passe', 'voir', 'textes', 'quelques', 'index', 'plusieurs', 'lien', 'chez', 'toutes', 'depuis', 'grace', 'ainsi', 'soit', 'dont', 'fois', 'faut', 'seul', 'quand', 'haut', 'mise', 'dire', 'pas', 'juste', 'partie', 'allez', 'rien', 'premier', 'titre', 'trait', 'suffit', 'veut', 'avant', 'ceci', 'toujours', '2002', '2003', '2004', '2005', 'type', 'text', 'petit', 'liens', 'adresse', 'faites', 'message', 'mettre', 'liste', 'voila', 'voulez', 'mail', 'quoi', 'chacun', 'numero', 'permet', 'genere', 'mieux', 'accueil', 'boucle', 'date', 'ecrire', 'chaque', 'racine', 'ouvre', 'rubrique', 'ecrivez', 'entrez', 'breve', 'http', 'besoin', 'afin', '=http', 'hors', 'egalement', 'mises', 'lors', 'prendre','0', 'n�10', 'precedent', 'suivant', 'presentant', 'comment', 'essai', 'different', 'vraiment', 'doivent', 'album', 'agenda', 'heures', 'rubriques', 'barre', 'livi', 'alter', 'atque', 'vetus', 'poema', 'casino', 'menu', 'accesskey=', 'accesskey', 'menu'
'mot type', 'administrateur', 'nadia', 'zigolupo', 'test', 'salon', 'descriptif', 'rapide', 'spip', 'acces','evenement', 'direct', 'forum', 'raccourcis', 'chapeau', 'xl___', 'concert', 'touches', 'texte', 'inter', 'touche', 'tete', 'sommaire', 'meta', 'partir', 'diaporama', 'photos', 'donnees', 'gallerie', 'fichiers', 'rubrique1', 'salons', 'note', 'post', 'scriptum', 'articles', 'theme', 'nihil', 'poetas')) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 <br />
<b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>motopbio.php</b> on line <b>28</b><br />
" /><meta name="Description" content="Eco2scop" /><link rel="author"href="http://www.eco2scop.fr/spip.php?page=auteur&amp;id_auteur=2&quot; /> <link rel="chapter" href="ECO2SCOP; title="Nos r&#233;alisations" /> <link rel="section" href="ECO2SCOP; title="Enduits terre" /> <link rel="up" href="ECO2SCOP terre" /> <link rel="end" href="Enduits terre sur voûte; title="Enduits terre sur vo&#251;te" /> <link rel="first" href="Enduits terre sur voûte; title="Enduits terre sur vo&#251;te" />

Je n'y connais rien en SQL mais en allant fouiller dans ma base (j'ai trouvé comment sur le site de mon hébergeur), j'ai vérifié les "champs" qui apparaissent dans le code php et ai trouvé :

    spip_index_dico

Champ Type Null Défaut Commentaires
hash bigint(20) Non 0
_dico_ varchar(30) Non
  
Par contre, je n'ai pas trouvé de "spip_index_articles"
Pouvez vous m'aider ?
Merci
Boby
PS : ci dessous le code php complet puis les échanges précédents (résumés ci-dessus)
<?php
include('./ecrire/inc_version.php');
     include_ecrire("inc_connect.php");
    if ($db_ok) {
       // mots exclus de la recherche (NOTA: SPIP elimine déjà les mots de moins de quatre lettres)
$exclus = "'dans', 'pour', 'plus', 'avec', 'sont', 'nôtre', 'vôtre', 'leur', 'leurs', 'cette', 'ceux', 'celles', 'elle', 'nous', 'vous', 'elles', 'mais', 'donc'";
$exclus .= ", 'quel', 'quelle', 'lequel', 'laquelle', 'moins', 'plus', 'sous', 'dessous', 'dessus', 'pour', 'avec', 'sans', 'parce', 'parce'";
$exclus .= ", 'etre', 'suis', 'sommes', 'êtes', 'sont', 'avoir', 'avons', 'avez', 'deux', 'trois', 'quatre', 'cinq', 'sept', 'huit', 'neuf', 'cent', 'mille'";
$exclus .= ", 'entre', 'deja', 'voici', 'sera', 'apres', 'encore', 'alors', 'autres', 'autre', 'puis', 'aussi', 'peut', 'bien', 'meme'";
$exclus .= ", 'tres', 'fait', 'email', 'tous', 'faire', 'comme', 'tout', 'vers', 'etes'";
$exclus .= ", 'site', 'page', 'base', 'php', 'sites', 'ligne', 'article', 'version', 'pouvez'";
$exclus .= ", 'passe', 'voir', 'textes', 'quelques', 'index', 'plusieurs', 'lien', 'chez', 'toutes', 'depuis', 'grace'";
$exclus .= ", 'ainsi', 'soit', 'dont', 'fois', 'faut', 'seul', 'quand', 'haut', 'mise', 'dire', 'pas', 'juste', 'partie', 'allez', 'rien', 'premier', 'titre', 'trait', 'suffit'";
$exclus .= ", 'veut', 'avant', 'ceci', 'toujours', '2002', '2003', '2004', '2005', 'type', 'text', 'petit', 'liens', 'adresse', 'faites', 'message', 'mettre', 'liste', 'voila', 'voulez', 'mail', 'quoi', 'chacun'";
$exclus .= ", 'numero', 'permet', 'genere', 'mieux', 'accueil', 'boucle', 'date', 'ecrire', 'chaque', 'racine', 'ouvre', 'rubrique', 'ecrivez', 'entrez', 'breve'";
// ajoutez ci-dessous vos mots à exclure entre les ''
$exclus .= ", 'http', 'besoin', 'afin', '=http', 'hors', 'egalement', 'mises', 'lors', 'prendre','0', 'n°10', 'precedent', 'suivant', 'presentant', 'comment', 'essai', 'different', 'vraiment', 'doivent', 'album', 'agenda', 'heures', 'rubriques', 'barre', 'livi', 'alter', 'atque', 'vetus', 'poema', 'casino', 'menu', 'accesskey=', 'accesskey', 'menu'
'mot type', 'administrateur', 'nadia', 'zigolupo', 'test', 'salon', 'descriptif', 'rapide', 'spip', 'acces','evenement', 'direct', 'forum', 'raccourcis', 'chapeau', 'xl___', 'concert', 'touches', 'texte', 'inter', 'touche', 'tete', 'sommaire', 'meta', 'partir', 'diaporama', 'photos', 'donnees', 'gallerie', 'fichiers', 'rubrique1', 'salons', 'note', 'post', 'scriptum', 'articles', 'theme', 'nihil', 'poetas'";
// colonne gauche
//echo "bio-squelettes";
$listemots = spip_query("select dico, sum(points) as pts from spip_index_dico, spip_index_articles
where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN($exclus))
GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 ");
        $i = 0;
        echo "select dico, sum(points) as pts from spip_index_dico, spip_index_articles where spip_index_dico.hash = spip_index_articles.hash AND NOT(dico IN($exclus)) GROUP BY spip_index_dico.hash order by pts DESC LIMIT 0,20 ";
        while( $mot = mysql_fetch_array( $listemots ))
        {
        $i++;
        echo ", ";
        echo $mot['dico'];
        }
                  } else {}
?>

Moi non plus je n'ai pas cette table "spip_index_articles"" mais je n'utilise pas biospip, peut-être faidrait-il qu'un utilisateur de biospip se signale où que tu regardes plus la doc. Il y a nécessairement un script qui doit permettre d'ajouter cette table dans ta database
@+
Cédric

________________________________________________________________________
Decouvrez les solutions d'emballages OTOR au salon INTERPACK 2008
du 24 au 30 avril a Dusseldorf (Allemagne) - HALL 12 Stand B52

   Suivez l'actualite du Groupe Otor sur nos sites Internet
                     http://www.otor.com
                  http://www.otorsystems.com