Très perdu dans ce charabia!!!

Signaler
Messages postés
5
Date d'inscription
dimanche 15 octobre 2006
Statut
Membre
Dernière intervention
23 janvier 2007
-
Messages postés
5
Date d'inscription
dimanche 15 octobre 2006
Statut
Membre
Dernière intervention
23 janvier 2007
-
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.

Merci à vous tous les GURU !!!

9 réponses

Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
2
Salut !

Pour faire une selection aléatoire, il existe une fonction SQL (MySQL, mais je suppose qu'elle existe également pour les autres...)

Tu fais SELECT RANDOM FROM <table> LIMIT 1

A adapter éventuellement à access, que je ne connais pas du tout.
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
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 ?

à+
Messages postés
5
Date d'inscription
dimanche 15 octobre 2006
Statut
Membre
Dernière intervention
23 janvier 2007

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...

Merci pour votre collaboration !!!
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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.
Messages postés
5
Date d'inscription
dimanche 15 octobre 2006
Statut
Membre
Dernière intervention
23 janvier 2007

Bonjour Malalam

J'ai cru que ca marcherais. Je t'explique:

Si je fais par exemple ta commande:

$valeur= odbc_exec($cnx,"SELECT TOP 1 Pseudo,Age,Photo FROM Fiche_ind ORDER BY Rnd(IDMember)");

J'obtiens l'erreur:

Warning : odbc_result() [function.odbc-result]: Field IDMember not found in ...

Par contre, si jessai

$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....
Messages postés
5
Date d'inscription
dimanche 15 octobre 2006
Statut
Membre
Dernière intervention
23 janvier 2007

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.....

A suivre.....
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Essaye avec un TOP 10 pour voir si ce sont tjrs les 10 mêmes qui sortent aussi ?
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
En tous cas, je ne suis pas au boulot là, mais demain ou dans la semaine selon mon taf, j'essayerai de voir, on a une base Access.
Messages postés
5
Date d'inscription
dimanche 15 octobre 2006
Statut
Membre
Dernière intervention
23 janvier 2007

Excellent, moi de mon coté , je vais approfondir pour voir.

Merci de tes reponses !!