Versio

Variabele column name

Overzicht Reageren

Marijn Struijlaart

Marijn Struijlaart

04/02/2012 13:48:29
Quote Anchor link
Hallo mensen

ik ben bezig met een spel in php voor mijn profielwerkstuk waarbij je o.a. gebrouwen kunt upgraden. nou heb het volgende probleem. ik heb verschillende kolommen in mijn database voor verschillende gebouwen. nu wil ik voor het upgraden van elk gebouw hetzelfde script kunnen gebruiken

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query2
= "UPDATE buildings SET '$name' = '$level' WHERE id = '$id'";
?>


daarbij is $level het volgende level dus de waarde die in de database moet komen. $name de naam van het gebouw en ook de naam van de kolom die moet worden aangepast.
beide variabelen zijn van tevoren gedefineerd
 
PHP hulp

PHP hulp

25/05/2012 17:22:48
Gesponsorde koppelingen:
 
Obelix en Idefix

Obelix en Idefix

04/02/2012 13:53:08
Quote Anchor link
En wat is nou het probleem?

Nog los van:
Variabelen buiten quotes.
Je script is lek.
Ziet er naar uit dat je (deels) onnodig variabelen kopieert.
Neem aan dat je elders controleert of de waarden wel kunnen/toegestaan zijn?
Neem aan dat foutafhandeling elders gebeurt?
 
Marijn Struijlaart

Marijn Struijlaart

04/02/2012 13:56:07
Quote Anchor link
foutafhandeling gebeurt inderdaad elders. de vraag is dus eigenlijk: kan je kolomnaam defineren in een variabele

wat bedoel je met het onnodig kopiëren van variabelen?

Toevoeging op 04/02/2012 13:59:27:

als ik als test de naam van tevoren defineer dan werkt het trouwens wel helemaal, alleen dan zou ik veel meer code nodig hebben dan op deze manier
 
Gerben G

Gerben G

04/02/2012 14:11:05
Quote Anchor link
@Martijn,
Uiteraard kun je de kolomnaam in een variable stoppen. Je zult bij je query de kolomnaam dan wel zonder quotes moeten gebruiken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query2
= 'UPDATE buildings SET '.$name.' = '.$level.' WHERE id = '.$id;
?>
 
Obelix en Idefix

Obelix en Idefix

04/02/2012 14:12:22
Quote Anchor link
Marijn Struijlaart op 04/02/2012 13:56:07:
de vraag is dus eigenlijk: kan je kolomnaam defineren in een variabele

Dat kun je dus zelf testen ;-)

Je kunt een variabele als kolomnaam gebruiken, maar het wordt echter volgens mij wel afgeraden.

Kopiëren variabelen: ik neem aan dat $level en $id ergens vandaan komen (formulier)? Waarom gebruik je dan niet de $_POST (of $_GET) waarde?
 
Marijn Struijlaart

Marijn Struijlaart

04/02/2012 14:17:08
Quote Anchor link
$level komt via een url en $id uit een dataabse, ik laat het leifst geen $_GET of $_SESSION waarden staan voor het overzicht.

bedankt Gerben ik ga het even testen. moet de query niet eigenlijk met dubbele quotes worden gedefineerd?

Toevoeging op 04/02/2012 14:23:18:

@Gerben, jammer. het werkt niet. moet ik misschien toch allemaal queries voor elk gebouw definiëren.
 
Obelix en Idefix

Obelix en Idefix

04/02/2012 14:32:06
Quote Anchor link
$level zal dus via een $_GET binnen komen. Waarom dan kopiëren naar $level?
Ieder zijn voorkeur, maar door het niet te gebruiken is voor iemand anders (en later voor jezelf mogelijk ook) niet duidelijk waar de variabele vandaan komt.

En wat werkt er niet? Krijg je een foutmelding?
 
Ger van Steenderen

Ger van Steenderen

04/02/2012 14:36:12
Quote Anchor link
Marijn Struijlaart op 04/02/2012 14:17:08:
$level komt via een url en $id uit een dataabse, ik laat het leifst geen $_GET of $_SESSION waarden staan voor het overzicht.

Dat is geen argument, als je je variabelen netjes aan elkaar dottert zoals Gerben doet houdt je net zoveel overzicht.
Quote:
bedankt Gerben ik ga het even testen. moet de query niet eigenlijk met dubbele quotes worden gedefineerd?


Het moet niet maar is wel handiger omdat in queries enkele quotes voorkomen, met dubbele quotes hoef je die niet te escapen.

Quote:
@Gerben, jammer. het werkt niet. moet ik misschien toch allemaal queries voor elk gebouw definiëren.

Nee, natuurlijk niet. Tenminste ik neem aan dat de naam van het gebouw de naam van de kolom is.
 
Marijn Struijlaart

Marijn Struijlaart

04/02/2012 14:39:41
Quote Anchor link
na wat gekloot is het dan toch gelukt. topic kan op slot
 



Overzicht Reageren