Avatar billede oliolioli Nybegynder
27. januar 2011 - 12:06 Der er 4 kommentarer og
1 løsning

mysql_fetch_array fejl

Jeg får fejlen: WARNING: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in *** on line 9
Jeg har prøvet næsten alt, hvad jeg kunne - kan simpelthen ikke finde en løsning på det :S
Min kode er følgende:

<?php
include("connect.php");
$p = $_GET['p'];
$sqlcms = "SELECT * FROM cms WHERE page='$p'";
$cmsquery = mysql_query($sqlcms) or die(mysql_error());

// funktion start: indholdsvisning
Function indhold() {
while($cms = mysql_fetch_array($cmsquery)) {
if(!$cms['content'])
    {
        print "Enten eksisterer siden ikke, ellers er siden tom. Siden du prøvede at åbne var <b>";
        print $_GET['p'];
        print "</b>.";
        print $cms['content'];
} else {
        print $cms['content'];
}
}
}

//if sætning start
if($_GET['p'] == "galleri")
    {
        include("galleri.php");
} elseif($_GET['p'] == "nyheder")
    {
        include("nyheder.php");
} elseif($_GET['p'] == "admin")
    {
        include("admin.php");
} elseif($_GET['p'] == "kontakt")
    {
        include("kontakt.php");
} else {
        indhold();
}
//if sætning slut

?>

Min connect.php er følgende:

<?php
mysql_connect("localhost","username","password");
  mysql_select_db("database"); 
?>

Jeg har selvfølgelig skrevet rigtig host, brugernavn, pw og database.
Avatar billede erikjacobsen Ekspert
27. januar 2011 - 12:23 #1
Tilføj en linie:

  Function indhold() {
  global $cmsquery;

Ellers kendes denne variabel ikke inde i funktionen.
Avatar billede oliolioli Nybegynder
27. januar 2011 - 12:29 #2
Mange tak! Det virker perfekt nu! Læg et svar, så får du points.
Ville også være fedt, hvis du kunne forklare lidt om "global". Har ikke brugt den før - men som jeg gætter, skal jeg bruge den hver gang jeg vil bruge en variabel, der er defineret udenfor funktionen? Og har global andre formål?
Hvis du bare gerne vil have points, er det også i orden :D
Avatar billede erikjacobsen Ekspert
27. januar 2011 - 13:27 #3
Jeg samler slet ikke på point, tak. Læg selv et svar, og accepter dit eget svar.

Det er korrekt set: variabel udenfor funktionen kan ikke ses inde i funktionen - det er lidt usædvanligt, for det kan man i mange andre programmeringssprog, men ikke lige PHP.

Så det man kan se i funktionen, er det der kommer med som parameter, og så de navne man angiver med global, Der kan stå flere:  g&#314;obal $a,$b,$c;

Undtagelsen er de super-globale navne, som $_GET og $_POST, som ikke behøver angives med global.
Avatar billede erikjacobsen Ekspert
27. januar 2011 - 13:28 #4
Jeg må have ramt forkert:    global $a,$b,$c;
Avatar billede oliolioli Nybegynder
27. januar 2011 - 13:39 #5
Okay, 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
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