nree Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 (endret) 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 } ?> Endret 27. mai 2006 av goggen90 Lenke til kommentar
endrebjo Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 (endret) 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 26. mai 2006 av endrebjorsvik Lenke til kommentar
CruellaDeVille Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 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
endrebjo Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 (endret) ^^ I spørringen må du fremdeles bruke {} istedetfor ' ' rundt variabelen. Endret 26. mai 2006 av endrebjorsvik Lenke til kommentar
Ernie Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 ^^ I spørringen må du fremdeles bruke {} istedetfor ' ' rundt variabelen. 6184051[/snapback] Jaha? Hvilke fordeler skulle det by på da? Lenke til kommentar
CruellaDeVille Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 ^^ 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
Ernie Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 (endret) ^^ 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 {} Forøvrig kan det være en ide å sjekke at $id / $_GET['id'] faktisk ER numerisk. Endret 26. mai 2006 av Ernie Lenke til kommentar
nree Skrevet 26. mai 2006 Forfatter Del Skrevet 26. mai 2006 (endret) Nei, jeg får ingen feilmeldinger.. EDIT: CruellaDeVille sin funka fint Hva gjorde du egentlig? Kan du forklare litt så jeg lærer noe og!? Endret 26. mai 2006 av goggen90 Lenke til kommentar
endrebjo Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 ^^ 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
Ernie Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 (endret) ^^ 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 26. mai 2006 av Ernie Lenke til kommentar
nree Skrevet 26. mai 2006 Forfatter Del Skrevet 26. mai 2006 (endret) ###### FEIL ####### Endret 26. mai 2006 av goggen90 Lenke til kommentar
CruellaDeVille Skrevet 26. mai 2006 Del Skrevet 26. mai 2006 ^^ 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
endrebjo Skrevet 27. mai 2006 Del Skrevet 27. mai 2006 (endret) ^^ 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 27. mai 2006 av endrebjorsvik Lenke til kommentar
Ernie Skrevet 27. mai 2006 Del Skrevet 27. mai 2006 (endret) 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 27. mai 2006 av Ernie Lenke til kommentar
endrebjo Skrevet 27. mai 2006 Del Skrevet 27. mai 2006 (endret) 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 27. mai 2006 av endrebjorsvik Lenke til kommentar
nree Skrevet 27. mai 2006 Forfatter Del Skrevet 27. mai 2006 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå