Ik ben bezig met een ifje maar heb geen idee hoe dit precies in zn werk gaat. Tot nu toe heb ik dit:
<body>
<?php
$a = $_POST["gewicht"];
$b = $_POST["prijs"];
if ($a = '100'){ $b * 10 en dan deze waarde in variable zetten}
elseif($a = '200'){ $b * 5 en dan deze waarde in variable zetten}
elseif($a = '500'){ $b * 2 en dan deze waarde in variable zetten}
elseif($a = '1000'){ $b * 1 en dan deze waarde in variable zetten}
?>
<select name="gewicht">
<option value="100">100 Gram </option>
<option value="200">200 Gram </option>
<option value="500">500 Gram </option>
<option value="1000">1 KG </option>
</select>
</body>
De bedoeling is dat de prijs wordt doorgerekend naar kiloprijzen. Dus als ik 100 gram invoer dat deze dan wordt doorgerekend naar een kilo en aan de hand daarvan dit in een variabele wordt opgeslagen zodat ik het in de database kan zetten.
Als het binnen de context een prima naam is, waarom wat anders verzinnen? Ik wil ook een veld 'limit' kunnen noemen, maar dan moeten er wel tags omheen.
En als je 't eens vergeet merk je dat snel genoeg ;)
Het is wel een verschil of je -alles- backtickt, of alleen wat nodig is.
@Veil: Soms heeft iemand nogmaals een schop onder zijn kont nodig... En doorschoppen totdat de creativiteit komt bovendrijven en er alsnog een correcte kolomnaam wordt verzonnen. ;)
BACKTICS HEB JE NOOIT NODIG!!! Ook niet als jij vindt dat je ze wel nodig hebt, dat is een gebrek aan creativiteit.
Interessante discussie, ik ga proberen dat eigen te maken... het is inderdaad een pleuriswerk om telkens weer die gehele query op te schrijven met backticks (en nee, ik ben niet lui, ik tik ze compleet zelf, aardig wat werk ja haha).
Even een vraag, aan jou pgFrank:
Jij zegt dat je backticks nooit nodig hebt, maar hoe zit het dan met vergelijkingen en insertion/updates van waarden? Voorbeeld, de volgende query zoals ik voorheen zou doen:
mysql_query("UPDATE klanten SET naam = '" . $_POST['naam'] . "' WHERE id = '" . $_POST['id'] . "';");
Begrijp ik het goed dat je geen quotes nodig hebt voor de waarde die je aan naam wilt geven? Of slaat dit hele backtick verhaal alleen op tablenames?
Ho! Een quote is wat anders dan een backtick. Quotes zet je om een string en variabelen haal je buiten een string. Vandaar de enkele en dubbele quotes in jouw voorbeeld:
<?php
$query = "
UPDATE
klanten
SET
naam = '" . mysql_real_escape_string($_POST['naam']) . "'
WHERE
id = " . mysql_real_escape_string($_POST['id']) . ";";
mysql_query($query) or die(mysql_error().$query); // erg botte foutafhandeling!
?>
De waarde van het id hoef je niet tussen quotes te zetten, het zal geen string zijn, maar een integer. Controleer vooraf dus even of $_POST['id'] wel een integer bevat, ctype_digit() kan je daarbij helpen.
Mja jullie hebben gelijk over Integer vergelijking en het gebruik van quotes, my bad *shy*... Oh en het gebruik van mysql_real_escape_string wordt wel gedaan hoor (in mijn voorbeeldje kwam het niet naar boven, beetje kort voorbeeld). Ik heb daar een functie voor die de gehele $_POST-array doorloopt.
ps. nog 1 vraag; hoe gebruik je zo'n leuk codeblok in een bericht? Ik ben nieuw op 't forum en heb al wel een beetje gezocht naar wat openingposts waar de huisregels e.d. in staan, maar ik kon nergens dat van die codeblok vinden...