Avatar billede human Nybegynder
16. november 2003 - 14:21 Der er 14 kommentarer og
1 løsning

Problem med update af tabel

Jeg har lavet denne ½ lange kode. Det virker sådan set fint nok, den kommer ikke med fejl. Men den opdatere ikke tabellen! Den siger your table was succesfully updated, men det bliver den altså ikke. Hvad kan være problemet?


<?
session_start();
header("Cache-control: private");
require("inc/conn_inc.php");
session_checker();
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<br><br>
<?

$errors = array();
$fejl = 5;
#carbrand check
if(isset($_POST['carbrand'])) {
  if(trim($_POST['carbrand']) == '') $errors['carbrand'] = "<font color='#FF3300'>Field Carbrand is required</font>.";
  else $fejl--;
}
else $errors['carbrand'] = "*";

#carmodel check
if(isset($_POST['carmodel'])) {
  if(trim($_POST['carmodel']) == '') $errors['carmodel'] = "<font color='#FF3300'>Field Carmodel is required</font>.";
  else $fejl--;
}
else $errors['carmodel'] = "*";

#devicenumber check
if(isset($_POST['devicenumber'])) {
  if(trim($_POST['devicenumber']) == '') $errors['devicenumber'] = "<font color='#FF3300'>Field Devicenumber is required</font>.";
  else $fejl--;
}
else $errors['devicenumber'] = "*";

#unitid check
if(isset($_POST['unitid'])) {
  if(trim($_POST['unitid']) == '') $errors['unitid'] = "<font color='#FF3300'>Field Unitid is required</font>.";
  else $fejl--;
}
else $errors['unitid'] = "*";

#mainnumber check
if(isset($_POST['mainnumber'])) {
  if(trim($_POST['mainnumber']) == '') $errors['mainnumber'] = "<font color='#FF3300'>Field Mainnumber is required</font>.";
  else $fejl--;
}
else $errors['mainnumber'] = "*";



if(!$fejl){
  $carbrand = $_POST['carbrand'];
  $carmodel = $_POST['carmodel'];
  $devicenumber = $_POST['devicenumber'];
  $unitid = $_POST['unitid'];
  $mainnumber = $_POST['mainnumber'];
  $vip1 = $_POST['vip1'];
  $vip2 = $_POST['vip2'];
  $vip3 = $_POST['vip3'];
  $vip4 = $_POST['vip4'];
  $vip5 = $_POST['vip5'];
  $vip6 = $_POST['vip6'];

#strip out specialchars (security)
$carbrand = htmlspecialchars($carbrand,ENT_QUOTES);
$carmodel = htmlspecialchars($carmodel,ENT_QUOTES);
$devicenumber = htmlspecialchars($devicenumber,ENT_QUOTES);
$mainnumber = htmlspecialchars($mainnumber,ENT_QUOTES);
$vip1 = htmlspecialchars($vip1,ENT_QUOTES);
$vip2 = htmlspecialchars($vip2,ENT_QUOTES);
$vip3 = htmlspecialchars($vip3,ENT_QUOTES);
$vip4 = htmlspecialchars($vip4,ENT_QUOTES);
$vip5 = htmlspecialchars($vip5,ENT_QUOTES);
$vip6 = htmlspecialchars($vip6,ENT_QUOTES);
$sql = ("UPDATE x8unit SET carbrand = '$carbrand',carmodel = '$carmodel',devicenumber = '$devicenumber',
    unitid = '$unitid',mainnumber = '$mainnumber',vip1 = '$vip1',vip2 = '$vip2',vip3 = '$vip3',vip4 = '$vip4',vip5 = '$vip5',vip6 = '$vip6'
    WHERE imei='".$_GET['imei']."'") or die(mysql_error());
mysql_query($sql) or die(mysql_error());

if(!$sql){
    print "<font color='#FF3300'>There has been an error editing your device. Please contact the webmaster.</font><br /><br />";
} else {
    print "<font color='#008000'>Your device was successfully edited.
    <script type=\"text/javascript\">setTimeout(\"location.href='login_success.php?action=EditDevice';\",3000);</script>
    <br /><br /></font>";
}
}

#virker ikke
$usermark = $_SESSION['user'];
print "
<font color='#008000' size='3'><b><u>Edit device</u></b><br /></font>
<hr align='left' width='80%' color='#008000'>
";
$result = mysql_query("SELECT * FROM x8unit WHERE imei='".$_GET['imei']."' AND usermark='$usermark'") or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());
?>
<form action="edit.php" method="post">
Carbrand:<br>
<input type="text" name="carbrand" value="<? print $row['carbrand']; ?>" class="inputfield">
<? if(isset($errors['carbrand'])) print $errors['carbrand']; ?><br>
Carmodel:<br>
<input type="text" name="carmodel" value="<? print $row['carmodel']; ?>" class="inputfield">
<? if(isset($errors['carmodel'])) print $errors['carmodel']; ?><br>
Devicenumber:<br>
<input type="text" name="devicenumber" value="<? print $row['devicenumber']; ?>" class="inputfield">
<? if(isset($errors['devicenumber'])) print $errors['devicenumber']; ?><br>
Unitid:<br>
<input type="text" name="unitid" value="<? print $row['unitid']; ?>" class="inputfield">
<? if(isset($errors['unitid'])) print $errors['unitid']; ?><br>
mainnumber:<br>
<input type="text" name="mainnumber" value="<? print $row['mainnumber']; ?>" class="inputfield">
<? if(isset($errors['mainnumber'])) print $errors['mainnumber']; ?><br>
vip1:<br>
<input type="text" name="vip1" value="<? print $row['vip1'] ?>" class="inputfield"><br>
vip2:<br>
<input type="text" name="vip2" value="<? print $row['vip2']; ?>" class="inputfield"><br>
vip3:<br>
<input type="text" name="vip3" value="<? print $row['vip3']; ?>" class="inputfield"><br>
vip4:<br>
<input type="text" name="vip4" value="<? print $row['vip4']; ?>" class="inputfield"><br>
vip5:<br>
<input type="text" name="vip5" value="<? print $row['vip5']; ?>" class="inputfield"><br>
vip6:<br>
<input type="text" name="vip6" value="<? print $row['vip6']; ?>" class="inputfield"><br><br>
<input type="submit" name="EditDevice" value="Edit device" class="inputbutton"><br><br>
</form>
* Marked fields are required!
</body>
</html>
<?

mysql_close($conn);
?>
Avatar billede detox Nybegynder
16. november 2003 - 14:32 #1
Måske skal du tjekke at $_GET['imei'] er sat inden du kører forespørgslen og så dur den her ikke rigtigt:

mysql_query($sql) or die(mysql_error());

if(!$sql){

Prøv med:

$result = mysql_query($sql) or die(mysql_error());

if(!$result){
Avatar billede human Nybegynder
16. november 2003 - 14:34 #2
Du havde ret. imei er ikke sat i den første query. Det er der problemet ligger. Men hvordan kan det være at den får fat i den i nr. 2 query. Men ikke i den første når det bliver gjort på samme måde?
Avatar billede detox Nybegynder
16. november 2003 - 14:43 #3
Ja, det er underligt. Et godt debugfif er at udskrive query-sætningen, så kan man tit finde evt. fejl. Altså erstat:

mysql_query($sql) or die(mysql_error());

midlertidigt med:

print ($sql);
exit;
Avatar billede human Nybegynder
16. november 2003 - 15:06 #4
Yea.. Men nu har vi jo fundet ud af det er imei der ikke er sat i den query.

Har du nogen forslag til hvorfor det ikke virker?
Avatar billede detox Nybegynder
16. november 2003 - 15:24 #5
Det er måske fordi du ikke har den med her:

<form action="edit.php" method="post">

Hvis jeg forstår scriptet, skulle der nok stå:

<form action="edit.php?imei=<?=$_GET['imei']?>" method="post">
Avatar billede human Nybegynder
16. november 2003 - 15:28 #6
Jeg har så gjort det således:

<button class="inputbutton" onclick="document.location.href=\'edit.php?imei='.$row['imei'].'\'">Edit device</button>

Men er det pga. den måde jeg sender det på, at den kun kan hentes én gang?
Avatar billede human Nybegynder
16. november 2003 - 15:29 #7
Det hele ser sådan ud:

$usermark = $_SESSION['user'];
$query = "SELECT * FROM x8unit WHERE usermark='$usermark'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {

print "
<table border='0' cellpadding='0' cellspacing'0' width='80%'>
  <tr>
    <td width='15%'>IMEI:</td>
    <td width='85%'>$row[imei]</td>
  </tr>
  <tr>
    <td width='15%'>Identification:</td>
    <td width='85%'>$row[identification]</td>
  </tr>
  <tr>
    <td width='15%'>&nbsp;</td>
    <td width='85%'>";
  print '
<button class="inputbutton" onclick="document.location.href=\'edit.php?imei='.$row['imei'].'\'">Edit device</button>
Avatar billede detox Nybegynder
16. november 2003 - 15:33 #8
Den nederste form ser da sådan her ud:

<input type="text" name="vip6" value="<? print $row['vip6']; ?>" class="inputfield"><br><br>
<input type="submit" name="EditDevice" value="Edit device" class="inputbutton"><br><br>
</form>
Avatar billede detox Nybegynder
16. november 2003 - 15:34 #9
Det er den form jeg taler om.
Avatar billede detox Nybegynder
16. november 2003 - 15:38 #10
Altså den nederste halvdel af dit indlæg viser en form. Der vil jeg rette:

<form action="edit.php" method="post">

til:

<form action="edit.php?imei=<?=$_GET['imei']?>" method="post">

eller:

<form action="edit.php?imei=<?=$_row['imei']?>" method="post">
Avatar billede human Nybegynder
16. november 2003 - 15:47 #11
Detox: Jeg tror lige jeg har forelsket mig i dig. Det virkede! Har bøvlet med det i over en uge nu. Tak :o)

Smid svar.
Avatar billede detox Nybegynder
16. november 2003 - 15:52 #12
Jamen så skulle du da bare ha' spurgt lidt før ;o)
Avatar billede human Nybegynder
16. november 2003 - 15:56 #13
Ja det kan du så have ret i ;o)
Avatar billede detox Nybegynder
16. november 2003 - 15:58 #14
Ja ja, man vil jo helst selv klare det :)
Avatar billede human Nybegynder
16. november 2003 - 16:03 #15
Lige nøjagtig :o)

Hvis du forresten har mere tid til overs må du hellere end gerne kigge engang her:
http://www.eksperten.dk/spm/427908

Ville være herligt hvis det hele kom op at køre i dag :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester