Recuperer des donnees de 2 tables differentes

joboy84 -  
 koko -
Bonjour,

j ai creer une section membre dans laquelle figurent certainent campagne pour lesquelles les utilisateurs sont rétribués à l inscription. Je souhaite faire en sorte que les publicites pour lesquelles le membre a deja valider son inscription, ne s'affichent plus dans son espace membre ! Une fois que le membre s est inscrit a la campagne, il doit cliquer sur le bouton "confirmer votre inscription" qui envoie sous forme de formulaire des données a la page confirmerinscription.php qui alimente une table "confirmecampagne" et il faudrait donc recuperer les donnees dans cette table pour que l id de la campagne a laquelle il s est inscrit ne soit plus affiche...

J ai essaye avec les jointures mais apparemment je fais quelque chose de faux car la page reste vierge et rien ne s affiche dans le navigateur...

Voila le code de la page payinscription.php...qui est la page sur laquelle s affichent les publicites et apres inscription le membre doit donc confirmer en cliquant sur un bouton de confirmation. Etant donné que c est cette page qui affiche les pub il faut donc y inserer le code pour eviter d afficher les pubs auxquelles le membre a deja souscrit... :
<?php 
 
include ('dbconnect.php'); 
 
$pseudo = .$_SESSION['pseudo'].
 
// on crée la requete SQL
$sql = "SELECT FROM campagne LEFT JOIN confirmecampagne ON campagne.idcampagne, campagne.codecampagne, campagne.nomcampagne, campagne.nombrepoints, confirmecampagne.idcampagne2 WHERE campagne.idcampagne!='confirmecampagne.idcampagne2' AND pseudo!='$pseudo'"; 
 
 
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
 
 
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req)) 
    {
        echo '<table width="352" height="101" border="0">
                  <tr>
                    <td width="137"><div align="center">Campagne id : '.$data['idcampagne'].'</div></td>
                    <td width="199"><div align="center">Gains : '.$data['nombrepoints'].' points </div></td>
                  </tr>
                  <tr>
                    <td colspan="2"><div align="center">'.$data['codecampagne'].'</div></td>
                  </tr>
                  <tr>
                    <td colspan="2"><div align="center"><form action="confirmerinscription.php" method="post">
 <input name="idcampagne" type="hidden" value="'.$data['idcampagne'].'">
 <input name="nomcampagne" type="hidden" value="'.$data['nomcampagne'].'">
 <input name="nombrepoints" type="hidden" value="'.$data['nombrepoints'].'">
  <input name="pseudo" type="hidden" value="'.$_SESSION['pseudo'].'">
  <input type="submit" class="fondblanc" value="Confirmer votre inscription">
 </form>
        </div></td><br>
                  </tr>
                </table>';
   }   
 
// on ferme la connexion à mysql
mysql_close(); 
?>

J'ai une premiere table nommée "campagne" qui contient les diverses campagnes a affiche :
CREATE TABLE campagne (
  idcampagne int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  nomcampagne varchar(40) DEFAULT '0',
  regiecampagne varchar(40) DEFAULT NULL,
  codecampagne text(3000) DEFAULT NULL,
  typesupport varchar(50) DEFAULT NULL,
  datedebutcampagne date NOT NULL DEFAULT '0000-00-00',
  datefincampagne date NOT NULL DEFAULT '0000-00-00',
  nombrepoints int(10) DEFAULT '0',
  PRIMARY KEY  (idcampagne)
) TYPE=MyISAM;

Puis une autre table nommée "confirmecampagne" dans laquelle sont ajoutée les données quand le membre confirme son inscription :

CREATE TABLE confirmecampagne (
  idconfirmation int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  idcampagne2 int(10) DEFAULT '0',
  nomcampagne varchar(40) DEFAULT '0',
  nombrepoints int(10) DEFAULT '0',
  pseudo varchar(15) DEFAULT '0',
  traiteparadmin varchar(15) DEFAULT 'Non',
  dateinscription datetime NOT NULL DEFAULT '0000-00-00',
 PRIMARY KEY  (idconfirmation)
) TYPE=MyISAM;

Voici egalement la page avec le code traitant la demande de confirmation si cela vous aide..meme si elle n a rien a voir dans l histoire....juste pour que vous compreniez mieux...

confirmerinscription.php

<?php 
 
include ('dbconnect.php');
 
$sql=mysql_query("SELECT * FROM confirmecampagne WHERE idcampagne2='$idcampagne' AND pseudo='$pseudo'");
if(mysql_num_rows($sql))
{
echo"<font color=red size=3><u><b>ERREUR :</b></u><br></font><b>Vous avez déjà confirmé une inscription à cette campagne !</b>";
exit;
}  
 
$sql=mysql_query("INSERT INTO confirmecampagne (idcampagne2, nomcampagne, nombrepoints, pseudo, dateinscription) VALUES ('$idcampagne', '$nomcampagne', '$nombrepoints', '$pseudo', now())") or die('Impossible de confirmer l\inscription suite à une erreur technique...Veuillez nous en excuser !'.mysql_error());
 
 
$sq=mysql_query("SELECT * FROM confirmecampagne WHERE idcampagne2='$idcampagne' AND pseudo='$pseudo'") or die(mysql_error());
$arr=mysql_fetch_array($sq); extract($arr);
if(mysql_affected_rows) echo "<center><P><P><P><b>Votre confirmation d'inscription à la campagne $nomcampagne à été effectuée avec succès ! Vos points seront crédité après vérification de la validité de votre inscription chez notre partenaire. Cela ne devrait pas prendre plus de 48h...</b><p></center>";
?>[/code]
Et voila ! si quelqu un peut eclairer ma lanterne...Je precise que j utlise les joitures pour la premiere fois et que je pense que le probleme viens donc de la:

[code]$sql = "SELECT FROM campagne LEFT JOIN confirmecampagne ON campagne.idcampagne, campagne.codecampagne, campagne.nomcampagne, campagne.nombrepoints, confirmecampagne.idcampagne2 WHERE campagne.idcampagne!='confirmecampagne.idcampagne2' AND pseudo!='$pseudo'"; or die('Impossible dexecuter le requete avec LEFT JOIN !'.mysql_error());

merci
A voir également:

26 réponses

PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
Bsr

Ca je m'en doute que $pseudo est vu comme une chaîne et pas comme une variable :-)

Regarde directement dans ta base sur MySQL : que contient exactement le champ codecampagne ?????

0
joboy84
 
Bonsoir,

Le champ codecampagne contient :

<a href="http://clk.tradedoubler.com/click?p=49728&a=1410783&g=16384964&epi=\'.$pseudo.\'" target="_blank"><img src="http://impfr.tradedoubler.com/imp?type(img)g(16384964)a(1410783" border=0></a>


valavala..
0
joboy84
 
Bonjour

J ai aussi essaye avec :

<a href="http://clk.tradedoubler.com/click?p=49728&a=1410783&g=16384964&epi="\'.$_SESSION['pseudo'].\'"" target="_blank"><img src="http://impfr.tradedoubler.com/imp?type(img)g(16384964)a(1410783" border=0></a>


Mais la encore une fois, il ne me prends pas la valeur de la variable en compte..cela affiche epi= (et rien derriere)...
0
joboy84
 
personne n a de solution? :-(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
Bsr

Bizarre ! Le str_replace() aurait dû fonctionner ...

Eventuellement essai avec :
<td colspan="2"><div align="center">'.str_replace("\'.$"."pseudo.\'" ,$pseudo,$data['codecampagne']).'</div></td>


(mais j'y crois pas bcp )


Tu pourrais mettre ta page en ligne et donner l'URL ?
0
koko
 
j ai ouvert un nouveau topic car celui est un peu long maintenant et ce n est plus le meme probleme...

lien : variable non transmise dans un lien#0

Ca n a pas fontionner...
0