06. august 2007 - 22:27
Der er
5 kommentarer
Gemme session udefra data fra mysql!
Min kode ser sådan ud:
<?php
$regionsql = "SELECT * FROM region";
$result = mysql_query($regionsql)
or die("Invalid query: " . mysql_error());
while ($row = mysql_fetch_array($result)) {
$region[$row['regionID']] = $row['regionNavn'];
}
switch ($_GET['action']) {
case "edit":
$usersql = "SELECT * FROM user";
$result = mysql_query($usersql)
or die("Invalid query: " . mysql_error());
$row = mysql_fetch_array($result);
$regionID = $row['regionNavn'];
break;
default:
$regionID = "";
break;
}
?>
<select name="region">
<option value="<?php echo $regionID; ?>" selected>Vælg en region</option>
<?php
foreach ($region as $regionID => $regionNavn) {
if ($regionID == $regionNavn) {
$selected = "$regionID";
} else {
$selected = "";
}
?>
<option value="<?php echo $regionID; ?>"<?php
echo $selected; ?>><?php echo $regionNavn; ?></option>
<?php
}
?>
</select>
Hvad gør man?
07. august 2007 - 13:52
#3
Jeg har gjort følgende:
Side1:
<?php
$regionsql = "SELECT * FROM region";
$result = mysql_query($regionsql)
or die("Invalid query: " . mysql_error());
while ($row = mysql_fetch_array($result)) {
$region[$row['regionID']] = $row['regionNavn'];
}
switch ($_GET['action']) {
case "edit":
$usersql = "SELECT * FROM user";
$result = mysql_query($usersql)
or die("Invalid query: " . mysql_error());
$row = mysql_fetch_array($result);
$regionID = $row['regionNavn'];
break;
default:
$regionID = "";
break;
}
?>
<select name="region">
<option value="<?php echo $regionID; ?>" selected>Vælg en region</option>
<?php
foreach ($region as $regionID => $regionNavn) {
if ($regionID == $regionNavn) {
$selected = "$regionID";
} else {
$selected = "";
}
?>
<option value="<?php echo $regionID; ?>"<?php
echo $selected; ?>><?php echo $regionNavn; ?></option>
<?php
}
?>
</select>
Side2:
<?
session_start();
$_SESSION['region'] = $region;
?>
Side3:
<?php
session_start();
?>
<?php
$regionsql = "SELECT * FROM region";
$result = mysql_query($regionsql)
or die("Invalid query: " . mysql_error());
while ($row = mysql_fetch_array($result)) {
$region[$row['regionID']] = $row['regionNavn'];
}
switch ($_GET['action']) {
case "edit":
$usersql = "SELECT * FROM user";
$result = mysql_query($usersql)
or die("Invalid query: " . mysql_error());
$row = mysql_fetch_array($result);
$regionID = $row['regionNavn'];
break;
default:
$regionID = "";
break;
}
?>
<select name="region">
<option value="<?php echo $_SESSION['region']; ?>" selected><?php echo $_SESSION['region']; ?></option>
<?php
foreach ($region as $regionID => $regionNavn) {
if ($regionID == $regionNavn) {
$selected = "$regionID";
} else {
$selected = "";
}
?>
<option value="<?php echo $regionID; ?>"<?php
echo $selected; ?>><?php echo $regionNavn; ?></option>
<?php
}
?>
</select>
Det fungerer ok, men jeg får udskrevet regionID, som bliver gemt i databasen senere. Brugerne skal dog kun får udskrevet reginNavn til den tilhørende regionID.
Hvordan gør man det?
11. august 2007 - 14:29
#5
Ja, det virker nu, men jeg skal også bruge hjælp til update function, hvilke sletter det gemte data:
redigerprofil.php:
<?php
$field=explode(',','userID,brugernavn,email,kodeord,sex,usergroupID,fornavn,efternavn,birthday,birthmonth,birthyear,coadresse,adresse,cityID,regionID,country,telefon,mobil,statusID');
foreach ($_REQUEST as $key=>$value)
{
if (in_array($key,$field))
{
mysql_query( "UPDATE user SET `$key`='$value' where `userID`='$_SESSION[suid]';");
//print( "UPDATE user SET `$key`='$value' where `userID`='$_SESSION[suid]';\n");
}
}
?>
<?php
$sql = "SELECT * FROM user WHERE userID = '$_SESSION[suid]'";
//echo $sql;
$q = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($q);
//echo "<pre>";
//print_r($row);
?>
<form action="redigerprofil.php" method="post">
<input type="hidden" value="<?php echo $row['userID']; ?>" name="userID" size="1" />
<?php
$usergroupsql = "SELECT * FROM usergroup";
$result = mysql_query($usergroupsql)
or die("Invalid query: " . mysql_error());
while ($row = mysql_fetch_array($result)) {
$usergroup[$row['usergroupID']] = $row['usergroupNavn'];
}
switch ($_GET['action']) {
case "edit":
$usersql = "SELECT * FROM user";
$result = mysql_query($usersql)
or die("Invalid query: " . mysql_error());
$row = mysql_fetch_array($result);
$usergroupID = $row['usergroupNavn'];
break;
default:
$usergroupID = "";
break;
}
?>
<?
$sql = "SELECT * FROM user WHERE userID = '$_SESSION[suid]'";
//echo $sql;
$q = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($q);
//echo "<pre>";
//print_r($row);
?>
<select name="usergroupID">
<?
$usergroupID = $row['usergroupID'];
$queryusergroup = "SELECT usergroupNavn FROM usergroup WHERE usergroupID = $usergroupID";
$results = mysql_query($queryusergroup)
or die(mysql_error());
$row = mysql_fetch_array($results); ?>
<option value="<?php echo $row['usergroupID']; ?>" selected>
<?
$queryusergroup = "SELECT usergroupNavn FROM usergroup WHERE usergroupID = '$usergroupID'";
$results = mysql_query($queryusergroup)
or die(mysql_error());
$row = mysql_fetch_array($results);
echo $row['usergroupNavn'] . "";
echo '</option>';
?>
<?php
foreach ($usergroup as $usergroupID => $usergroupNavn) {
if ($usergroupID == $usergroupNavn) {
$selected = "$usergroupID";
} else {
$selected = "";
}
?>
<option value="<?php echo $usergroupID; ?>"<?php
echo $selected; ?>><?php echo $usergroupNavn; ?></option>
<?php
}
?>
</select>
Hvad gør jeg forkert?