Gå til innhold

[Fixed] Brukersystem, trenger litt hjelp..


Anbefalte innlegg

Hei :)

Holder på med et brukersystem, må jo ha noe å gjøre på i sommerferien..

 

Jeg fant et rimelig bra som så ut som kunne bygges på..

 

Jeg skal nå lage noe slik at jeg kan redigere brukere.

 

Det jeg ikke får til er å få det som ligger i databasen allerede inn i noen felt..

 

Skjult tekst: (Marker innholdet i feltet for å se teksten):

<html>

<head>
<title>Brukeradministrasjon</title>
</head>

<body>

<?php

$id = $_GET['id'];
if(empty($id)) { echo("Finner ingen id!!"); }
else {

mysql_connect("mysql3.servetheworld.net", "********", "********") or die ("Unable to connect to MYSQL!");
mysql_select_db("*******") or die ("Unable to select DB");


// bestemmer hva vi skal hente ut, fra hvilken tabell
$query = mysql_query("Select * from users WHERE id='$id'");

// går igjen alle resultatene og printer navn og gate for hver rad den finner
while ($row = mysql_fetch_array($query)); 
?>
<h2>Redigerer bruker <?php echo $row["username"] ?></h2>
<form method="POST" action="brukeredit.php">
 <table border="0" cellpadding="2" cellspacing="2" width="30%">
   <tr>
     <td width="49%">Brukernavn:</td>
     <td width="54%"><input type="text" name="brukernavn" size="30" value="<?php echo $row["username"] ?>"></td>
   </tr>
   <tr>
     <td width="49%">Passord:</td>
     <td width="54%"><input type="text" name="passord" size="30" value="<?php echo $row["password"] ?>"></td>
   </tr>
   <tr>
     <td width="49%">Rank:</td>
     <td width="54%"><input type="text" name="rank" size="30" value="<?php echo $row["userlevel"] ?>"></td>
   </tr>
 </table>
 <p><input type="submit" value="Oppdater"><input type="reset" value="Reset"></p>
</form>

</body>

</html>


<?php } ?>

post-30852-1148655785_thumb.jpg

Endret av goggen90
Lenke til kommentar
Videoannonse
Annonse

Skal du kun printe én bruker? Hvis du kun skal ha én bruker, antar jeg at du ikke trenger while.

Du bør vel også avslutte echo'ene. F.eks <?php echo $row['username']; ?>.

 

Får du ingen parse-errors?

 

Og i spørringen må du sette variabelen i {}, ikke i ' '. Altså: $query = mysql_query("Select * from users WHERE id={$id}");

Endret av endrebjorsvik
Lenke til kommentar

Hva med slik?

Bruker heredoc (litt glad i det)

<?php

$id = $_GET['id'];
if(empty($id)) {
echo("Finner ingen id!!");
}else {

mysql_connect("mysql3.servetheworld.net", "********", "********") or die ("Unable to connect to MYSQL!");
mysql_select_db("*******") or die ("Unable to select DB");


// bestemmer hva vi skal hente ut, fra hvilken tabell
$query = mysql_query("Select * from users WHERE id='$id'");

// går igjen alle resultatene og printer navn og gate for hver rad den finner
$row = mysql_fetch_array($query);
$username = $row['username'];
$password = $row['password'];
$userlevel = $row['userlevel'];

print <<<HTML
<html>
<head>
<title>Brukeradministrasjon</title>
</head>

<body>
<h2>Redigerer bruker $username </h2>
<form method="POST" action="brukeredit.php">
<table border="0" cellpadding="2" cellspacing="2" width="30%">
 <tr>
 	<td width="49%">Brukernavn:</td>
 	<td width="54%"><input type="text" name="brukernavn" size="30" value="$username"></td>
 </tr>
 <tr>
 	<td width="49%">Passord:</td>
 	<td width="54%"><input type="text" name="passord" size="30" value="$password"></td>
 </tr>
 <tr>
 	<td width="49%">Rank:</td>
 	<td width="54%"><input type="text" name="rank" size="30" value="$userlevel"></td>
 </tr>
</table>
<p><input type="submit" value="Oppdater"><input type="reset" value="Reset"></p>
</form>

</body>

</html>
HTML;
}
?>

 

etter <<<HTML må det være <enter>

etter HTML; må det være <enter>

Lenke til kommentar
^^ I spørringen må du fremdeles bruke {} istedetfor ' ' rundt variabelen. :)

6184051[/snapback]

Jaha? Hvilke fordeler skulle det by på da?

6184239[/snapback]

 

Antar id er et tall, strenglitteraler bruker '' rundt, ikke tall.

Jeg har alltid {} rundt alt som skal inn i spørringer, men har faktisk ikke sjekket om det er nødvendig (bare lært det slik), men altså $id = tall, '$id' = tekstvarianten av tallet.

 

Men funker det uten er vel ingenting bedre og jeg fremstår som uvitende (som om det var noe nytt)

Lenke til kommentar
^^ I spørringen må du fremdeles bruke {} istedetfor ' ' rundt variabelen. :)

6184051[/snapback]

Jaha? Hvilke fordeler skulle det by på da?

6184239[/snapback]

 

Antar id er et tall, strenglitteraler bruker '' rundt, ikke tall.

Jeg har alltid {} rundt alt som skal inn i spørringer, men har faktisk ikke sjekket om det er nødvendig (bare lært det slik), men altså $id = tall, '$id' = tekstvarianten av tallet.

 

Men funker det uten er vel ingenting bedre og jeg fremstår som uvitende (som om det var noe nytt)

6184328[/snapback]

Så lenge man bruker "" så klarer man seg, såvidt jeg veit, uten {} såfremt det ikke er en array og neste tegn etter variablen ikke er gyldig i et variabelnavn, og for all del, jeg er ingen ekspert på det her. Jeg bare syntes det var litt merkelig når man fint klarer seg uten {} :hmm:

 

Forøvrig kan det være en ide å sjekke at $id / $_GET['id'] faktisk ER numerisk.

Endret av Ernie
Lenke til kommentar
^^ I spørringen må du fremdeles bruke {} istedetfor ' ' rundt variabelen. :)

6184051[/snapback]

Jaha? Hvilke fordeler skulle det by på da?

6184239[/snapback]

Betyr ikke ' ' at du søker etter strengen $id, mens {} betyr at man søker etter innholdet i variabelen?

Så hvis innholdet i variabelen $id er 1, så vil '$id' tolkes som $id, mens {$id} tolkes som 1?

Lenke til kommentar
^^ I spørringen må du fremdeles bruke {} istedetfor ' ' rundt variabelen. :)

6184051[/snapback]

Jaha? Hvilke fordeler skulle det by på da?

6184239[/snapback]

Betyr ikke ' ' at du søker etter strengen $id, mens {} betyr at man søker etter innholdet i variabelen?

Så hvis innholdet i variabelen $id er 1, så vil '$id' tolkes som $id, mens {$id} tolkes som 1?

6186492[/snapback]

Feil. ' brukes rundt strenger i en SQL-spørring og har fint lite med PHP å gjøre i dette tilfellet.

Endret av Ernie
Lenke til kommentar
^^ I spørringen må du fremdeles bruke {} istedetfor ' ' rundt variabelen. :)

6184051[/snapback]

Jaha? Hvilke fordeler skulle det by på da?

6184239[/snapback]

Betyr ikke ' ' at du søker etter strengen $id, mens {} betyr at man søker etter innholdet i variabelen?

Så hvis innholdet i variabelen $id er 1, så vil '$id' tolkes som $id, mens {$id} tolkes som 1?

6186492[/snapback]

 

Det jeg gjorde er å tilordne variablene verdi fra databasen. Php er så vennlig at hvis en variabel ikke har verdi (og du ikke har error_reporting(E_ALL) ikke forteller at en variable ikke er satt.

 

Jeg bruker heredoc, som gjør at jeg kan bruke php-variabler inni php-kode (funker ikke med assosiative arrays, må lage "ordentlige" variabler av de) for value i html-kode.

 

'' betyr tekst, uten '' betyr tall

 

 

Cruella - etter tur på by'n. beklager skriveleif

Lenke til kommentar
^^ I spørringen må du fremdeles bruke {} istedetfor ' ' rundt variabelen. :)

6184051[/snapback]

Jaha? Hvilke fordeler skulle det by på da?

6184239[/snapback]

Betyr ikke ' ' at du søker etter strengen $id, mens {} betyr at man søker etter innholdet i variabelen?

Så hvis innholdet i variabelen $id er 1, så vil '$id' tolkes som $id, mens {$id} tolkes som 1?

6186492[/snapback]

Feil. ' brukes rundt strenger i en SQL-spørring og har fint lite med PHP å gjøre i dette tilfellet.

6186509[/snapback]

Rundt strenger eller variabler? I eksempelet ovenfor er det jo snakk om en variabel.

 

Når jeg skriver mySQL-spørringer med variabler i PHP-skriptene mine, gjør jeg slik:

$id = $_GET['id'];
$table = $_GET['tab']
$result = mysql_query("SELECT * FROM {$table} WHERE id = {$id}");

Vil skriptet nedenfor gjøre akkurat det samme mener du?

$id = $_GET['id'];
$column = $_GET['col']
$result = mysql_query("SELECT * FROM '$table' WHERE id = '$id'");

Endret av endrebjorsvik
Lenke til kommentar

Når jeg snakker om strenger så mener jeg

SELECT * FROM tabell WHERE felt = 'en streng'

 

Det du snakker om er forskjellige måter en variabelnavn blir tolket, og {} trengs ikke med mindre det enten er en array eller en variabel med tegn som er gyldig i variabelnavn etter seg. Litt fra manualen:

<?php
$beer = 'Heineken';
echo "$beer's taste is great"; // works, "'" is an invalid character for varnames
echo "He drank some $beers";  // won't work, 's' is a valid character for varnames
echo "He drank some ${beer}s"; // works
echo "He drank some {$beer}s"; // works
?>

 

Med andre ord. Hvis $var inneholder "dette er en variabel" vil

SELECT * FROM tabell WHERE noe = '$var'

fungere mens

SELECT * FROM tabell WHERE noe = {$var}

ikke vil.

Endret av Ernie
Lenke til kommentar
Med andre ord. Hvis $var inneholder "dette er en variabel" vil

SELECT * FROM tabell WHERE noe = '$var'

fungere mens

SELECT * FROM tabell WHERE noe = {$var}

ikke vil.

6191842[/snapback]

Det spørs vel hva man er ute etter.

Hvis man vil hente ut data der noe = 'dette er en variabel', vil den nederste bli riktig. Mens hvis man vil hente ut data der noe = '$var' (altså at det står $var i en av cellene) vil den øverste bli riktig.

Endret av endrebjorsvik
Lenke til kommentar

Litt mye OT her, kan dere ikke lage en ny tråd?

Rapportert..

Kan dere ikke ta dette på PM eller noe?

Det er vell ikke nødvendig for meg å opprette en ny tråd vist jeg har ett nytt spørsmål ang. samme tema?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...