Avatar billede horizon Nybegynder
02. februar 2005 - 18:09 Der er 6 kommentarer og
1 løsning

Warning: mysql_close() no MySQL-Link resource supplied in

hele fejlsætningen er :

Warning: mysql_close(): no MySQL-Link resource supplied in /mnt/dkcphnas004/www/t/y/thesimcity.dk/Kilder/Admin.php on line 99

Kunne ikke lukke forbindelsen til MySQL!


og det er ret så underholdende da den selvsamme kopierede funktion som skal lukke forbindelsen virker et andet sted på siden, siden med mine mysql funktioner ser sådan ud:

<?php

//Forbind

function aaben() {
  $server = "XXX";
  $bruger = "XXX";
  $kodeord = "XXX";
  $database = "XXX";

  if (!mysql_connect("$server","$bruger","$kodeord")) {
    udskriv_fejl("Kunne ikke oprette en forbindelse til MySQL.");
  }

  if(!mysql_select_db("$database")) {
    udskriv_fejl("Kunne ikke vælge databasen: $database");
  }
}

/*//////////////////////////////////*/
/*Indsæt funktion under denne linje/*/
/*//////////////////////////////////*/

//AntalNyheder

function antalnyheder($antalnyheder1) {

    function antal_fejl($fejl) {
   
        $generel_tekst = "<p>V&aelig;r venlig at rette til.</p>";
   
        $fejlmelding = "<ul>";
   
        for($i=0;$i<count($fejl);$i++) {
            $fejlmelding .= "<li>". $fejl[$i];
        }
   
        $fejlmelding .= "</ul>";
   
        echo "Fejl! Der er fejl i dit input:" . $fejlmelding . $generel_tekst;
        exit;
   
    }
   
    function skriv_antal() {
   
    if(!ereg("[0-9]+", $antalnyheder1)) {
   
        $fejl[] = "Du har ikke skrevet tal";
   
    }   
    include('../Kilder/access.php');
    $query1 = "UPDATE Indstillinger SET vaerdi = '$antalnyheder1' WHERE variabel = 'antalnyheder'";
    $result1 = mysql_query($query1)or die("MySQL fejl: " . mysql_error());
    mysql_close();
    }
   
    if(count($fejl) > 0) {
        antal_fejl($fejl);
    }
   
    skriv_antal(addslashes($antalnyheder1));

}

/*//////////////////////////////////*/
/*Indsæt funktion over denne linje//*/
/*//////////////////////////////////*/

//Query med Resultat

function query_resultat($query) {
  $resultat = mysql_query($query);

  if(!$resultat) {
    udskriv_fejl("Kunne ikke udføre: <em>$query</em>");
  }

  while($raekke = mysql_fetch_array($resultat)) {
    $sql[] = $raekke;
  }

  return $resultat_array;
}

//Query

function query($query) {
  $resultat = mysql_query($query);

  if(!$resultat) {
    udskriv_fejl("Kunne ikke udføre: <em>$query</em>");
  }
}

//Luk Forbindelse

function luk() {
  if(!mysql_close()) { <-- !!!linje 99!!!
    udskriv_fejl("Kunne ikke lukke forbindelsen til MySQL!");
  }
}

//Udskriv Fejl

function udskriv_fejl($fejl) {
  echo "<p>$fejl";

  if ($mysql_fejl = mysql_error()) {
    echo "<br>Fejlen er: <em>$mysql_fejl</em>";
  }

  exit;
}

?>
´
den anden side hvor den er kopieret fra ser helt ens ud bortset fra at funktionen "antalnyheder();" ikke er med og at luk funktionen hedder luk_forbindelse(); regner ikke med at det er det som er problemet...

selve siden som den får informationerne fra ser sådan ud (irelevante linjer mv fjernet):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
    <head>
        <link href="../CSS/Style.css" rel="stylesheet">
    </head>

    <body>
        <?php
include("../Brugeroplysninger/Brugeroplysninger_admin_iframe.php");
                    include("../Kilder/access.php");
                    $res = mysql_query("SELECT variabel, vaerdi FROM Indstillinger") or die(mysql_error());
while ($row = mysql_fetch_assoc($res)) {
    switch ($row['variabel']) {
        case 'forsidestatus': $forsidestatus = $row['vaerdi'];
            break;
        case 'lukketoverskrift': $lukketoverskrift = $row['vaerdi'];
            break;
        case 'lukkettekst': $lukkettekst = $row['vaerdi'];
            break;
        case 'titeltekst': $titeltekst = $row['vaerdi'];
            break;
        case 'antalnyheder': $antalnyheder = $row['vaerdi'];
            break;
    }
}

mysql_close();

require("../Kilder/Admin.php");

aaben();
antalnyheder($antalnyheder1);
luk();
?>


<fieldset>
<legend>Yderligere nyheds indstillinger</legend>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
Antal nyheder pr. side:<br>
<input type="text" name="antalnyheder1" value="<?php echo $antalnyheder; ?>" size="3">
<p><input type="submit" name="Ret" value="Ret"></p>
</form>
</fieldset>
</p>
</body>
</html>


Håber der er nogle som vil hjælpe. det er sikkert bare mig som har kvajet mig lidt et sted ;)
Avatar billede neocron Nybegynder
02. februar 2005 - 18:56 #1
Du skal give mysql_close() noget at lukke :)

<?php
$link = mysql_connect('localhost', 'mysql_bruger', 'mysql_password');
if (!$link) {
  die('Kunne ikke forbinde til databasen: ' . mysql_error());
}
echo 'Forbundet succesfuldt';
mysql_close($link);
?>
Avatar billede neocron Nybegynder
02. februar 2005 - 18:57 #2
Eksemplet fint stjålet fra PHP.net -

http://dk.php.net/mysql_close
Avatar billede horizon Nybegynder
02. februar 2005 - 21:39 #3
så når jeg skal lukke forbindelsen skal jeg skrive

aaben();
antalnyheder($antalnyheder1);
luk(aaben());

? eller hvordan skriver jeg det om så?

p.s. det er fra webcafes gæstebog det er taget fra ;)
Avatar billede neocron Nybegynder
02. februar 2005 - 22:16 #4
Du skal give din mysql_connect et "kendetegn".
Altså:

$link = mysql_connect("host", "bruger", "kode");
      // her udfører vi en masse sql-halløj
mysql_close($link);
Avatar billede neocron Nybegynder
02. februar 2005 - 22:20 #5
Det kunne så f.eks. omskrives til dette:

if($link = mysql_connect("host", "bruger", "kode"))
{
    // masser af kode her!
    mysql_close($link); // Så er vi færdige! Vi lukker $link ned.
}
else
{
    die("Det lykkedes ikke at oprette forbindelse: ") . mysql_error();
}
Avatar billede horizon Nybegynder
14. februar 2005 - 20:56 #6
ookay, fair nok... finder ud af det.

Smid et svar ;D
Avatar billede neocron Nybegynder
14. februar 2005 - 21:31 #7
Værsgod. Held og lykke med det :)
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