> Tous les forums > Forum des Webmasters
 passage variables phpSujet résolu
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
t671
  Posté le 11/12/2009 @ 09:47 
Aller en bas de la page 
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é
si-si
 Posté le 11/12/2009 à 10:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

echo '<td><a href ="photo.php?idph='.$idph.'&titre_album&'.$soustitre.'"><img border=0 height="50" src="'.$row['lien'].'"><br></a></td>';

midnightblue
 Posté le 11/12/2009 à 12:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
si-si
 Posté le 11/12/2009 à 12:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

va falloir m'expliquer comment tu fais pour parser le query_string comme ça...joli blond :)

midnightblue
 Posté le 11/12/2009 à 14:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Query_string, of course. Comment va-t'il, belle brune ? Si tu le vois, parse lui le bonjour de ma part.

*µ*{#}

t671
 Posté le 11/12/2009 à 15:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 ?

t671
 Posté le 11/12/2009 à 15:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 ?

BxG
 Posté le 11/12/2009 à 15:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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.'">

t671
 Posté le 11/12/2009 à 15:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 :

<link rel="stylesheet" type="text/css" href="../../kot.css">

<?php

$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'kot';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$idph = $_GET['idph'];
$id_liaison = $_GET['id_liaison'];
$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.id_liaison, photos.lien, photos.commentaire
FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.id_liaison
WHERE idph < $idph AND id_liaison = $id_liaison";

$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

while($row = mysql_fetch_array($result))

De quoi cela peut-il venir ?

BxG
 Posté le 11/12/2009 à 15:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

$idph = $_GET['idph'];
$id_liaison = $_GET['id_liaison'];
$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.id_liaison, photos.lien, photos.commentaire FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.id_liaison
WHERE idph < ".$idph." AND id_liaison = ".$id_liaison." ";


Sa donne quoi ?



Modifié par BxG le 11/12/2009 15:36
t671
 Posté le 11/12/2009 à 15:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
BxG a écrit :

$idph = $_GET['idph'];
$id_liaison = $_GET['id_liaison'];
$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.id_liaison, photos.lien, photos.commentaire FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.id_liaison
WHERE idph < ".$idph." AND id_liaison = ".$id_liaison." ";


Sa donne quoi ?

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 ???

t671
 Posté le 11/12/2009 à 16:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
BxG a écrit :

$idph = $_GET['idph'];
$id_liaison = $_GET['id_liaison'];
$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.id_liaison, photos.lien, photos.commentaire FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.id_liaison
WHERE idph < ".$idph." AND id_liaison = ".$id_liaison." ";


Sa donne quoi ?

Si je veux passer que id_liaison, ça passe pas non plus ! Donc le pb vient de la variable .... !!!! Mais je vois pô trop .....

BxG
 Posté le 11/12/2009 à 16:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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.

t671
 Posté le 11/12/2009 à 16:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 ....).

BxG
 Posté le 11/12/2009 à 16:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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.

t671
 Posté le 11/12/2009 à 18:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 :

$idph = $_GET['idph'];

$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.id_liaison, photos.lien, photos.commentaire
FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.id_liaison
WHERE idph = '$idph' ";

$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

while($row = mysql_fetch_array($result))

{
echo '<a href = "aff_alb_photos.php"><IMG src="../../images/retour.gif" border=0 alt="Retour Album Photos" width="28" height="30"></A>' ;
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>';

3) j'affiche la photo suivante (ou j'essaye, plutôt ) :

$idph = $_GET['idph'];
$id_liaison = $_GET['id_liaison'];

$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.id_liaison, photos.lien, photos.commentaire
FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.id_liaison
//WHERE idph = '$idph' ";
WHERE idph > ".$idph." AND id_liaison = ".$id_liaison.";

$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

while($row = mysql_fetch_array($result))

{

//echo '<center><a href = "photo_prec.php?idph='.$row['idph']. ' "><IMG src="../../images/back.gif" border=0 alt="Précédente" width="27" height="30"></A>' ;
echo '<a href = "aff_alb_photos.php"><IMG src="../../images/retour.gif" border=0 alt="Retour" width="28" height="30"></A>' ;
echo '<a href = "photo_suiv.php?idph='.$idph.' & id_liaison='.$id_liaison.'"><IMG src="../../images/next.gif" border=0 alt="Suivante" width="27" height="30"></a><p>';
echo '<b><u>'. $row['titre_album'] .'</u></b><p>';
echo '<i>'. $row['soustitre'] .'</i><p>';
echo '<img border=0 height="350" src="' . $row['lien'] . '"><p>'. $row['commentaire'] .'</center>';

}

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 ....

midnightblue
 Posté le 11/12/2009 à 18:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

P'tet initialiser id_liaison...Par exemple :

if(empty($_GET["id_liaison"])) { $_GET["id_liaison"]="";}

*µ*

t671
 Posté le 11/12/2009 à 18:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
midnightblue a écrit :

P'tet initialiser id_liaison...Par exemple :

if(empty($_GET["id_liaison"])) { $_GET["id_liaison"]="";}

*µ*

Je ne pense pas que ce soit une solution ! Car id_liaison existe obligatoirement ..... !!!!!



Modifié par t671 le 11/12/2009 18:44
t671
 Posté le 12/12/2009 à 10:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.id_liaison
WHERE idph > '$idph' ";
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))

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
midnightblue
 Posté le 12/12/2009 à 11:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
BxG
 Posté le 12/12/2009 à 11:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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

t671
 Posté le 12/12/2009 à 11:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 !!!!!

BxG
 Posté le 12/12/2009 à 11:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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.''

midnightblue
 Posté le 12/12/2009 à 11:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
?nomdelavariable1=".$valeurdelavariable1."
&nomdelavariable2=".$valeurdelavariable2."
&nomdelavariable3=".$valeurdelavariable3."
..............................................................
&nomdelavariableN=".$valeurdelavariableN."
</a>

...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"]=""; }
.............................................................................................
if (empty($_GET["nomdelavariableN"])) { $_GET["nomdelavariableN"]=""; }

Sinon rien ne marche, ou trés peu...

Bon courage.

*µ*

*µ*

t671
 Posté le 12/12/2009 à 12:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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) :

$idph = $_GET['idph'];
$id_liaison = $_GET['id_liaison'];
var_dump($_GET['idph']);
var_dump($_GET['id_liaison']);

$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.id_liaison, photos.lien, photos.commentaire
FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.id_liaison
WHERE idph > '$idph' AND id_liaison = '$id_liaison'";
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))

{
echo '<center><a href = "photo_prec.php?idph='.$row['idph']. ' "><IMG src="../../images/back.gif" border=0 alt="Précédente" width="27" height="30"></A>' ;
echo '<a href = "aff_alb_photos.php"><IMG src="../../images/retour.gif" border=0 alt="Retour Album Photos" width="28" height="30"></A>' ;
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>';
echo '<b><u>'. $row['titre_album'] .'</u></b><p>';
echo '<i>'. $row['soustitre'] .'</i><p>';
echo '<img border=0 height="350" src="' . $row['lien'] . '"><p>'. $row['commentaire'] .'</center>';
}

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 ........

midnightblue
 Posté le 12/12/2009 à 13:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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"]="";}
if(empty($_GET["$id-liaison"])){ $_GET["id_liaison"]="";}

$idph = $_GET['idph'];
$id_liaison = $_GET['id_liaison'];

var_dump($idphp);
var_dump($id_liaison);

Publicité
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Lecteur/graveur de CD/DVD externe USB à 19,55 €
19,55 € 25 € -22% @Amazon
Boîtier COOLER MASTER MasterBox Q300L (mATX, fenêtre) à 42,56 €
42,56 € 69 € -38% @Cdiscount
Batterie portable Charmast 10400 mAh 18W PD charge rapide à 17,28 €
17,28 € 26,99 € -36% @Amazon
Ecran PC 24.5 pouces BenQ EX2510S (FHD, IPS, FreeSync,165Hz, 2xHP, réglable en hauteur) à 179 €
179,00 € 249 € -28% @Amazon
Kit évolution PC : AMD Ryzen 7 5800X + carte mère B550 AORUS Elite V2 à 379,90 €
379,90 € 420 € -10% @RueDuCommerce
Batterie portable Charmast 10000 mAh (USB C/ USB A/ 4 câbles intégrés) à 19,99 €
19,99 € 26,99 € -26% @Amazon
Processeur AMD Ryzen 7 5700G (8 coeurs, Vega 8, AM4) à 188,98 €
188,98 € 250 € -24% @Amazon
1 Lego acheté = le 2ème à -50% chez Cdiscount
@Cdiscount
Portable 17,3 pouces HP (FHD IPS, Ryzen 5 5500U, 16Go/512Go, Windows 11) à 599 €
599 € 699 € -14% @Leclerc
Ecouteurs sans fil Bluetooth Xiaomi Redmi Buds 3 Lite à 20,52 €
20,52 € 32,99 € -38% @Amazon

Sujets relatifs
flash/phph passage de variables
Passage de variables
Passage de variable et affichage
passage d'une URL à une autre
Passage de tableau lors d'un changement de page.
recuperation formulaire dans les variables php
Problème de gestion de variables de session
Problème de gestion de variables de session
Passage en session php
passage variable avec header
Plus de sujets relatifs à passage variables php
 > Tous les forums > Forum Forum des Webmasters