[PHP] Functions Probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Leon-
  • Registratie: Juli 2005
  • Laatst online: 17-09 20:30
Ik heb een functie gemaakt waarbij het script uit de tabel "pages" de rijen haalt.

Dit doe ik omdat ik zelf aan het proberen ben een cms te ontwikkelen (ik heb er al 1 gemaakt maar die is te lastig om toe te passen in andere websites, moet er teveel aan veranderen)

Iedere pagina krijgt zijn eigen rij in de tabel, dat ziet er als volgt uit (tabel dump):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- 
-- Tabel structuur voor tabel `pages`
-- 

CREATE TABLE `pages` (
  `id` int(11) NOT NULL auto_increment,
  `name` text NOT NULL,
  `content` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `pages`
-- 

INSERT INTO `pages` VALUES (1, 'home', 'dit is de tekst die moet verschijnen');


Dus in de tabel pages, zit de pagina home in dit voorbeeld, en als het script goed werkt moet hij content echoën.

Mijn functie ziet er als volgt uit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?

$page = "home";
    
function readContent($page) {
    
    include('connect.inc.php');
    $opdracht = "SELECT * FROM pages WHERE name='$page' ORDER BY id ASC";
    $result = mysql_query($opdracht) or die ("Query error:".mysql_error());   
    while ($row = mysql_fetch_array($result)) {

    echo $row['content'];   

    }
}
    
    
    ?>


Nu zou hij de $page moeten selecteren uit de database, in dit geval dus de inhoud van de eerste rij "home" en dan van die rij "home" de content moeten echoën, maar helaas doet hij dit niet.

Heeft iemand een idee waar ik de mist in ga? Ik kan het niet uitstaan dat het niet werkt :'( het zou moeten werken naar mijn idee...

Acties:
  • 0 Henk 'm!

  • Atari Paul
  • Registratie: November 2002
  • Laatst online: 13:04
Ehm, je roept verderop in je code wel de functie readContent($page) aan ?

Stability ?? My Atari still has it :)


Acties:
  • 0 Henk 'm!

Verwijderd

Wát werkt er niet? Er kan van alles misgaan.

Acties:
  • 0 Henk 'm!

  • Leon-
  • Registratie: Juli 2005
  • Laatst online: 17-09 20:30
Atari Paul schreef op donderdag 26 januari 2006 @ 15:06:
Ehm, je roept verderop in je code wel de functie readContent($page) aan ?
O+ *shame*

Ik heb al een aantal maand geen php meer gedaan, was/ben functions een beetje kwijt.

Moet ik dit dan in een externe pagina plaatsen?

PHP:
1
2
3
4
5
6
7
8
<?

include('functions.php');

$page = "home";

readContent($page);
?>
Wát werkt er niet? Er kan van alles misgaan.
Hij echot niet ;)

Acties:
  • 0 Henk 'm!

  • Atari Paul
  • Registratie: November 2002
  • Laatst online: 13:04
Nee, je hoeft functies niet in een extern bestand te plaatsen, maar het kan je code wat overzichtelijker houden.

Stability ?? My Atari still has it :)


Acties:
  • 0 Henk 'm!

  • Leon-
  • Registratie: Juli 2005
  • Laatst online: 17-09 20:30
Atari Paul schreef op donderdag 26 januari 2006 @ 15:29:
Nee, je hoeft functies niet in een extern bestand te plaatsen, maar het kan je code wat overzichtelijker houden.
De functie wil ik wel gaan includen in een extern bestand, dit om het was overzichtelijker te houden.

PHP:
1
2
3
4
5
6
7
8
<? 

include('functions.php'); 

$page = "home"; 

readContent($page); 
?>


Zelf zat ik te denken aan bovenstaande code, helaas werkt dit niet.
Ik kan duidelijk merken dat ik een aantal maand niet gecode heb ;)

Acties:
  • 0 Henk 'm!

  • Dark Wanderer
  • Registratie: September 2003
  • Laatst online: 11-08-2024

Dark Wanderer

Or not :P

Je definieerd $page buiten de functie, daarom kan ie de functie niet vinden en heb je eigenlijk in je sql statement where naam='' staan zeg maar, want $page is leeg als je em niet in de functie laad.

Zet de regel
PHP:
1
global $page;


IN je functie, en het moet werken als het goed is. Ik had dit probleem ook eerst, en toen hebben ze me op dit forum geholpen. Probeer volgende keer de zoek functie eens, scheelt je typwerk!

Laat even weten of het gelukt is.

hand·te·ke·ning (de ~ (v.))


Acties:
  • 0 Henk 'm!

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 24-05 15:42
Dark Wanderer schreef op donderdag 26 januari 2006 @ 15:32:
Je definieerd $page buiten de functie, daarom kan ie de functie niet vinden en heb je eigenlijk in je sql statement where naam='' staan zeg maar, want $page is leeg als je em niet in de functie laad.

Zet de regel
PHP:
1
global $page;


IN je functie, en het moet werken als het goed is. Ik had dit probleem ook eerst, en toen hebben ze me op dit forum geholpen. Probeer volgende keer de zoek functie eens, scheelt je typwerk!

Laat even weten of het gelukt is.
Onzin, hij geeft $page (in dit geval "home") toch mee als parameter aan de functie...

Acties:
  • 0 Henk 'm!

  • nielsje2
  • Registratie: Januari 2006
  • Laatst online: 19-09 18:58
Anders kan je inplaats van "echo"
ook gebruik maken van return()

kijk voor meer info over return op: http://nl3.php.net/manual/en/function.return.php

Acties:
  • 0 Henk 'm!

  • ZroBioNe
  • Registratie: Augustus 2001
  • Niet online
Vervang je functie eens door dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
function readContent($page) { 
    echo 'readcontent<br>';
    include('connect.inc.php'); 
    $opdracht = "SELECT * FROM pages WHERE name='$page' ORDER BY id ASC"; 
    echo 'sql query: '.$opdracht.'<br>'; 
    $result = mysql_query($opdracht) or die ("Query error:".mysql_error());    
    while ($row = mysql_fetch_array($result)) { 
        print_r($row);
        echo '<br>';
        echo $row['content'];
    } 
}


En post hier is de output.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Leon- schreef op donderdag 26 januari 2006 @ 15:32:
Zelf zat ik te denken aan bovenstaande code, helaas werkt dit niet.
Leuk dat het niet werkt, maar wàt werkt er niet? Krijg je een foutmelding? Krijg je een witte pagina? Doet ie gewoon niks? Kom je wel in elke vertakking van je functie? Doe eens debuggen. (Voor info daarover verwijs ik je naar onze FAQ.)
nielsje2 schreef op donderdag 26 januari 2006 @ 15:42:
Anders kan je inplaats van "echo"
ook gebruik maken van return()

kijk voor meer info over return op: http://nl3.php.net/manual/en/function.return.php
Onzin, dat is hier het probleem niet. Als je return gebruikt (wat géén functie is, maar een language construct, en daarom geen haakjes nodig heeft) dan moet je alsnog in je hoofdcode een echo doen. Los van het feit of het nou netter is of niet zou het dus geen bal uitmaken. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Dark Wanderer
  • Registratie: September 2003
  • Laatst online: 11-08-2024

Dark Wanderer

Or not :P

HyperioN. schreef op donderdag 26 januari 2006 @ 15:37:
[...]

Onzin, hij geeft $page (in dit geval "home") toch mee als parameter aan de functie...
Ja sorry, ik had er echt helemaal overheen gekeken. Ik deed ff iets te slim dacht ik!

Sorriej!!!

hand·te·ke·ning (de ~ (v.))

Pagina: 1