PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 11-10-2012 23:06:45

TheBear
Membre
Inscription : 11-10-2012
Messages : 5

comment recuperer une variable apres un select rand()

Bonjour,

          Je suis débutant en php et j'essais de faire un système de tirage au sort. Tout allait bien mais la je rencontre un probleme que je n'arrive pas à regler.
Quand je fais ma requete select pour trouver le prenom d un gagnant choisi au hasard je n'arrive pas a exploiter cette variable sa me renvois: Resource id #8 comme reponsse
Si quelqu'un peut m'aider sa serais grandement apprecier.

Voici mon code:

<?php
include_once ("myparam.inc.php");

$id = $_POST['id'];

$CONDB=mysql_connect(MYHOST, MYUSER, MYPASS);

mysql_select_db(unionwe_isa, $CONDB);

$resultat="SELECT prenom, nom FROM participant WHERE numeroconcours=$id order by rand() limit 1";

$ligne=mysql_fetch_array($resultat);

$gagnant="UPDATE concours SET gagnant=$ligne WHERE id=$id";

mysql_query($gagnant);

mysql_close($CONDB);

?>
 

Merci d'avance

Hors ligne

#2 12-10-2012 06:19:23

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : comment recuperer une variable apres un select rand()

Saluton,
Comme te le dit le message, $ligne est une ressource.
D'autre part, tu ne cibles pas la colonne id de la table participant dans ton SELECT.
Utilise plutôt mysql_fetch_assoc() et tu trouveras ta donnée dans $ligne['id'].
Et, dès que possible, passe à PDO.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 12-10-2012 07:23:39

TheBear
Membre
Inscription : 11-10-2012
Messages : 5

Re : comment recuperer une variable apres un select rand()

rebonjour,

Pour quel raison me dit tu: "D'autre part, tu ne cibles pas la colonne id de la table participant dans ton SELECT."

car quand je fais la requete dans mysql myadmin sa me sort toujours des variables associer a mon $id

c'est peut-etre un manque de details de ma part

pour mysql_fetch_assoc() je vais aller jeter un coup d'oeil


merci

Dernière modification par TheBear (12-10-2012 07:24:41)

Hors ligne

#4 12-10-2012 08:35:34

TheBear
Membre
Inscription : 11-10-2012
Messages : 5

Re : comment recuperer une variable apres un select rand()

c'est encore moi,

petite question mysql_fetch_assoc,

Comment je fais pour me servir du resultat autrement que echo ou printf car je dois mettre le resultat sur une ligne de ma base de donnee avec UPDATE

Sa doit etre nono, mais je vois pas comment


merci

Hors ligne

#5 12-10-2012 13:56:24

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : comment recuperer une variable apres un select rand()

Ma phrase était trop alambiquée.
Tu ne récupèreras dans le résultat (resource) que les colonnes (ou les pseudo-colonnes) nommément énoncées dans la clause SELECT de la requête.
Dans ton cas tu ne cites que les colonnes nom et prenom du gagnant, mais pas son identifiant dans la table participant, or c'est cet identifiant avec lequel tu veux ensuite modifier la colonne gagnant de la ligne de la table concours correspondant à $id.
Pour connaître ensuite le nom et le prenom du gagnant à partir de la table concours il te suffira de faire une jointure entre les deux tables.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 12-10-2012 23:42:41

TheBear
Membre
Inscription : 11-10-2012
Messages : 5

Re : comment recuperer une variable apres un select rand()

salut Maljuna Kris,

ce n'est pas dutout sa je n'ai aucunement besoin du id de participant car se n'est que le prenom et nom qui doive s'ajouter dans la ligne du concours.
Je m'explique mieux: Sur ma page d'administration, j'ai un formulaire qui demande l'id d'un concours(le concours que je veux terminer), quand je fais envoyer sa m'envois sur la page tirage.php.
tirage.php doit trouver dans la table participant de facon aléatoire le prenom et le nom d'un participant pour les rajouter dans la ligne du concours corespondant a l'id du premier formulaire initiale.


bonne soirée

Hors ligne

#7 13-10-2012 06:40:08

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : comment recuperer une variable apres un select rand()

Alors c'est que tes tables ne sont pas en formes normales.
Les informations nom prenom ne doivent pas être dupliquées dans les tables.
C'est bien toi qui a exposé une requête UPDATE pour la colonne gagnant de la table concours.
Tout le reste n'est que cosmétique de présentation. Ce dont doit se souvenir ta base de données c'est des identifiants du concours et du gagnant, avec lesquels, je me répète, tu retrouveras toujours, par requête mettant les tables en jointure, le détail des infos du concours et du participant qui a gagné pour en faire ce que bon te semblera.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#8 13-10-2012 18:24:29

TheBear
Membre
Inscription : 11-10-2012
Messages : 5

Re : comment recuperer une variable apres un select rand()

Finalement j'ai trouver comment je met le code ici ca va peut-etre aider quelqu'un un jour wink



<?php
include_once ("myparam.inc.php");

$id = $_POST['id'];

$CONDB=mysql_connect(MYHOST, MYUSER, MYPASS);

mysql_select_db(unionwe_isa, $CONDB);


$resultats = mysql_query("SELECT prenom, nom FROM participant WHERE numeroconcours=". $id ." order by rand() limit 1") or die(mysql_error());


$ligne = mysql_fetch_array($resultats);


$gagnant = "UPDATE concours SET gagnant = '". $ligne['nom'].$ligne['prenom'] ."' WHERE id=". $id;


mysql_query($gagnant) or die(mysql_error());

mysql_close($CONDB);

?>

 

Merci

Hors ligne

#9 13-10-2012 21:50:15

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : comment recuperer une variable apres un select rand()

Si ça te convient, c'est l'essentiel.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums