[RESOLU] UPDATE $variable SET...

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] UPDATE $variable SET...

Re: UPDATE $variable SET...

par Incognito » 06 janv. 2015, 16:01

Merci pour votre conseil...effectivement j'avais peur d'avoir de nombreuses lignes dans ma table mais si cela peut me simplifier la vie alors ok...

Cordialement

Re: UPDATE $variable SET...

par Genova » 06 janv. 2015, 15:17

Honnêtement il te faut une seule table pour toutes tes villes, puisque les colonnes sont similaires. Non seulement ça te simplifiera beaucoup la vie, mais c'est aussi l'architecture qui est recommandée. Les seuls cas qui pourraient justifier de séparer tes tables :
- Si tes villes ont des colonnes vraiment différentes (ce qui n'est pas ton cas)
- Des cas très précis d'optimisation sur des bigdata (ce qui n'est pas non plus ton cas à priori)

N'aies pas peur d'avoir des centaines de milliers de lignes dans une seule table, MySQL est prévu pour ça ;) Penses juste à ajouter un index sur la colonne qui contiendra ta ville.

++

Re: UPDATE $variable SET...

par Incognito » 06 janv. 2015, 13:36

Le projet est d'afficher la météo par ville...on peut ajouter une ville (via CREATE TABLE) ensuite dans mes tables je mets à jour mes différentes infos...

Je vais réfléchir à ta question mais je pense que c'est faisable...

Re: UPDATE $variable SET...

par Genova » 06 janv. 2015, 12:40

Tu ne peux pas bind les noms de table : http://stackoverflow.com/questions/1518 ... table-name

Il faut donc faire la vérification à la main :
$allowedCities = array('brive', 'paris', 'etc..');
if (!in_array($city, $allowedCities))
   throw new Exception('City '.$city.' not allowed');

$req=$bdd->prepare('UPDATE '.$city.' SET temp_mini=:tempMini, temp_maxi=:tempMaxi, comment=:com WHERE period=:period');
       
        $req->execute(array(
        'tempMini'=>$tempMini,
        'tempMaxi'=>$tempMaxi,
        'com'=>$weatherCom,
        'period'=>$period
        ));
Je ne connais pas la modélisation de ta base de donnée, mais là comme ça je trouve qu'avoir une table par ville me paraît un peu étrange. Tu ne peux pas ajouter ta ville en tant que colonne d'une table commune plutôt ?

UPDATE $variable SET...

par Incognito » 06 janv. 2015, 12:24

Bonjour et bonne année 2015 à tous...

Voila le probléme jour...

Je souhaite modifier une ligne dans une table en PDO....(super simple)...
$req=$bdd->prepare('UPDATE brive SET temp_mini=:tempMini, temp_maxi=:tempMaxi, comment=:com WHERE period=:period');
	
	$req->execute(array(
	'tempMini'=>$tempMini,
	'tempMaxi'=>$tempMaxi,
	'com'=>$weatherCom,
	'period'=>$period
	));
Ce code marche la ligne est bien modifier dans la table brive...

Mais si je veux remplacer brive par une variable $city....ça ne marche pas...
$req=$bdd->prepare('UPDATE :city SET temp_mini=:tempMini, temp_maxi=:tempMaxi, comment=:com WHERE period=:period');
	
	$req->execute(array(
	'city'=>$city,
	'tempMini'=>$tempMini,
	'tempMaxi'=>$tempMaxi,
	'com'=>$weatherCom,
	'period'=>$period
	));
Si quelqu'un à une réponse à mon probléme...d'avance merci...

Cordialement