18. oktober 2007 - 18:07Der er
26 kommentarer og 1 løsning
Spørgsmål angående databaseforbindelse
Jeg er simpelthen ved at rykke håret af mig selv nu! Efter godt et års pause med php, føler jeg ikke jeg kan få noget som helst til at fungere!
include 'opendb.php'; // Åbner databasen $query = "SELECT * FROM brugere WHERE ID = '".$_GET['ID']."'"; // Skaffer brugernavnet på den pågældende bruger $result = mysql_query($query)or die("MySQL fejl: " . mysql_error());
$log = mysql_fetch_array($result);
$sUsername = $log['username']; // Gemmer brugernavnet som $sUsername echo $sUsername;
Når jeg udskriver $sUsername, returnerer den ingenting!
feltet username eksisterer i tabelen brugere, og der er 7 records i tabelen, derfor forstår jeg simpelthen ikke hvad der er galt!
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Har kigget på koden, men den er lidt tricky. Rettede et par småfejl i koden du gav, men den returnerer fejl nu. Det skal siges at jeg benytter php4, jeg ved ikke om det har noget at sige? Nevertheless, her er koden:
- og så bør du nok forholde dig til spørgsmålene: "Hedder feltet i DB'en 'ID' eller 'id'? Hedder variablen 'ID' eller 'id'?". Det er ekstremt vigtigt ;o)
Kan vi ikke holde det helt simpelt og efter almindelige principper uden det vrøvl, der blev introduceret i første indlæg - og som ingen rigtig har lagt mærke til. Fy! ;)
<? include('opendb.php');
if( isset( $_GET['ID'] ) ) { $sID = $_GET['ID']; $query = mysql_query("SELECT username FROM brugere WHERE ID = '$sID'") or die(mysql_error()); if ($result = mysql_fetch_assoc($query)) { $sUsername = $result['username']; print "Username: $sUsername"; } else { print "Ingen bruger med $sID"; } } else { print "Angiv venligst et ID"; }
?>
Det er utestet ... men sørger for at der kun siges mysql_fetch_.... een gang. I nogle tilfælde er 2 for meget ;)
CREATE TABLE `brugere` ( `ID` int(1) NOT NULL auto_increment, `username` text NOT NULL, `password` text NOT NULL, `status` int(1) NOT NULL default '0', UNIQUE KEY `ID` (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Brugere til bødekassen'
Det gik op for mig at det måske var pga $_GET['ID'] er med stort, og det er med småt i URLen - men hvis jeg ændrer det til småt i koden, altså $sID = $_GET['id']; , så får jeg fejl:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /.../history.php on line 16
Ah okay, nu ser det ud til at virke - der var nogle fejl omkring netop mysql_fetch_assoc(), hvorfor jeg havde to til at starte med ved jeg virkelig ikke!
Hvis I vil smide et svar, så kan i få nogle velfortjente (ekstra)points!
Du har da ikke 2 x mysql_fetch_array() i den kode du postede?
Men hvis det var tilfældet så er forklaringen jo simpel nok: 1. gang fandt den det der skulle bruges, og 2. gang forsøgte den at finde den næste post ... men siden at der jo kun er een post som svare til søgekriteriet så finder denne selvfølgelig ikke noget 2. gang.
Jeg er helt enig i din kommentar 18/10-2007 23:31:07 - *rødmer*
Men det den med dobbelte mysql_fetch_array() var ikke med i den oprindelig post, og alligevel lyder det (19/10-2007 09:36:44) som om at der var noget i den stil. Eller også har vi bare fået forvirret alt og alle (pånær en enkelt læser muligvis). ;^)
- vil $id ikke indeholde noget ved: $id = $_GET["ID"];
- mens den her vil indeholde 'noget': $id = $_GET["id"];
Synes godt om
Ny brugerNybegynder
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.