Avatar billede Slettet bruger
19. september 2005 - 22:48 Der er 4 kommentarer og
1 løsning

Gider ikke rette i databasen

Hej. jeg har et problem med at den ikke gider at update i databasen. her er mine kode

--- edit_user.php ---

<?php
include('../config.php');

$query = mysql_query("SELECT * FROM users WHERE id='$id'") or die(mysql_error());
if (mysql_num_rows($query) == 0) {
    echo 'Der er i øjeblikket ingen forespørsler';
    } else {
    echo '';           
    while($dfn = mysql_fetch_assoc($query)) {
    if (isset($_GET['deleteID'])) {
    mysql_query("DELETE FROM users WHERE id=".$_GET['deleteID']."") or die(mysql_error());
}
echo "

<form method='post' action='post.php'>
<input type='hidden' name='dfn' value='edit_user'>

<table width='100%' border='0' cellspacing='0' cellpadding='0' class='box_text'>
<tr>
  <td valign='top' class='text'>User</td>
  <td><select name='user_level' class='box_text'>
    <option value='vip'>VIP</option>
    <option value='op'>OP</option>
    <option value='Admin2'>2 nd Adminstrator</option>
    <option value='Admin1'>1 st. Administrator</option>
  </select>
  <input type='hidden' name='date' value='$dfn[date]'></td>
</tr>
<tr>
  <td class='text'>Navn</td>
  <td><input name='name' type='text' value='$dfn[name]' class='box_text'></td>
</tr>
<tr>
  <td class='text'>Tlf</td>
  <td><input name='phone' type='text' value='$dfn[phone]' class='box_text'></td>
</tr>
<tr>
  <td hight='9'></td>
  <td></td>
</tr>
<tr>
  <td class='text'>Brugernavn</td>
  <td><input name='username' type='text' value='$dfn[username]' class='box_text'></td>
</tr>
<tr>
  <td class='text'>Password</td>
  <td><input name='password' type='text' value='$dfn[password]' class='box_text'></td>
</tr>
<tr>
  <td class='text'>Email</td>
  <td><input name='email' type='text' value='$dfn[email]' class='box_text'></td>
</tr>
<tr>
  <td class='text'>Billede af share </td>
  <td>    <input name='image' type='text' value='$dfn[image]' disabled class='box_text'></td>
</tr>
<tr>
  <td valign='top' class='text'>Klient</td>
  <td><input name='klient' type='text' value='$dfn[klient]' class='box_text'></td>
</tr>
<tr>
  <td valign='top' class='text'>Status</td>
  <td><select name='status' class='box_text'>
    <option value='Accepter'>Accepter</option>
    <option value='Afvis'>Afvis</option>
    <option value='Banned'>Banned</option>
  </select></td>
</tr>
<tr>
  <td colspan='2' valign='top' height='10'></td>
  </tr>
<tr align='center'>
  <td colspan='2' valign='top'><input class='box_text' type='submit' value='Opdater user'>    <input class='box_text' type='submit' value='Annulér'></td>
  </tr>
</table>
</form>

";                                                                   
}
}                                                                       
?>

--- user_edit.php slut ---

og her er min post fil

--- post.php ---

<?
include('../config.php');

if ($_POST['dfn'] == 'status') {
    mysql_query("UPDATE users SET user_level='".$_POST['user_level']."', date='".$_POST['date']."', name='".$_POST['name']."', phone='".$_POST['phone']."', username='".$_POST['username']."', password='".$_POST['password']."', email='".$_POST['email']."', image='".$_POST['image']."', klient='".$_POST['klient']."', status='".$_POST['status']."' WHERE id=".$_POST['id']."") or die(mysql_error());
    header("Location: popup?dfn=members");
}
if ($_POST['dfn'] == 'edit_user') {
    mysql_query("UPDATE users SET user_level='".$_POST['user_level']."', date='".$_POST['date']."', name='".$_POST['name']."', phone='".$_POST['phone']."', username='".$_POST['username']."', password='".$_POST['password']."', email='".$_POST['email']."', image='".$_POST['image']."', klient='".$_POST['klient']."', status='".$_POST['status']."' WHERE id=".$_POST['id']."") or die(mysql_error());
    header("Location: popup?dfn=members");
}
?>

--- post.php slut ---

Hvor ligger fejlet og kan man lave det på en nemmere måde i post.php ?? for det er lidt bøvlet at skrive alt det der hver eneste gang.

PÅ forhånd tak.
Avatar billede nielle Nybegynder
19. september 2005 - 22:59 #1
Der er ikke noget felt i din form som hedder 'id' og derfor vil $_POST['id'] altid være tom. Dette betyder at din UPDATE:

"UPDATE users SET user_level='" . $_POST['user_level'] . "', date='" . $_POST['date'] . "', name='" . $_POST['name'] . "', phone='" . $_POST['phone'] . "', username='" . $_POST['username'] . "', password='" . $_POST['password'] . "', email='" . $_POST['email'] . "', image='" . $_POST['image'] . "', klient='" . $_POST['klient'] . "', status='" . $_POST['status'] . "' WHERE id=" . $_POST['id']

- aldrig nogensinde får opfykdt sin WHERE-del.
Avatar billede Slettet bruger
19. september 2005 - 23:06 #2
hmm tak.

er der en anden måde man kan gøre det på i stedet for at skulle skrive (  , date='" . $_POST['date'] . "', name='" . $_POST['name'] . "'  ) en lettere måde ??
Avatar billede Slettet bruger
20. september 2005 - 08:11 #3
Hmm skulle du ikke have dine points ??
Avatar billede nielle Nybegynder
20. september 2005 - 08:28 #4
Jeg (såvel som en del ander herinde på Eksperten) smider som regel først et svar på jeg aktivt bliver bedt om det. Man kan jo aldrig vide 100% om man rent faktisk har angivet den fulde og rigtige løsning på problemet før at spørgeren siger "jubii"! Uanset hvor meget man selvfølgelig selv er overbevist om det. ;^)

Du spørger om du kan skrive din SQL-kommando på en lettere måde.Rent faktisk kan du måske skrive den på denne form:

"UPDATE users SET user_level='$_POST[user_level]', date='$_POST[date]', name='$_POST[name]', phone='$_POST[phone]', username='$_POST[username]', password='$_POST[password]', email='$_POST[email]', image='$_POST[image]', klient='$_POST[klient]', status='$_POST[status]' WHERE id=$_POST[id]"

- eller måske endda:

"UPDATE users SET user_level='$user_level', date='$date', name='$name', phone='$phone', username='$username', password='$password', email='$email', image='$image', klient='$klient', status='$status' WHERE id=$id"

Det er imidlertid ikke helt sikkert og det afhænger af hvordan din PHP er konfigureret. Den sikreste måde er den du allerede har brugt, og den vil også virke hvis du en dag skulle ønske at flytte din kode over på en anden PHP-server hvor at konfigurationen er anderledes.

... og et svar :^)
Avatar billede Slettet bruger
20. september 2005 - 09:05 #5
Ok jeg siger mange tak. og her for du så dine fortjente points :)
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