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&id_auteur=2" /> <link rel="chapter" href="http://www.eco2scop.fr/spip.php?rubrique4" title="Nos ré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ûte" /> <link rel="first" href="http://www.eco2scop.fr/spip.php?article6" title="Enduits terre sur voû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&id_auteur=2" /> <link rel="chapter" href="http://www.eco2scop.fr/spip.php?rubrique4" title="Nos ré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ûte" /> <link rel="first" href="http://www.eco2scop.fr/spip.php?article6" title="Enduits terre sur voû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&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