Avatar billede oldnick Nybegynder
21. november 2006 - 16:19 Der er 4 kommentarer og
1 løsning

Få include til at funger ligesom echo!

Hej

Jeg ved godt det lyder som det rene vrøvl, men det jeg mener er at jeg vil gerne have nedenstående kode til at spytte to entrys fra min db ud som includes.

Lad mig prøve at forklare nærmere:

1. Jeg har en tabel (div) i min db med id og div_name.
2. Der er to entrys i min db. (one, two).
3. Jeg har en mappe pages, hvor der ligge to fil som skal includes i min index file. one.php og two.php.

Mit problemer er at kun den ene php fil bliver included. Jeg tror jeg ved hvorfor, men ved desværrer ikke hvordan jeg skal løse det.

Jeg tror problemer er i mit loop, for hvor mod en echo vil lave to outputs (pages/one.php og pages/two.php) så tage includen kun fat i den ene eller den anden alt efter om den er inde i loopet eller udenfor loopet!

Håber at der er nogen som kan hjælpe.

NB: Det er meningen at jeg via min admin side kunne oprettet x-antal entrys i min db (div), så derfor skal løsning indholde at jeg ikke låser mig fast til en fordefineret antal af entrys.

Min php kode:

<?php
require ("includes/db.inc.php");
$result = @mysql_query("SELECT * FROM div");
if(!$result) {
    exit('<p>Error preforming query:' . mysql_error() . '</p>');
}
while ($row = mysql_fetch_array($result)) {

$page    = "$row['div_name'].php";

include ("$page");
}
?>
Avatar billede oldnick Nybegynder
21. november 2006 - 16:33 #1
Rettet php: virker stadigvæk ikke men det er så langt jeg er nået!

<?php
require ("includes/db.inc.php");
$result = @mysql_query("SELECT * FROM div");
if(!$result) {
    exit('<p>Error preforming query:' . mysql_error() . '</p>');
}
while ($row = mysql_fetch_array($result)) {
$count        = mysql_fetch_row($result);
$page    = "pages/".$row['div_name'].".php";

include ("$page");

}
?>
Avatar billede dennismp Nybegynder
21. november 2006 - 18:19 #2
Du skal kun kalde mysql_fetch_* een gang i dit loop. Har rettet lidt i din kode:

<?php
require ("includes/db.inc.php");
$result = @mysql_query("SELECT * FROM div");
if(!$result) {
    exit('<p>Error preforming query:' . mysql_error() . '</p>');
}

while ($row = mysql_fetch_assoc($result)) {
  include("pages/{$row['div_name']}.php");
}
?>

Som en sidebemærkning kunne du jo også droppe din tabel og så bare include alle filer i pages,
fx med:
foreach( glob("pages/*.php") as $file )
  require($file);
Avatar billede oldnick Nybegynder
21. november 2006 - 18:48 #3
Tak, din løsning med at droppe tabel'et var lige det jeg skulle bruge det virker perfekt. Smid et svar.. :)

NB: Det andet kunne jeg ikke få til at fungere, og den anden mysql_fetch ... var en fejl den kom med jeg havde rodet med at lave noget med count og for :)
Avatar billede dennismp Nybegynder
21. november 2006 - 19:21 #4
Det var så lidt - glad for at kunne hjælpe.

Du kan evt smide sort() rundt om glob(), så kan du også styre hvilken rækkefølge filerne bliver inkluderet i.. (fx 01_one.php, 02_two.php)
Avatar billede oldnick Nybegynder
21. november 2006 - 21:29 #5
Super godt med nogle tips... :)
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