MartinPHP27
Messages postés5Date d'inscriptiondimanche 15 octobre 2006StatutMembreDernière intervention23 janvier 2007
-
22 janv. 2007 à 23:26
MartinPHP27
Messages postés5Date d'inscriptiondimanche 15 octobre 2006StatutMembreDernière intervention23 janvier 2007
-
23 janv. 2007 à 19:05
Bonjour à tous,
Voilà quelques temps que je suis à la découverte du langage PHP et me voici devant un problème que j'ai du mal à solutionner.
Je me connecte a une ODBC (Access) comme suis:
Ca marche pour tout sans problème.
Ma table possède un champ clé primaire qui génère un numéro aléatoire.
J'aimerais avoir une requète qui me permet d'afficher un enregistrement au hasard a chaque visite.
(par exemple une carte de collection qui est afficher sur l'index du site et qui change a chaque rafraichissement)
J'espère avoir donné assez d'information pour vous faire voir mon problème.
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 22 janv. 2007 à 23:33
Hello,
je ne connais pas assez Access pour savoir s'il y a une comande qui te renvoie une entrée au hasard, mais tu peux générer toi-même un nombre aléatoire avec rand( ) en php et récupérer l'enregistrement correspondant non ?
MartinPHP27
Messages postés5Date d'inscriptiondimanche 15 octobre 2006StatutMembreDernière intervention23 janvier 2007 23 janv. 2007 à 04:12
Merci pour vos réponses...
La fonction Random ou Rand() n'est pas supporté par le ODBC....en conséquent il y a la fonction Rnd(). Mais ...quand je fais la meme ligne que tu m'as donné (Blink 182) mais avec un rnd() à la place du Random, ca fontionne...mais me donne que les 2 premiers enregistrement de la DB ....2 sur 55 items...
Pour ta proposition Evangun, ce n'est pas bete , mais ma base de donnée Access attribue des numero de 7 chiffres qui varies entre 100000 et 999999, mais jamais en suivant l'ordre. (exemple, enregistrement 1 à comme numero 485421 et la suivante a 245785)...et c'est voulu
Mes chances de generer avec la fonction Rand() ou Rnd() un chiffre existant dans ma DB sont minces je crois..? a moin qu'une solution adjacente pourrais concrétiser l'idée...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 23 janv. 2007 à 09:04
Hello,
et SELECT TOP 1 champ1, champ2... FROM table ORDER BY Rnd(champID)
où champ1 etc sont les champs à récupérer, et champID ton champ id.
Ca devrait fonctionner.
Vous n’avez pas trouvé la réponse que vous recherchez ?
$valeur = odbc_exec($cnx,"SELECT TOP 1 IDMember,Pseudo,Age,Photo FROM Fiche_ind ORDER BY Rnd(IDMember)");
Ca fonctionne à un certain point, puisque je n'obtien pas d'erreur, mais c'est toujours le même enregistrement qui sort..c'est à dire, l'enregistrement #1 dans la DB.
Mon champs IDMember existe bel et bien puisque toutes mes autres requête ne fonctionne que par lui.
J'essai à travert tout ca de comprendre la facon de penser de la Db ...question d'apprendre... même si toutes vos solutions sont pour moi plein de bon sens
Merci encore....
MartinPHP27
Messages postés5Date d'inscriptiondimanche 15 octobre 2006StatutMembreDernière intervention23 janvier 2007 23 janv. 2007 à 15:11
Rebonjour
Bon voilà, ta méthode fonctionne sans erreur, car j'ai moi même profoqué une erreur avec autre chose....voilà l'importance de bien vérifier et tanter de comprendre....c'est comme ca qu'on grandi.
Cependant c'est bien beau tout ca....mais j'ai toujours un problème...c'est toujours la même enregistrement qui sort.....comme si la fonction RND ne fonctionnait pas..
C'est l'enregistrement #1 qui sort.....jamais la 2.....