Vous n'êtes pas identifié(e).
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
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
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
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
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
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
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
Finalement j'ai trouver comment je met le code ici ca va peut-etre aider quelqu'un un jour
$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
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