| ||||||||
Astucien | Bonjour, Je voudrais passer plusieurs variables en php d'un script à un autre. Mais je n'arrive pas à trouver comment .... J'affiche un album photos, je sélectionne une photo et je l'affiche. Pour passer une variable (entre l'album et la photo), ça marche : echo '<td><a href = "photo.php?idph='.$row['idph']. ' "><img border=0 height="50" src="' . $row['lien'] . '"><br></a></td>'; Mais si j'en ai deux (je voudrais passer la variable titre_album), ça marche plus : echo '<td><a href =\'photo.php?idph=".$idph."&".titre_album."&".$soustitre."\'><img border=0 height="50" src="' . $row['lien'] . '"><br></a></td>'; Pouvez-vous m'aider corriger mon erreur ? Merci | |||||||
Publicité | ||||||||
| ||||||||
Petite astucienne | echo '<td><a href ="photo.php?idph='.$idph.'&titre_album&'.$soustitre.'"><img border=0 height="50" src="'.$row['lien'].'"><br></a></td>'; | |||||||
Petit astucien | rauuw p'tet comme çà : echo "<td><a href =\'photo.php?idph=".$idph."&titre_album=".titre_album."&soustitre=".$soustitre."\'><img border='0' height='50' src='". $row['lien'] . '"><br></a></td>"; *µ* Modifié par midnightblue le 11/12/2009 12:35 | |||||||
Petite astucienne | va falloir m'expliquer comment tu fais pour parser le query_string comme ça...joli blond :) | |||||||
Petit astucien | Query_string, of course. Comment va-t'il, belle brune ? Si tu le vois, parse lui le bonjour de ma part. *µ* | |||||||
Astucien | Merci si-si. Mais ainsi, je ne passe pas la 2° variable. Ce que j'ai écrit : echo '<td><a href ="photo_suiv.php?idph='.$idph.'&'.id_liaison.'"> Je récupère bien idph, mais pas id_liaison ?
| |||||||
Astucien | CORRECTION ...... Merci si-si. Mais ainsi, je ne passe pas la 2° variable. Ce que j'ai écrit : echo '<td><a href ="photo_suiv.php?idph='.$idph.'&'.$id_liaison.'"> Je récupère bien idph, mais pas id_liaison ? | |||||||
Astucien |
echo '<td><a href ="photo_suiv.php?idph='.$idph.'&'.$id_liaison.'"> Je récupère bien idph, mais pas id_liaison ?
echo '<td><a href="photo_suiv.php?idph='.$idph.'&id_liaison='.$id_liaison.'"> | |||||||
Astucien | Exact ......... J'en ai oublié la moitiée. Maintenant j'ai l'erreur : Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 pour mon script :
De quoi cela peut-il venir ?
| |||||||
Astucien | $idph = $_GET['idph'];
Modifié par BxG le 11/12/2009 15:36 | |||||||
Astucien | BxG a écrit : J'ai plus de message d'erreur, mais l'id_liaison ne passe toujours pas ! Si je fais un echo de $idph, j'ai quelquechose. Mais echo de $id_liaison ne donne rien ??? | |||||||
Astucien | BxG a écrit : Si je veux passer que id_liaison, ça passe pas non plus ! Donc le pb vient de la variable .... !!!! Mais je vois pô trop ..... | |||||||
Astucien | fais des var_dump($_GET['idph']) et var_dump($_GET['id_liaison']) pour voir si tu récupères bien quelque chose pour commencer, si ce n'est pas le cas vérifie ton url. SI tu voit quelque chose du genre :
http://tonsite.php?idp=X&id_liaison= C'est que ton id_liaison vaut null avant même de créer ton lien sur la page suivante.
| |||||||
Astucien | Si je fais var_dump($_GET['idph']), je retrouve mon idph : string(2) "1 " (idph = 1). Mais avec var_dump($_GET['id_liaison']), j'ai string(0) "" (id_liaison devrait être = à 1 également ....). | |||||||
Astucien | Donc au moment ou tu fais : echo '<td><a href ="photo_suiv.php?idph='.$idph.'&id_liaison='.$id_liaison.'"> Ta variable est déja nulle, donc dans ton url tu devrais voir : " &id_liaison= " non ? Si oui vérifie avant ce code comment tu récupères ta variable, le problème vient surement de la.
| |||||||
Astucien | Tout à fait. Voici mon URL : http://127.0.0.1/........./photo_suiv.php?idph=6 & id_liaison= Comment je récupère ma variable en commençant par le début : 1) j'affiche les photos de l'albuml'album : echo '<td><a href = "photo2.php?idph='.$row['idph']. ' "><img border=0 height="50" src="' . $row['lien'] . '"><br></a></td>'; 2) j'affiche la photo sélectionnée :
3) j'affiche la photo suivante (ou j'essaye, plutôt ) :
J'ai changé de variable et j'ai titre_album à la place de id_liaison et même problème. Maintenant j'ai le message d'erreur Parse error: syntax error, unexpected T_STRING in D:\www\wamp\www\Kotoka\gestion\alb_photos\photo_suiv.php on line 23. Ligne qui correspond au WHERE ....... Et je pense que c'est à cause de la lecture de id_liaison ! Merci pour ton aide .... | |||||||
Petit astucien | P'tet initialiser id_liaison...Par exemple : if(empty($_GET["id_liaison"])) { $_GET["id_liaison"]="";} *µ* | |||||||
Astucien | midnightblue a écrit : Je ne pense pas que ce soit une solution ! Car id_liaison existe obligatoirement ..... !!!!!
Modifié par t671 le 11/12/2009 18:44 | |||||||
Astucien | Bonjour BxG, Bon ! Faut que je trouve une autre solution. En sachant que id_liaison a la même valeur que l'id de la table qui contient les titre et sous-titre, après $requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.id_liaison, photos.lien, photos.commentaire y a t'il possibilité de rajouter une condition, dans le WHERE ou après, d'afficher la photo suivante si "photos.id_liaison" = "alb_photos.id". Puisque dans $requete, on lit ces valeurs !!!! Comment puis-je faire cela ? Merci.
Modifié par t671 le 12/12/2009 10:49 | |||||||
Petit astucien | $id_liaison n'est pas $_GET["id_liaison"]... Si tu passes une variable par un lien (méthode GET), il faut l'initialiser avant toute chose. Ensuite tu peux mettre le nom du champ dans une nouvelle variable... $id_liaison=$_GET["id_liaison"]; avant de l'utiliser comme il te plait. *µ* P.S. : Ton premier post pointe seulement un probléme de lien et de passage de variable par la méthode GET. La lecture de la base de données est un autre face du probléme, en tout cas cette lecture ne peut se faire correctement si les variables contenant les paramétres à indiquer à la base de données sont incorrectes. Dans cette optique, la première chose est de veiller à leur bonne initialisation. Modifié par midnightblue le 12/12/2009 11:33 | |||||||
Astucien | Peux tu poster une image de tes tables, et souligner en rouge les champs que tu souhaites, car la tu m'as un peu perdu | |||||||
Astucien | Merci midnightblue pour ton intervention. Mais comme je n'arrive pas à passer deux variables d'un script à un autre, je cherche une autre solution .... ! Salut Bxg, voici mes tables : La table alb_photos :
La table photos :
Les "id_liaison" de la table "photos" se rapporte aux "id" de la table "alb_photos". Ceci pour lier les photos qui ont le même titre, voir même sous-titre. Tu en penses quoi de tout ça ???? J'étais quand même bien parti !!!!!
| |||||||
Astucien | J'en pense que pour commencer, a partir du moment ou tu as ton idph de la photo tu n'as pas besoin de connaitre l'id_liaison, car tu peux le retrouvé ensuite. Ensuite, si tu n'arrives pas a faire quelquechose ( ex : passer 2 variables dans l'url ), concentre toi sur ce problème car c'est possible.
Ensuite si j'ai bien compris, on a une image : ex ( la première avec id_liaison =1 ), tu veux qu'on puisse afficher les photos suivantes uniquement si elles sont dans le même album?
Si oui au moment ou tu recupères ta première photo récupères également son id_liaison, et pour la prochaine photo tu fias une requète en écrivant : $sReq = '.... WHERE id_liaison='.$id_liaison_premiere_photo.'' | |||||||
Petit astucien | Si tu es capable de passer une variable d'un script à l'autre, tu es capable d'en passer 100 000. Le lien, comme çà... <a href=script.php ...mais sans les sauts de ligne :-) Et dans script.php, tu initialises les variables passées par la méthode GET avant toute chose. Comme çà par exemple : if (empty($_GET["nomdelavariable1"])) { $_GET["nomdelavariable1"]=""; } Sinon rien ne marche, ou trés peu... Bon courage. *µ* *µ* | |||||||
Astucien | OK midnightblue ! J'ai réécris mon script et voilà le résultat : Pour l'affichage de la photo (passage des variables) : echo '<a href =\'photo_suiv.php?idph=".$idph."&id_liaison=".$id_liaison."\'><IMG src="../../images/next.gif" border=0 alt="Photo Suivante" width="27" height="30"><br></a></td>'; Pour l'affichage de la photo suivante (résultat de la ligne ci-dessus) :
Ce qui me parait bizarre, c'est que les var_dump me donne : string(9) "".$idph."" et string(15) "".$id_liaison."" , mais pas la valeur de la variable ????? Et à l'affichage de la page suivante, je n'ai rien, ormis les var_dump ..... L'URL me donne : http://127.0.0.1/.../alb_photos/photo_suiv.php?idph=".$idph."&id_liaison=".$id_liaison." Si dans le WHERE j'enlève AND id_liaison = '$id_liaison', j'ai l'affichage de tout l'album, les photos à la suite ..... Pourtant, si id=id_liaison, c'est que les photos appartiennent au même album .... Donc les autres, je n'en veux pas !!!!!!!! J'en fini plus ........
| |||||||
Petit astucien | Pour que tes variables soient prises en compte, écrit le début de la manière suivante... if(empty($_GET["$idph"])){ $_GET["idph"]="";} | |||||||
Astucien | J'ai donc écrit ceci :
Et le résultat : affichage des photos de l'album les unes sous les autres et : NULL string(0) "" Malheureusement je ne sais pas si cela provient du var_dump de idph ou id_liaison ?
| |||||||
Astucien | if(empty($_GET["$idph"])){ $_GET["idph"]="";}
ya pas de $ dans le $_GET c'est $_GET['truc'] et non $_GET["$truc"]
Et puis faudrait sécuritser tes variables aussi ... | |||||||
Astucien | Merci Malcom, mais avant de sécuriser les variables, j'aimerais pouvoir les afficher correctement ! Donc si j'écris : if(empty($_GET["idph"])){ $_GET["idph"]="";} $idph = $_GET['idph']; var_dump($_GET['idph']); j'obtiens : string(9) "".$idph."" string(0) "" avec affichage de toutes les photos les unes sous les autres (string(9) = 9 photos). Si encore elles étaient de la même famille (id_liaison identique), ça pourrait aller, mais ce n'est pas le cas ..... pffffffffff
| |||||||
Nouvel astucien |
Salut... pas mal d'erreurs (sécurité, requête mal construite, pas de gestion d'erreur, html mal formé...) Voila le code légèrment nettoyé... en imaginant que les champs que tu recherchent sont des int...
Pense à bien indenter ton code (espaces retour à la ligne etc) tu trouvera plus vite tes erreurs... normalise ta façon de coder (toujours utiliset les simples quotes pour tes chaines, sauf cas particulier et tu concatène tes variables, balises html en minuscule, etc) @ tchaOo° edit: j'ai rien dit pour l'indentation si ça vient du forum :) Modifié par kankrelune le 12/12/2009 17:48 | |||||||
Astucien | Merci kankrelune,
Je ne comprends pas tout dans ton script ..... Pourquoi initialises-tu idph et id_liaison à zéro en début de script ? Pourquoi ne réceptionnes-tu pas les variables ($idph = $_GET['idph']; et $id_liaison = $_GET['id_liaison'];) ? Je suppose que c'est le script d'affichage de la photo suivante ... ? Et je n'obtient que des pages blanches, sans message d'erreur. Je comprend plus rien, et je mélange tout .......... J'ai l'impression que ma variable id_liaison n'est pas lisible. Je l'avais déclaré en "varchar" dans mysql, je l'ai mis en "int", et c'est pareil .... ? Peut-être devrais-je essayer en créant une seule table ? Sinon abandonner ....... Modifié par t671 le 12/12/2009 18:27 | |||||||
Astucien | Bonjour tout le monde, C'est encore moi ..... J'ai trouvé ..... Le passage de deux variables d'un script à l'autre, c'était : <a href ="photo_suiv.php?idph='. $row['idph'] .' & idliaison='. $row['idliaison'] .'"> et là, ça fonctionne ..... . Merci pour l'aide ...... A ++
Modifié par t671 le 13/12/2009 11:54 | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|