Page 1 sur 1

requete avec passage variable url

Posté : 10 déc. 2021, 11:15
par nestor94
Bonjour, je n'arrive pas à passer une variable dans une url
$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$idMembreProprio = !empty($_GET['id']) ? $_GET['id'] : NULL;

// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id = :id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $idMembreProprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $membreSession, PDO::PARAM_INT);
$pdostat->execute();
$membreProprio = $pdostat->fetch();  
----partie html----
<?php if (!$membreProprio) : ?>

    <p>Ce perso n'existe pas.<p>
    

<?php else :
// identifiant du membre sélectionné dans l'url
$idMembreProprio = !empty($_GET['id']) ? $_GET['id'] : NULL;

// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id= :id AND contenu_batiment =:contenu_batiment");
$pdostat->bindvalue(':id', $idMembreProprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $membreSession['contenu_batiment'], PDO::PARAM_INT);
$pdostat->execute();
$membreProprio = $pdostat->fetch();
echo '<img src="' . htmlentities($membreProprio['contenu_batiment']) . '">'; 
?>
Il faudrait que $proprio ( qui est un pseudo) passe dans l'url...

Re: requete avec passage variable url

Posté : 10 déc. 2021, 12:29
par two3d

Re: requete avec passage variable url

Posté : 10 déc. 2021, 17:40
par nestor94
$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$proprio = !empty($_GET['proprio']) ? $_GET['proprio'] : NULL;

// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id =:id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();  
J'ai réécris le script ainsi mais je tombe toujours sur "
<p>Ce perso n'existe pas.<p>

Re: requete avec passage variable url

Posté : 10 déc. 2021, 18:16
par or 1
ce dernier code ne comprend pas : "Ce perso n'existe pas". il ne peut donc pas afficher "Ce perso n'existe pas".
quelle est l'url de la page ?

Re: requete avec passage variable url

Posté : 10 déc. 2021, 18:29
par nestor94
C'est parce que je n'ai pas remis ici tout le code :oops:
<?php
session_start();
require_once 'config.php';
$idMembreSession = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;

$pdostat = $bdd->prepare("SELECT nom_ville FROM villes LEFT JOIN membres ON villes.pos_x_map = membres.pos_x_enter_ville AND villes.pos_y_map = membres.pos_y_enter_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession, PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();    
if (!empty($membreSession)) { 
$nom_ville = $membreSession['nom_ville'];
}

$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$proprio = !empty($_GET['proprio']) ? $_GET['proprio'] : NULL;
// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id =:id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();  
partie html
<?php if (!$proprio) : ?>

    <p>Ce perso n'existe pas.<p>
    

<?php else :
// identifiant du membre sélectionné dans l'url
$proprio = !empty($_GET['proprio']) ? $_GET['proprio'] : NULL;

// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id= :id AND contenu_batiment =:contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();
?>
<br><br>
<table>
<tr><td colspan="3"><b><font size="3">INTERACTIONS</b></font></td></tr>
<tr><td><font size="3"><a href="/voler_stock_batiment_perso_id.php?id=<?php '<img src="' . htmlentities($proprio['contenu_batiment']) . '">'; 
intval($proprio['id']) ?>" title="CAMBRIOLER">CAMBRIOLER</a></td>
</table>
<?php endif; ?>
<br><br><center><a href="/map_detail_lieu.php">Vers la carte de jeu</a></a></center>
</body>
</html>




Re: requete avec passage variable url

Posté : 10 déc. 2021, 18:37
par or 1
quelle est l'url de la page ?

Re: requete avec passage variable url

Posté : 10 déc. 2021, 19:06
par nestor94

Re: requete avec passage variable url

Posté : 10 déc. 2021, 19:18
par or 1
soit une url sans paramètre.
est-il possible de récupérer le paramètre proprio dans une url qui n'a pas de paramètre ?

Re: requete avec passage variable url

Posté : 10 déc. 2021, 19:30
par nestor94
Je pense que non, mais je ne comprends pas comment faire par rapport à:
$proprio = !empty($_GET['proprio']) ? $_GET['proprio'] : NULL;

Re: requete avec passage variable url

Posté : 10 déc. 2021, 19:34
par or 1
il faut faire les choses dans l'ordre.
il faut commencer par
https://www.farwest1850.net/cambrioler_entrepot.php
comme je doute que ce soit l'utilisateur qui rentre direct cette url, il faut revoir le code qui fait un lien vers cette page et passer le paramètre.

Re: requete avec passage variable url

Posté : 10 déc. 2021, 23:47
par nestor94
Ok, dans le script qui appelle le lien, j'ai mis ceci:
<td><b><a href="cambrioler_entrepot.php?id=proprio"></b></a></td>

puis modifié celui qui nous intéresse ainsi: (extrait)
$proprio = !empty($_GET['id']) ? $_GET['id'] : NULL;
// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id =:id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();  

Re: requete avec passage variable url

Posté : 11 déc. 2021, 00:11
par or 1
cambrioler_entrepot.php?id=proprio
que vaut $_GET['id'] avec une telle url ?

Re: requete avec passage variable url

Posté : 11 déc. 2021, 11:30
par nestor94
proprio...

j'ai remodifié ainsi le lien:
<a href="cambrioler_entrepot.php?id='$proprio'">
puis:
$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$proprio = !empty($_GET['id']) ? $_GET['id'] : NULL;
// récupération en bdd du membre sélectionné dans l'url
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id =:id AND contenu_batiment = :contenu_batiment");
$pdostat->bindvalue(':id', $proprio, PDO::PARAM_INT);
$pdostat->bindvalue(':contenu_batiment', $proprio, PDO::PARAM_INT);
$pdostat->execute();
$proprio = $pdostat->fetch();  





Re: [RESOLU] requete avec passage variable url

Posté : 14 déc. 2021, 02:27
par nestor94
Alors, comme je ne m'en sortais pas, j'ai modifié le script sans passer par l'url et tout sur la meme page.
$pdostat = $bdd->prepare("SELECT nom_ville FROM villes LEFT JOIN membres ON villes.pos_x_map = membres.pos_x_enter_ville AND villes.pos_y_map = membres.pos_y_enter_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession, PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();    
if (!empty($membreSession)) { 
$nom_ville = $membreSession['nom_ville'];
}
$pdostat = $bdd->prepare("SELECT proprio FROM $nom_ville LEFT JOIN membres ON $nom_ville.pos_x = membres.pos_x_ville AND $nom_ville.pos_y = membres.pos_y_ville WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();  
if (!empty($membreSession )) { 
$proprio = $membreSession['proprio'];
}
$idMembreCible = $proprio;
// récupération en bdd du membre sélectionné 
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE pseudo = :pseudo");
$pdostat->bindvalue(':pseudo', $idMembreCible, PDO::PARAM_STR);
$pdostat->execute();
$membreCible = $pdostat->fetch();
if (!empty($membreCible)) { 
$pseudo = $membreCible['pseudo'];
}
puis plus loin, je recupère ce qui m'intéresse.
<?php if (!$membreCible) : ?>

    <p>Ce perso n'existe pas ou n'est plus à proximité.<p>
    

<?php else :
// identifiant du membre déclaré
$idMembreCible = $proprio;

// récupération en bdd du membre déclaré
$pdostat = $bdd->prepare("SELECT * FROM membres WHERE pseudo = :pseudo");
$pdostat->bindvalue(':pseudo', $idMembreCible, PDO::PARAM_STR);
$pdostat->execute();
$membreCible = $pdostat->fetch();
?>
<br>
<table>
<td><?php echo '<img src="' . htmlentities($membreCible['contenu_batiment']) . '">'; ?>
<br><b><font size="2"><?php echo '' . htmlentities($membreCible['qte_batiment']) .''; ?></b></font></td>
</table>
<br>
<table>
<tr><td><font size="3"><a href="/devaliser_stock_batiment_perso_id.php?id=<?php echo intval($membreCible['id']) ?>" title="VOL">FORCER LA PORTE</a></td>
</table>
<?php endif; ?>
C'est un peu tordu, mais ça fonctionne parfaitement.