[RESOLU] probleme create 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] probleme create table

Re: probleme create table

par nestor94 » 10 oct. 2021, 22:50

Oui, j'ai déjà une table ville, le soucis, c'est que dans le gameplay de mon projet, le joueur peut aussi y créer des batiments, et donc d'autres tiles.
J'ai donc un probleme au niveau des coordonnées qui vont se chevaucher, voire se mélanger entre les différentes villes, voire avec la map principale. Je ne peux donc pas créer ces futures table par avance, ne connaissant pas (encore) le nom de la ville et ce que le joueur y batira.
(j'espère que je suis clair!).
Ce n'est pas vital de toutes façons. Les joueurs batiront leurs villes directement sur la map principale.

Re: probleme create table

par Ryle » 10 oct. 2021, 15:16

Salutations !

Il ne faut pas d'apostrophes autour du nom de la table dans la requête :)

Mais je rejoins or1, la logique serait d'avoir une seule table de villes dans laquelle tu viens ajouter un enregistrement pour chaque ville créée plutôt que de créer des tables à la volée... quitte à faire une seconde table qui référence ta table ville avec toutes les tiles et autres informations dont tu peux avoir besoin :)

Re: probleme create table

par nestor94 » 09 oct. 2021, 23:02

$sql = "CREATE '$msg_nom_ville' 
(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
tile VARCHAR(30) NOT NULL,
pos_x SMALLINT(5) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
$bdd->exec($sql);
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ''testville' ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, tile VARCHAR(30' à la ligne 1 in C:\wamp64\www\create_ville.php on line 22

En fait, chaque membre se déplace sur une map principale et peut éventuellement batir une ville, d'où la création d'une table (au nom de ladite ville préalablement créée) qui générera une autre map. S'il se trouve une solution moins tordue, je suis preneur. Il reste cependant cette erreur que je n'arrive pas à solutionner.

Re: probleme create table

par or 1 » 08 oct. 2021, 19:18

sans exécuter la requête, cela marche forcément beaucoup moins bien.

quel est le but de ces tables ? car je doute que ce soit la meilleure solution.

Re: probleme create table

par @rthur » 08 oct. 2021, 16:38

As-tu activé la gestion d'erreur de PDO sur PDO::ERRMODE_WARNING ?
https://www.php.net/manual/fr/pdo.error-handling.php
Cela peut aider à débuguer.

probleme create table

par nestor94 » 08 oct. 2021, 15:45

Bonjour,

J'essaie de créer une table mais sans succès
<?php
session_start();
require_once 'config.php';
include 'verif_PA.php';
$idMembreSession = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;

$pdostat = $bdd->prepare("SELECT msg_nom_ville FROM map LEFT JOIN membres ON map.pos_x = membres.pos_x AND map.pos_y = membres.pos_y WHERE membres.id=:id");
$pdostat->bindvalue(':id',$idMembreSession ,PDO::PARAM_INT);
$pdostat->execute();
$membreSession = $pdostat->fetch();    
if (!empty($membreSession )) { 
$msg_nom_ville = $membreSession['msg_nom_ville'];
 }

$sql = "CREATE '$msg_nom_ville' (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
tile VARCHAR(30) NOT NULL,
pos_x SMALLINT(5) NOT NULL,
pos_y SMALLINT(5) NOT NULL,
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
?>