[RESOLU] Accès spécifique à une table

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 : [RESOLU] Accès spécifique à une table

Re: Accès spécifique à une table

par nestor94 » 18 oct. 2021, 14:05

Je continue sur mon idée !
<?php
$pdostat = $bdd->prepare("SELECT nom_ville FROM villes LEFT JOIN membres ON villes.pos_x_map = membres.pos_x AND villes.pos_y_map = membres.pos_y WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();    
if (!empty($membreSession )) { 
$nom_ville = $membreSession['nom_ville'];
}
$nom_ville = str_replace(' ', '_', $nom_ville);
?>
(Ne reste plus qu'à créer un script générique qui affichera la map pour n'importe quelle ville.)

Re: Accès spécifique à une table

par or 1 » 18 oct. 2021, 12:27

il est possible qu'il faille une autre table pour ces déplacements, mais il faudrait comprendre ce que doit faire l'appli pour être affirmatif.

Re: Accès spécifique à une table

par nestor94 » 18 oct. 2021, 01:21

J'ai retesté avec seulement la table villes mais ça ne fonctionne pas. A cause des déplacements (pos_x, pos_y) déjà.

Re: Accès spécifique à une table

par or 1 » 17 oct. 2021, 13:39

rename("$nom_ville", "$nom_ville" . '_' .");
que dit la doc sur ce que fait cette fonction ?

à noter qu'il n'y aurait pas tous ces problèmes d'espaces, d'accents, si la structure de la base de données était correcte avec une seule table villes.

Re: Accès spécifique à une table

par nestor94 » 17 oct. 2021, 12:29

En concaténant proprement, c'est mieux. Il reste un problème que j'avais escamoté:
$nom_ville peut parfois avoir un espace ( espace qui a été remplacé par un underscore lors de la création de la table du meme nom, sinon ça coinçait!)
(par exemple Las Vegas -----> Las_Vegas)
je n'arrive pas à trouver la bonne syntaxe pour le renommage:
$nom_ville = $membreSession['nom_ville'];
rename("$nom_ville", "$nom_ville" . '_'  .");
header('Location: '.$nom_ville.'.php');

Re: Accès spécifique à une table

par @rthur » 17 oct. 2021, 12:07

As-tu bien activé la gestion des erreurs de ta base de données ?
Pour PDO il faut la mettre à PDO::ERRMODE_WARNING pour t'aider au debugage
https://www.php.net/manual/fr/pdo.error-handling.php

Ensuite pour la concaténation des variables, il faut utiliser le point :
header('Location: '.$table.'.php');

Accès spécifique à une table

par nestor94 » 17 oct. 2021, 11:57

Bonjour,

je souhaiterai accéder à une table (dont le nom est aussi une colonne dans une autre table) (le tout dans un script php) :roll:

Voici l'exemple:

table villes avec une colonne nom_ville (contient "testville")


table testville avec une colonne nom_ville (contient "testville")

la finalité devant être

......header('Location:testville.php');
test en cours ci dessous
<?php
$pdostat = $bdd->prepare("SELECT nom_ville FROM villes LEFT JOIN membres ON villes.pos_x_map = membres.pos_x AND villes.pos_y_map = membres.pos_y WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();    
if (!empty($membreSession )) { 
$nom_ville = $membreSession['nom_ville'];
}
$table = $nom_ville;
header('Location: $table.php');
?>