Bonjour
En svn SPIP 1.9.3 dev SVN [11783]
je fais :
$pages = sql_countsel('spip_doc2img','id_document='.$id_document,'id_doc2img');
Que dois je avoir comme résultat si cette requête ne trouve aucun enregistrement
que ce soit $page > 0 ou isset($page) mon test est faux
esj
Juin 20, 2008, 2:12
2
si tu oublies le S à page, pas étonnant.
Committo,Ergo:Sum
Non c'est pas ça, j'ai merdé lors du copier/coller
mon dernier code :
$pages =
sql_countsel('spip_doc2img','id_document='.$id_document,'id_doc2img');
spip_log('pages :'.$pages,'doc2img');
if ($pages) {
spip_log("Document deja converti","doc2img");
return false;
}
et je suis incapable de savoir ce que retourne sql_countsel s'il n'y a
pas de resultat
le spip_log va retourner -> pages :
et pourtant le test va etre vrai
meme pb avec un is_numeric ou >0
esj
Juin 20, 2008, 3:22
4
Il y a peut-etre un pb avec count(distinct ..) sur ta version de MysQL.
Trace spip_mysql_countsel
Committo,Ergo:Sum
S'lt
A priori sql_count n'est pas en cause dans mon pb. Après avoir revu
mon script et fait simplifier le test sur is_numeric($pages) tout
semble ok.
Le bogue est ailleurs. Comme je pense que c'est plus lié à l'appel des
filtres et des squelettes j'ai ouvert un nouveau fil.
Km
si tu donnes pas toutes les billes de ton probleme, on va pas pouvoir t'aider ...
Cédric
S'lt
2 remarques concernant spip_countsel()
Si il n'y a pas d'enregistrement
-* Mysql retourne NULL
-* Sqlite retourne 0
Peut etre que l'api pourrait faire un intval sur le return
http://trac.rezo.net/trac/spip/browser/spip/ecrire/req/mysql.php#L490
Mais là je sais pas trop où le mettre pour faire propre.
Si on fait un groupby sur la clef primaire, mysql ou sqlite ne
semblent pas apprécier le resultat
Il ne semble pas y avoir de sécurité sur la requete retourne plusieurs
enregistrement en raison d'une clause where non compléte.
Km
esj
Juin 27, 2008, 9:47
8
S'lt
2 remarques concernant spip_countsel()
Si il n'y a pas d'enregistrement
-* Mysql retourne NULL
-* Sqlite retourne 0
Peut etre que l'api pourrait faire un intval sur le return
http://trac.rezo.net/trac/spip/browser/spip/ecrire/req/mysql.php#L490
Mais là je sais pas trop où le mettre pour faire propre.
Corrigé par 11893. Mieux vaut le faire dans les fichiers req/*
car sinon on doit retester le paramètre $requeter.
Si on fait un groupby sur la clef primaire, mysql ou sqlite ne
semblent pas apprécier le resultat
Tu pourrais être plus précis ?
Il ne semble pas y avoir de sécurité sur la requete retourne plusieurs
enregistrement en raison d'une clause where non compléte.
Idem.
Committo,Ergo:Sum
S'lt
Corrigé par 11893. Mieux vaut le faire dans les fichiers req/*
car sinon on doit retester le paramètre $requeter.
Merci pour la correction
> Si on fait un groupby sur la clef primaire, mysql ou sqlite ne
> semblent pas apprécier le resultat
> Il ne semble pas y avoir de sécurité sur la requete retourne plusieurs
> enregistrement en raison d'une clause where non compléte.
Tu pourrais être plus précis ?
Au début j'ai fait ceci en réfléchisant trop vite et mal :
$pages = sql_countsel('spip_doc2img','id_document='.$id_document,'id_doc2img');
Or id_doc2img est la clef de cette table.
Du coup si :
-* id_document n'existe pas alors on avait NULL (corrigé je pense par 11893)
-* id_document existe on aura autant de resultat que d'enregistrements
-** avec mysql je recupérais malgré tout au moins un 1.
-** avec sqlite3, ça semble aller
-** avec sqlite2, ça semble ne pas le faire (pb avec DISTINCT)
Je suppose que ça retourne le premier résultat or on devrait je plutot
un erreur je pense.
Km