popup généré automatiquement selon lien

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : popup généré automatiquement selon lien

par charabia » 21 févr. 2006, 15:55

lol de rien ;) Je vaque sur d'autres sujets ;)

par lafieau » 21 févr. 2006, 15:47

Euréka ça marche !
J'ai réussi à trouver l'erreur avant que tu me l'explique (ça commence à rentrer !!!) merci beaucoup car sans toi je ne sais pas comment je m'en serais sortie !

Si tu veux encore te creuser les méninges, il reste un sujet un peu plus bas (comme t'as l'air assez calé !!! :lol: )

Merci encore !

par charabia » 21 févr. 2006, 15:42

lol donc tout le problème venait de là. Tu ne va pas chercher le bon champs.

Donc reprenons :
1. ton lien est OK :
<td style="text-align: center;"><a href="javascript:;" onClick="MM_openBrWindow('popup.php?id=<?php echo $row_Recordset1['id_livre']; ?>','popup','width=800,height=600')"><?php echo $row_Recordset1['descriptif']; ?></a></td>
2. ta requête sera :
$id=$_GET['id']; 
mysql_select_db($database_connexion, $connexion); 
$query_Recordset1 = 'SELECT * FROM tb_livre WHERE id_livre='.$id;

par lafieau » 21 févr. 2006, 15:39

Bon avec correction ça marche pas. Mais mon champ se nomme id_livre j'aurais p'têtre pas du le nommer comme ça (car la table c'est tb_livre, oui je sais c'est pas très original !).

C'est vraiment très sympa de m'aider !

par charabia » 21 févr. 2006, 15:32

Looooool !! Colles moi le code de ta page openw.php ici c'est plus simple :)

Dans ta base de données, le champs s'appelle bien id ?

Et si tu fais ça :
$query_Recordset1 = 'SELECT * FROM tb_livre WHERE id='.$_GET['id'];
Tu as quoi comme résultat ?

En fait je crois que tu te mélanges un peu les pinceaux dans tous ces paramètres.

Pour faire simple :
Dans ton SELECT, le id qui se trouve après le WHERE correspond au champ de ta base. Par contre le id qui se trouve dans $_GET['id'] est le paramètre que tu passes par l'url. Aussi, si tu passes id_livre à la place de id, ta requête deviendra :
$query_Recordset1 = 'SELECT * FROM tb_livre WHERE id='.$_GET['id_livre'];
C'est plus clair ?

par lafieau » 21 févr. 2006, 15:31

J'ai corrigé mais j'ai maintenant ce message d'erreur :
Champ 'id' inconnu dans where clause

J'ai encore fait une boulette ?

par charabia » 21 févr. 2006, 15:16

Non tu as encore fait une erreur :)

Ton lien est ok.

Mais ta récupération est fausse.
id=$_GET['id_livre']; 
mysql_select_db($database_connexion, $connexion); 
$query_Recordset1 = 'SELECT * FROM tb_livre WHERE id='.$_GET['id_livre'];
doit être
$id=$_GET['id']; 
mysql_select_db($database_connexion, $connexion); 
$query_Recordset1 = 'SELECT * FROM tb_livre WHERE id='.$id; 

par lafieau » 21 févr. 2006, 15:12

Bon et ben y a encore quelque chose qui ne colle pas. Voilà j'ai corrigé mon code comme tu m'as montré, mais toujours des erreurs. Mais si je mets le code comme ceci (sans vouloir t'offenser, mais j'ai essayé dans tous les sens et ça ne marche pas !)
<td style="text-align: center;"><a href="javascript:;" onClick="MM_openBrWindow('popup.php?id=<?php echo $row_Recordset1['id_livre']; ?>','popup','width=800,height=600')"><?php echo $row_Recordset1['descriptif']; ?></a></td> 
et celui-ci pour la page résultat :
id=$_GET['id_livre'];
mysql_select_db($database_connexion, $connexion);
$query_Recordset1 = 'SELECT * FROM tb_livre WHERE id='.$_GET['id_livre'];
Bien sûr il m'affiche encore ce message d'erreur :
Parse error: parse error in c:\program files\easyphp1-8\www\ctredocumentation\popup.php on line 3

il faut bien que je récupère la variable id avant ? Je sents que j'ai tout faut !!! :cry:
Merci encore de m'accorder du temps !

par charabia » 21 févr. 2006, 12:36

C'est normal que ça ne fonctionne pas :)

Dans l'URL tu as passé la variable id et tu tentes de récupérer la variable id_livre. Donc c'est logique qu'il ne trouve rien et te mette une erreur.

Tu dois donc choisir :
1. passer en paramètre id et récupérer avec $_GET['id']
popup.php?id=<?php echo $row_Recordset1['id']; etc...
ou
2. passer en paramètre id_livre et récupérer avec $_GET['id_livre']
popup.php?id_livre=<?php echo $row_Recordset1['id']; etc...
Et pour cette ligne :

$query_Recordset1 = "'SELECT * FROM tb_livre WHERE id='.$_GET['id_livre']";
mets
$query_Recordset1 = 'SELECT * FROM tb_livre WHERE id='.$_GET['id_livre'];

par lafieau » 21 févr. 2006, 12:30

Bah je dois être d'une nullité car ça ne marche pas ! J'ai pourtant bien modifier mon code, mais bon y a encore quelque chose qui ne colle pas !
j'ai ce message d'erreur :
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\ctredocumentation\popup.php on line 5
je remets le code pour la premiere page :
<td style="text-align: center;"><a href="javascript:;" onClick="MM_openBrWindow('popup.php?id=<?php echo $row_Recordset1['id_livre']; ?>','popup','width=800,height=600')"><?php echo $row_Recordset1['descriptif']; ?></a></td>
et celui de la page résultat :
mysql_select_db($database_connexion, $connexion);
$query_Recordset1 = "'SELECT * FROM tb_livre WHERE id='.$_GET['id_livre']";
$Recordset1 = mysql_query($query_Recordset1, $connexion) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

par charabia » 21 févr. 2006, 10:23

Houuuuuuu le mot à bannir :lol: Dream...? c'est quoi dream...lol Bon blague à part, revenons en à notre problème :)

Déjà pour commencer, pour ton lien je te recommande d'utiliser les CSS et non les <font>, c'est terminé depuis belle lurette :) Même dreamweaver te transforme les font en css maintenant.
Tu as de plus oublier de passer la variable ID après le "?". Tu dois donc avoir ceci à la place de ton code :
<td style="text-align: center;"><a href="javascript:;" onClick="MM_openBrWindow('popup.php?id=<?php echo $row_Recordset1['id_livre']; ?>','popup','width=800,height=600')"><?php echo $row_Recordset1['descriptif']; ?></a></td>
Remarques que j'ai viré ta font et rajouté le ID après le "?". Tu définiras le style pour les liens.

NB :
javascript:;
que tu vois est un bug dû au forum. tu devrais lire :

Code : Tout sélectionner

javascript:;

Maintenant pour
$sql = 'SELECT * FROM ta_table WHERE id='.$_GET['id'];
Le . avant $_GET['id'] sert à concaténer ta chaîne ;)

par Cyrano » 21 févr. 2006, 10:19

Tu devrais utiliser le bouton [php] au lieu de [code], la coloration syntaxique t'aurait indiqué une partie de la réponse :
$sql = 'SELECT * FROM ta_table WHERE id='.$_GET['id'];
Le point est en PHP l'opérateur de concaténation. Tu as donc une chaine de caractère : "SELECT .... id=" et ensuite une variable PHP "$_GET['id']" : pour coller les deux, on concatène et le point sert à ça.

par lafieau » 21 févr. 2006, 10:12

Charabia,

Y a un truc qui me chagrine, ça ne va pas plaire, mais je bosse sur dream, et le lien sur lequel je veux lier un popup est en région répétée, du coup ça change tout.

Code : Tout sélectionner

<td><div align="center"><font size="-1" face="Arial, Helvetica, sans-serif"><a href="javascript:;" onClick="MM_openBrWindow('popup.php?<?php echo $row_Recordset1['id_livre']; ?>=','popup','width=800,height=600')"><?php echo $row_Recordset1['descriptif']; ?></a></font></div></td>
Même dans ta requête je ne comprends pas trop :

Code : Tout sélectionner

$sql = 'SELECT * FROM ta_table WHERE id='.$_GET['id'];
les '. correspondent à quoi ? (avant $).

Ben encore merci pour ton aide, je suis actuellement en stage et je n'ai aucun support pour m'aider (ni personne) donc c'est un peu hard, du coup je cherche à gauche et à droite, mais les forums c'est vraiment bien pour trouver des explications.

par lafieau » 20 févr. 2006, 23:08

A Charabia,

Merci pour tout, je teste ça demain et je te redis si ça marche (de toute façon je te tiens au courant !). Comme tu as écris ça me parle un peu plus, ça ressemble un peu plus à ce que j'ai donc j'espère pouvoir m'en sortir.

Encore merci et à plus pour les news !

par charabia » 20 févr. 2006, 18:02

C'est bien ce que j'avais compris alors ;)

Donc pour ce que tu veux faire, il te faut la page des liens qui va ressembler à ceci :

Code : Tout sélectionner

<a href="javascript:;" onclick="javascript:void(window.open('openw.php?id=1','open','width=500,height=500,scrollbars=1));">lien 1</a><br /> <a href="javascript:;" onclick="javascript:void(window.open('openw.php?id=2','open','width=500,height=500,scrollbars=1));">lien 2</a>
Ensuite dans ta page openw.php, tu dois récupérer tes données en fonction du passage en paramètre. Pour interroger ta table, je te conseille d'aller voir ici : http://phpdebutant.org/article66.php, c'est très bien expliqué.

Une fois que tu sais comment récupérer des données de ta base, il te suffit de récupérer l'id grâce à $_GET['ta_variable'].

Donc dans ta requête tu auras quelque chose de ce genre :
$sql = 'SELECT * FROM ta_table WHERE id='.$_GET['id'];