Jag har ett problem där ett värde som skickas med från ett formulär inte uppdaterar databasen korrekt.
Den del av koden jag har problem är denna:
echo "<tr><td width='100'><b>Butik: </b></td><td><select namne='butik' id='butik'>";
$sql_get_butik="SELECT butik FROM medlem WHERE $medlemsnummer=medlemsnummer";
$res_get_butik= mysql_query("$sql_get_butik");
while($rad2=mysql_fetch_array($res_get_butik)) {
$sql_get_butiknamn="SELECT id, butik FROM butiker ORDER BY id";
$res_get_butiknamn = mysql_query("$sql_get_butiknamn");
while($rad=mysql_fetch_array($res_get_butiknamn)) {
if ($rad['id'] == $rad2['butik'])
echo "<option value=\"".$rad['id']."\" selected=\"selected\">".$rad['butik']." ".$rad['id']."</option>";
else
echo "<option value=\"".$rad['id']."\">".$rad['butik']." ".$rad['id']."</option>";
}
}
echo "</select></td></tr>";
Det är option-värdet i strängen nedan jag vill ska följa med och uppdatera databasen. Alltså $rad['id'].
echo "<option value=\"".$rad['id']."\"...
Detta är koden som jag har tänkt ska uppdatera databasen. Alla övriga fält går bra att uppdatera utom detta där värdet bara blir 0 i databasen hela tiden. Även om jag uppdaterar ett annat fält så ändras detta värde till 0 i databasen. Här är det då koden butik='{$_POST['butik']}' som jag hade tänkt skulle göra uppdateringen.
if(isset($_POST['uppdatera'])){
$id=$_POST['id'];
mysql_query("UPDATE medlem SET anvandarnamn='{$_POST['anvandarnamn']}', fornamn='{$_POST['fornamn']}', efternamn='{$_POST['efternamn']}', gatuadress='{$_POST['adress']}', postnummer='{$_POST['postnummer']}', stad='{$_POST['stad']}', butik='{$_POST['butik']}', telefon1='{$_POST['telefon1']}', telefon2='{$_POST['telefon2']}', epost='{$_POST['epost']}', genre='{$_POST['genre']}' WHERE medlemsnummer='$id'");
}
Om det kan vara till någon hjälp så ser databasen ut såhär:
CREATE TABLE `medlem` (
`medlemsnummer` int(8) NOT NULL auto_increment,
`datumtid` varchar(25) NOT NULL default '',
`fornamn` varchar(255) NOT NULL default '',
`efternamn` varchar(255) NOT NULL default '',
`gatuadress` varchar(255) NOT NULL default '',
`postnummer` varchar(20) NOT NULL default '',
`stad` varchar(255) NOT NULL default '',
`butik` int(8) NOT NULL default '0',
`telefon1` varchar(20) NOT NULL default '',
`telefon2` varchar(20) default NULL,
`epost` varchar(255) NOT NULL default '',
`anvandarnamn` varchar(255) default NULL,
`losenord` varchar(255) default NULL,
`genre` varchar(255) NOT NULL default '',
`avstangd` int(1) NOT NULL default '0',
PRIMARY KEY (`medlemsnummer`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12345736 ;
Kan någon komma med ett tips på vad som är fel? Får känslan av att det inte infogas något värde från sidan till databasen, men var går det fel? Jag har som ni ser lagt till att visa id-numret som ska skickas med i rulllistan och där stämmer det, men sedan händer något.