Avatar billede thedeathart Nybegynder
24. april 2004 - 16:52 Der er 4 kommentarer og
1 løsning

Advanceret Update, virker ikke

HEy... jeg laver er ved at lave et updatersystem til en clan side med brugereinfomationer..(PHP / MySQL)

Man skal så kunne rette i sine brugerinfo.
Og derfor har jeg opstillet noget kode..
Problemet er at det ikke virker, enten vil den slet ikke opdaterer, eller så opdaterer den for ALLE brugerne, dvs. at man så mister informationer på de andre brugere..

Her er min kode:

// formen til at rette i:

<html>
<head>
<title>Ret en nyhed</title>
<link rel="stylesheet" type="text/css" href="../style.css">

</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">

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

$q1 = mysql_query("SELECT * FROM authlib_login WHERE id='$id'");
$q2 =mysql_fetch_array($q1);
extract($q2);

if( isset( $_GET['id'] ) )
  $id = $_GET['id'];
else
  $id = null;

if( $id !== null ) {
  // Hent først data ud
  $resultat = mysql_query("select * FROM authlib_data WHERE id = '$id'");

  // Kør så igennem for hver række
  $raekke = mysql_fetch_array($resultat);
  if( $raekke == null )
    die("Fandt ikke rækken");

  extract($raekke);
?>


<FORM ACTION="retuser.php" METHOD="POST">
Navn:<BR>
<INPUT name=navn value="<? echo"$name" ?>">
<BR>
Nick:<BR>
<INPUT name=username> Du SKAL skrive dit brugernavn
<BR>
Password:<BR>
<INPUT type=password name=password> Du SKAL skrive dit password
<BR>
Alder:<BR>
<INPUT name=age value="<? echo"$age" ?>">
<BR>
Bopæl:<BR>
<INPUT name=home value="<? echo"$home" ?>">
<BR>
Email:<BR>
<INPUT name=email value="<? echo"$email" ?>">
<BR>
Rank:<BR>
<INPUT name=rank value="<? echo"$rank" ?>">
<BR>
Status:<BR>
<INPUT name=status value="<? echo"$status" ?>">
<BR>
Forbindelse:<BR>
<INPUT name=connection value="<? echo"$connection" ?>">
<BR>
Hardware:<br>
<TEXTAREA  style="LEFT: 53px; WIDTH: 217px; TOP: 248px; HEIGHT: 83px" name=hardware rows=4 cols=23><? echo"$hardware" ?></TEXTAREA>
<br>Andet:<BR>
<TEXTAREA  style="LEFT: 53px; WIDTH: 217px; TOP: 248px; HEIGHT: 83px" name=andet rows=3><? echo"$text" ?></TEXTAREA>
<br><br>
<input type=submit value="Opret brugeren" name="submit">
</form>

<?php
}
else {
  $sql = "SELECT id, username FROM authlib_login WHERE id>'0' ORDER BY username";
  $res = mysql_query($sql) or die(mysql_error());
  // Lav liste
  while($row = mysql_fetch_array($res)) {
    print '<br><center><b><a href="' . $_SERVER['PHP_SELF'] . '?id=' . $row[0] . '">'.
      stripslashes($row[1]). '</a><br />';
  }
}
?>
</body>

</html>


// SQL-delen

<?
include "../config.php";

if( $username == "" or $password == "")
die ("FEJL, du glemte at skrive brugernavn eller password");

else

mysql_query("UPDATE authlib_data

SET name='$navn',age='$age',email='$email',home='$home',status='$status',text='$andet',rank='$rank',connection='$connection',hardware='$hardware'

WHERE id='$id' ") or die(mysql_error());



?>


==> Hvad går der galt ?? <==
Avatar billede thedeathart Nybegynder
24. april 2004 - 17:49 #1
OBS: config.php indeholder bare et connect til databasen..
Avatar billede thedeathart Nybegynder
24. april 2004 - 20:07 #2
nogle der vil hjælpe ?
Avatar billede sukos Juniormester
24. april 2004 - 21:44 #3
Det må jo være din $id som fejler.
Er heller ikke lige med på den måde du gør det på?
Avatar billede sukos Juniormester
24. april 2004 - 21:46 #4
Altså henter data.

Iøvrigt, hvis du bruger LIMIT 1 i din query til updates, bliver det kun først fundne row som passer med $id der opdateres, men så lyder det jo så som om det altid er samme row, og det er jo heller ikke meningen! :O)
Avatar billede thedeathart Nybegynder
25. april 2004 - 15:45 #5
har fundet fejlen, problemet var at id'et ikke blev sent med..

har rettet det..

eller tak :)
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
Computerworld tilbyder specialiserede kurser i database-management

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