Problemen terugkrijgen variabelen van class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Henk de Vries

Henk de Vries

13/03/2012 22:31:42
Quote Anchor link
hallo,

Laatste tijd ben ik een beetje aan het knoeien met OOP PHP, maar heb nu het volgende probleem.

ik wil DMV het ID van een product de informatie uit de database halen die met dat product te maken heeft.

Nu heb ik het volgende gedaan.

op mijn edit_product_id.php roep ik de functie find_by_id aan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php Product::find_by_id($id); ?>


in de find_by_id functie staat het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 public static function find_by_id($id)
        {

            if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0)
             {

                 // query db
                 $id = $_GET['id'];
                 $result = mysql_query("SELECT * FROM product WHERE id=$id")
                 or die(mysql_error());
                 $row = mysql_fetch_array($result);
                
          
                     $artikelnr = $row['artikelnr'];
                     $productnaam = $row['productnaam'];
                     $beschrijving = $row['beschrijving'];
                     $prijs = $row['prijs'];
                     $categorie = $row['categorie'];
            }
      }

?>


Maar op 1 of andere manier kan ik het gewoon niet voor elkaar te krijgen om de variabelen $artikelnr etc bruikbaar te krijgen op mijn edit_product_id.php.

ik hoop dat iemand mij hier mee kan helpen. Ik zal wel iets logisch over het hoofd hebben gezien

Toevoeging op 13/03/2012 22:34:36:

vergeten erbij te zetten.

in de class worden de variabelen $artikelnr enz wel gevuld met de juiste waardes van het product. Dit heb ik getest DMV een echo in de class. het probleem is dus die variabelen naar edit_product_id.php krijgen
 
PHP hulp

PHP hulp

22/11/2024 20:37:15
 
Erwin H

Erwin H

13/03/2012 23:11:11
Quote Anchor link
wat als je in plaats van dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$row
= mysql_fetch_array($result);
$artikelnr = $row['artikelnr'];
$productnaam = $row['productnaam'];
$beschrijving = $row['beschrijving'];
$prijs = $row['prijs'];
$categorie = $row['categorie'];
?>

Nu gewoon dit doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
return mysql_fetch_array($result);
?>

Dan krijg je dus het hele record in een keer terug in een associatieve array.
 
Jan Willem R

Jan Willem R

14/03/2012 09:55:34
Quote Anchor link
Ik zal het gewoon zo doen om eerlijk te zijn...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
class Product{
    private _articlenumber;
    
    public function setArticlenumber($articlenumber){
        $this->_articlenumber = $articlenumber;
    }


    public function getArticlenumber(){
        return $this->_articlenumber;
    }

}


class ProductHandler{
 public static function find_by_id($id)
        {

            if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0)
             {

                 // query db
                 $id = $_GET['id'];
                 $result = mysql_query("SELECT * FROM product WHERE id=$id")
                 or die(mysql_error());
                 $row = mysql_fetch_array($result);
                
                     $product = new Product();  
                     $product->setArticlenumber($row['artikelnr']);
                     return $product;
            }
      }
}

?>


Even als voorbeeld je moet natuurlijk ook meer setters en getters maken misschien ook een createObject functie in je Handler, Database handler etc..
Daar zal hier vast en zeker een leuke tutorial voor staan.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.