Ik wil 000000 opslaan in een database (voor de achtergrond kleur van een pagina in een flash-filmpjes-album). Dat lukt. Alleen als ik dan UPDATE doe, en dus de kolom 'bgcolor' UPDATE, en 000000 invul, dan staat er 0 in de DB. Hoe kan ik dat verhelpen? Hoop dat het duidelijk is.

Ik weet niet welke code ik moet geven maar hier is die van edit.php:
<?php
include("../connect.php");
if (!isset($_POST['submit'])) {
echo '
<fieldset><legend><b>Bestand editten</b></legend>
<form action="edit.php" method="post">
<tt>&nbsp;</tt><input type="text" class="text" readonly="readonly" name="id" value="' . $_GET['id'] . '">ID<br>
<tt>&nbsp;</tt><input type="text" class="text" name="file" value="' . $_GET['file'] . '" />Bestandsnaam<br>
<tt>&nbsp;</tt><input type="text" class="text" name="naam" value="' . $_GET['naam'] . '" />Titel<br>
<tt>#</tt><input type="text" class="text" maxlength="6" name="bgcolor" value="' . $_GET['bgcolor'] . '" />Achtergrondkleur<br>
<tt>&nbsp;</tt><input type="text" class="text" maxlength="3" name="hoogte" value="' . $_GET['hoogte'] . '" />Hoogte<br>
<tt>&nbsp;</tt><input type="text" class="text" maxlength="3" name="breedte" value="' . $_GET['breedte'] . '" />Breedte<br>
<tt>&nbsp;</tt><input type="submit" class="text" name="submit" value="submit" id="submit">
</form>
</fieldset><br />&nbsp;<br /><a href="index.php">klik hier om terug te gaan</a>
';
} else {

$query = "UPDATE flashmovies SET file='".$_POST['file']."', naam='".$_POST['naam']."', bgcolor=".$_POST['bgcolor'].", hoogte=".$_POST['hoogte'].", breedte=".$_POST['breedte']." WHERE id=".$_POST['id']."";
$sql = mysql_query($query) or die(mysql_error());

echo 'velden ge-update!<br>';
echo '<a href="index.php">klik hier om terug te gaan</a>';

}
?>
Je slaat hem op als een getal, waarschijnlijk. Om een kleurcode op te slaan kun je beter een type varchar gebruiken.
Je moet in de databse geen waarde int mee geven maar gewoon txt/varchar
Dit omdat volgens int de waarde 000000 gelijk is aan 0.

Ik denk dat het daar aan ligt
bgcolor varchar(255) latin1_swedish_ci Ja NULL

edit: en oja, als int opslanais ook niet slim dan kan je ook niet FF0000 doen ofzo
doe hem dan is met tekst.

@je edit dat klopt helemaal gelijk in.
als dat nog niet werkt maak je er even een print regel onder of alles goed doorgezonden wordt.
print"".$_POST['bgcolor']."";

Ja, als je als kleur FABCDE ofzo opgeeft werkt het wel. Ok zal testen met de print als ik terug kom van de film.


ps.: echo is sneller dan print;-)
Ik zou gewoon een varchar gebruiken.
bgcolor varchar(6) NULL

er is maar 6 nodig.

de gewone notatie's hebben ook niet meer dan 6 tekens
red
blue
yellow
...
@Tim:
<?php print"".$_POST['bgcolor'].""; ?> kun je eenvoudiger schrijven door al die overbodige quotes weg te laten: <?php print $_POST['bgcolor']; ?>

En wat al is gezegd, waarom print gebruiken wanneer echo sneller is?
@frank

Echo is ook goed, maakt niet zoveel uit, het ging erom dat er even gekeken werd of alles goed werd doorgezonden.

Die dubbele quotes om in een editor het duidelijker te laten opvallen.(omdat ze dan een andere kleur krijgen)
Ook dit is niet echt nodig, maar voor dit soort dingen en grote scripts vindt ik het makkelijker

Reageren