Avatar billede matz Nybegynder
16. oktober 2007 - 00:17 Der er 19 kommentarer og
1 løsning

udskriver blank side

Nogen der kan se hvorfor den udskriver en blank side?

<?php
include_once('connect.php');

// I OOP navngiver man som regel klasser med et stort begyndelsesbogstav
class Computer
{
    var $cpu;
    var $ram;

    function setCpu($cpuNewSpeed)
    {
        $this -> cpu = $cpuNewSpeed;
    }

    function getCpu()
    {
        return $this -> cpu;
    }


    function setRam($ramNewAmount)
    {
        $this -> ram = $ramNewAmount;
    }

    function getRam()
    {
        return $this -> ram;
    }
}
$myComputer = new Computer;
$test_2 = new sql();
$test_2->connect();
$test_2->q("SELECT * FROM sub_kategori WHERE hid='".$_GET['id']."' ");

while($array = $test_2->a()){
$myComputer -> setCpu($array["id"]);
$myComputer -> setRam($array["subkat"]);
echo $myComputer -> getCpu() . "MHz og " . $myComputer -> getRam() . "MB";
}
$test_2->close();
?>
Avatar billede dkfire Nybegynder
16. oktober 2007 - 00:39 #1
Ret:
$myComputer = new Computer;
til:
$myComputer = new Computer();

Og måske en
function Computer()
{
}
i din klasse.
Avatar billede matz Nybegynder
16. oktober 2007 - 00:41 #2
Den viser stadig blank side.
Avatar billede dkfire Nybegynder
16. oktober 2007 - 00:56 #3
Prøv at lave en test på om den query giver nogen rækker.
Avatar billede matz Nybegynder
16. oktober 2007 - 01:01 #4
Den vil intet udskrive... Ikke en gang:

echo $array["id"];

Hvis jeg laver den uden klasser printer den fint ud:

$test_2 = new sql();
$test_2->connect();
$test_2->q("SELECT * FROM sub_kategori WHERE hid='".$_GET['id']."' ");

while($array = $test_2->a()){
   
  echo ' <a href="index.php?page=subhardware&id='. $array["id"] .'">'. $array["subkat"] .'</a><br>';
 
  }
$test_2->close();
Avatar billede dkfire Nybegynder
16. oktober 2007 - 01:09 #5
Prøv at undgå mellemrum rundt om dine ->.
Avatar billede matz Nybegynder
16. oktober 2007 - 01:13 #6
Stadig intet:

<?php
include_once('connect.php');

// I OOP navngiver man som regel klasser med et stort begyndelsesbogstav
class Computer
{
    var $cpu;
    var $ram;

    function setCpu($cpuNewSpeed)
    {
        $this -> cpu = $cpuNewSpeed;
    }

    function getCpu()
    {
        return $this -> cpu;
    }


    function setRam($ramNewAmount)
    {
        $this -> ram = $ramNewAmount;
    }

    function getRam()
    {
        return $this -> ram;
    }
}
$myComputer = new Computer();
$test_2 = new sql();
$test_2->connect();
$test_2->q("SELECT * FROM sub_kategori WHERE hid='".$_GET['id']."' ");
while($array = $test_2->a()){
$myComputer -> setCpu($array["id"]);
$myComputer -> setRam($array["subkat"]);
echo $myComputer -> getCpu()."MHz og ".$myComputer -> getRam()."MB";
}
$test_2->close();
?>
Avatar billede dkfire Nybegynder
16. oktober 2007 - 01:18 #7
Gør nu som jeg siger:

<?php
include_once('connect.php');

// I OOP navngiver man som regel klasser med et stort begyndelsesbogstav
class Computer
{
    var $cpu;
    var $ram;

    function Computer()
    {
    }

    function setCpu($cpuNewSpeed)
    {
        $this->cpu = $cpuNewSpeed;
    }

    function getCpu()
    {
        return $this->cpu;
    }


    function setRam($ramNewAmount)
    {
        $this->ram = $ramNewAmount;
    }

    function getRam()
    {
        return $this->ram;
    }
}
$myComputer = new Computer();
$test_2 = new sql();
$test_2->connect();
$test_2->q("SELECT * FROM sub_kategori WHERE hid='".$_GET['id']."' ");
while($array = $test_2->a()){
$myComputer->setCpu($array["id"]);
$myComputer->setRam($array["subkat"]);
echo $myComputer->getCpu()."MHz og ".$myComputer->getRam()."MB";
}
$test_2->close();
?>
Avatar billede matz Nybegynder
16. oktober 2007 - 01:21 #8
Den er stadig blank.
Avatar billede dkfire Nybegynder
16. oktober 2007 - 01:29 #9
Noget må den da skrive ud.
Vi må se på det når jeg har sovet.
Avatar billede matz Nybegynder
16. oktober 2007 - 01:35 #10
Ja jeg forstår heller intet af, at den ikke udskriver noget.
Avatar billede matz Nybegynder
16. oktober 2007 - 13:09 #11
Noget nyt i sagen? :)
Avatar billede dkfire Nybegynder
16. oktober 2007 - 14:44 #12
Du har slået fejlbeskeder til, ikke?
Avatar billede dkfire Nybegynder
16. oktober 2007 - 14:48 #13
Kan du ikke lige lave en echo før while-løkken. Det er bare lige for at se om det er fordi den ikke kommer ind i while-løkken.
Avatar billede matz Nybegynder
16. oktober 2007 - 15:13 #14
hvis jeg skriver før while løkken:

echo $test_2;

Så kommer den med fejl meddelse... så det er slået til.
Avatar billede matz Nybegynder
16. oktober 2007 - 15:16 #15
Hvis jeg laver min sql om til dette skriver den det fint ud:

$test_2->q("SELECT * FROM sub_kategori");

Men den vil ikke med:

$test_2->q("SELECT * FROM sub_kategori WHERE hid='".$_GET['id']."' ");
Avatar billede dkfire Nybegynder
16. oktober 2007 - 15:59 #16
Okay, så lad os lige lave lidt om:

$myComputer = new Computer();
$test_2 = new sql();
$test_2->connect();
$sql = "SELECT * FROM sub_kategori WHERE hid='".$_GET['id']."'";
echo $sql;
$test_2->q($sql);
while($array = $test_2->a()){


Men lige en anden ting, hid er sat til int ikke ??
Og $_GET['id'] er et tal ?
Avatar billede matz Nybegynder
16. oktober 2007 - 16:56 #17
Nu udskriver den:

SELECT * FROM sub_kategori WHERE hid=''

hid er sat til varchar, men indeholder kun tal.

og $_GET['id'] er et tal og er int
Avatar billede dkfire Nybegynder
16. oktober 2007 - 17:13 #18
to ting:
Ændre hid til int, det giver bedre mening og mysql kan bedre håndtere feltet når du alligevel kun har tal deri.
$_GEt['id'] har åbenbart ingen værdi, derfor skriver den intet ud.
Hvor kommer $_GET['id'] fra.
Og husker du at skrive ?id=2 i url hver gang du ser siden ??
Avatar billede matz Nybegynder
16. oktober 2007 - 17:17 #19
Det fungere perfekt nu, jeg havde glemt at sende id via url. Og har ændret til int nu.

Mange tak for hjælpen, lig et svar :)
Avatar billede dkfire Nybegynder
16. oktober 2007 - 17:19 #20
Godt så. Svar :-)
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