---
title: "Klasstrul"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/128715-klasstrul"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "aasah"
published: "2005-05-23T09:27:30.000Z"
updated: "2005-05-23T15:08:13.000Z"
replies: 6
views: 275
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/128715-klasstrul"
---

# Klasstrul

## #1 — aasah, 2005-05-23T09:27Z

Kan man inte returnera ett resultathandtag från en databasförfrågan från en klass??? Varför inte?  :q

Permalänk: https://www.webforum.nu/p/128715

## #2 — spango, 2005-05-23T09:33Z

Re: Klasstrul

Jo, det kan man. Gör om, gör rätt... ;)

Permalänk: https://www.webforum.nu/p/1615671

## #3 — aasah, 2005-05-23T09:47Z

OK... Vad är det jag inte ser.... Utskrift från klassen går jättefint, utskrift av det returnerade handtaget funkar inte alls! PHP är i version 4.x

> **körning skrev:**
>
> Loaded.DB: 1!db: 0 =\> Anna
> db: 1 =\> -
> db: 2 =\> a
> db: 3 =\> 0000-00-00
> db: 4 =\> 1
> db: 5 =\> 0
> db: 6 =\> -
> db: 7 =\> 1
> Hmmmm 
> 
> DB: 1!db: 0 =\> Anna
> db: 1 =\> -
> db: 2 =\> a
> db: 3 =\> 0000-00-00
> db: 4 =\> 1
> db: 5 =\> 0
> db: 6 =\> -
> db: 7 =\> 1
> 
> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/aasah/.../QPsecFuncs.php on line 183
> After

 

```php
//Min klass - full av felsökningsfunktioner 
<?php

class DBConnMySQL {

   var $db = "";
   var $res = "";
   
   function DBConnMySQL() {
      mysql_connect(...);
      $this->db = mysql_select_db(...); //Numera (efter spangos svar nedan)
      //$this->res = array("res" => "", "no" => -1);
   }
   
   function getUsers() {
      $sql = "SELECT * FROM User";
      $res["res"] = mysql_query($sql) or die("DB");
      $res["no"] = mysql_num_rows($res["res"]);
     return $this->res;
   }
   
   function printUsers() {
      $sql = "SELECT * FROM User";
      $res["res"] = mysql_query($sql) or die("DB");
      $res["no"] = mysql_num_rows($res["res"]);
      echo "DB: ".$res["no"]."!";
         while ($row = mysql_fetch_array($res["res"],MYSQL_NUM))
            foreach ($row as $ix => $val)
               echo "db: $ix => $val<BR> ";
   }

   function getU() {
      $sql = "SELECT * FROM User";
      $res = mysql_query($sql) or die("DB");
      $no = mysql_num_rows($res);
      return $this->res;
   }

   function printU() {
      $sql = "SELECT * FROM User";
      $res = mysql_query($sql) or die("DB");
      $no = mysql_num_rows($res);
      echo "DB: $no!";
         while ($row = mysql_fetch_array($res,MYSQL_NUM))
            foreach ($row as $ix => $val)
               echo "db: $ix => $val<BR> ";
   }

}

//anrop och annat kul - i annan fil
echo "Loaded.";
include_once($path."QPdbClass.php");
$db = new DBConnMySQL();
$db->printUsers();
$resArr = $db->getUsers();
if ($resArr["no"] > 0) {
   while ($row = mysql_fetch_array($resArr["res"]))
      foreach ($row as $ix => $val)
         echo "$ix => $val, ";
}
else echo "Hmmmm <BR><BR>";
$db->printU();
$res = $db->getU();
while ($row = mysql_fetch_array($res))
   foreach ($row as $ix => $val)
      echo "$ix => $val, ";
echo "After <BR><BR>";

?>
```

Permalänk: https://www.webforum.nu/p/1615683

## #4 — spango, 2005-05-23T11:56Z

Du glömmer bort "this" i konstruktorn. Så här ska det vara:

```
   function DBConnMySQL() {

      mysql_connect(...);

      [b]$this->db[/b] = mysql_select_db(...);

   }
```

$db är en lokal variabel i konstruktorn, medan $this-\>db är en medlemsvariabel i klassen :)

Permalänk: https://www.webforum.nu/p/1615766

## #5 — aasah, 2005-05-23T13:19Z

Jo, det är ju riktigt! Men... jag har fixat det och resultatet är indentiskt likadant som förut. **Alltså kvarstår problemet.**

Inte för att jag fattar varför men det faktum att de båda printmetoderna faktiskt fungerade även innan det stod $this-\>db i konstruktorn tyder ju på att variabeln faktiskt fick rätt värde innan också. Hur nu det gick till? (Annars skulle väl inte mysql_query ha kunnat hämta värdena från min databas heller?) :q

Permalänk: https://www.webforum.nu/p/1615795

## #6 — Kent.J, 2005-05-23T14:32Z

Du sätter den lokala variablen men retunerar medlemsvariablen? 

Bör det inte vara return res;

Permalänk: https://www.webforum.nu/p/1615827

## #7 — aasah, 2005-05-23T15:08Z

ÅÅÅÅÅÅH! Tusen tack!!! :D Vad man kan vara blind ibland....

Permalänk: https://www.webforum.nu/p/1615846

---

Tråden på webben: https://www.webforum.nu/amne/php/128715-klasstrul
