Autor Zpráva
Erixx
Profil
zdravím Vás,
mohl by mi prosím někdo poradit, jestli je možné nějakým způsobem includovat soubor do php scriptu?

Něco jako
<?php
...
echo"
<? include "nejaky-soubor.php"; ?>
";
...
?>


Tento způsob mi nefunguje.
Díky za radu.
johnl
Profil
<?php
include "nejaky-soubor.php";
?>
Erixx
Profil
johnl:
Špatně jsem se vyjádřil,
ten incude souboru potřebuji vložit do celého php scriptu, který mi vypisuje data z databáze, tj právě mezi ten tag echo
tj např.


<?
require "db.php";  //výběr databaze
    $vysledek = MySQL_Query("SELECT * FROM clanky ORDER BY id DESC");
      //SQL příkaz
      if (!$vysledek):
          echo "Došlo k chybě.";
             break;
      endif;
      while ($data = MySQL_Fetch_Array($vysledek)){
            
     echo "
     <? include "nejaky-soubor.php"; ?>
     "; 
} while (false);
?>

panther
Profil
Erixx:
právě mezi ten tag echo
echo není tag.

Rada v [#2] je dobrá, tvá lenost neskutečná. Víš, jakou funkci potřebuješ, a přesto se do Manuálu na její použití nepodíváš.
Erixx
Profil
panther

Pardon, příkaz echo.
díky za odkaz.
johnl
Profil
Erixx:
Můžu se zeptat proč to chceš rvát do echo.? Co chceš aby to udělalo.? Nebo co tě vede k tomu že to dáváš tam.?
Include doecho dát nemůžeš, můžeš echo jedině přerušit..
Erixx
Profil
johnl
Mám např. scripty typu:

<?php
require "db.php";  //výběr databaze
    $vysledek = MySQL_Query("SELECT * FROM clanky ORDER BY id DESC");
      //SQL příkaz
      if (!$vysledek):
          echo "Došlo k chybě.";
             break;
      endif;
      while ($data = MySQL_Fetch_Array($vysledek)){
            
     echo "
     <TABLE>
<TR>
 <TD><p>ID stránky:</p></TD>
 <TD><INPUT NAME=id SIZE=10 VALUE='".$data[id]."'></TD>
</TR>

<TR>
 <TD><p>Popis stránky:</p></TD>
 <TD><INPUT NAME=popis SIZE=50 VALUE='".$data[popis]."'></TD>
</TR>

....
</TABLE>

     "; 
} while (false);
?>


A vypisované:


<TABLE>
<TR>
 <TD><p>ID stránky:</p></TD>
 <TD><INPUT NAME=id SIZE=10 VALUE='".$data[id]."'></TD>
</TR>

<TR>
 <TD><p>Popis stránky:</p></TD>
 <TD><INPUT NAME=popis SIZE=50 VALUE='".$data[popis]."'></TD>
</TR>

....
</TABLE>




bych chtěl vložit do zminovaného souboru "nejaky-soubor.php" a právě includovat v php zápisu.

při pokusech mi to bud nejede vůbec nebo mi to data z databáze "clanky" nevypíše, ale vypíše místo nich v políčkách pouze toto:
'".$data[id]."', '".$data[popis]."' (místo např ID 1, popis stránky 1..)
johnl
Profil
Erixx:
A kde by jsi to chtěl vypisovat.?

<?php
echo "
     <TABLE>
<TR>
 <TD><p>ID stránky:</p></TD>
 <TD><INPUT NAME=id SIZE=10 VALUE='".$data[id]."'></TD>
</TR>

<TR>
 <TD><p>Popis stránky:</p></TD>
 <TD><INPUT NAME=popis SIZE=50 VALUE='".$data[popis]."'></TD>
</TR>
";
//POKUD TADY TAK STAČÍ PŘERUŠIT ECHO
//ZDE DÁT INCLUDE
include "nejaky-soubor.php";
//A POKRAČOVAT V ECHO
echo "
</TABLE>

     ";
?>
tiso
Profil
Erixx: takéto "include" nemá zmysel. Keď chceš štrukturovať program, tak používaj funkcie, triedy a vrstvenie aplikácie (šablóny, MVC).
Erixx
Profil
johnl
includovany_soubor.php by mel obsahovat toto:

<TABLE>
<TR>
 <TD><p>ID stránky:</p></TD>
 <TD><INPUT NAME=id SIZE=10 VALUE='".$data[id]."'></TD>
</TR>

<TR>
 <TD><p>Popis stránky:</p></TD>
 <TD><INPUT NAME=popis SIZE=50 VALUE='".$data[popis]."'></TD>
</TR>
....
</TABLE>


Stránka napr clanky.php by mely vypadat takto:


<?php
require "db.php"; 
    $vysledek = MySQL_Query("SELECT * FROM clanky ORDER BY id DESC");
      //SQL příkaz
      if (!$vysledek):
          echo "Došlo k chybě.";
             break;
      endif;
      while ($data = MySQL_Fetch_Array($vysledek)){
            
     echo "
     <? include "includovany_soubor.php"; ?>
     "; 
} while (false);
?>



A mělo by se vypsat vlastne toto z udaji vypsanymi z databáze na strance clanky.php:

<TABLE>
<TR>
 <TD><p>ID stránky:</p></TD>
 <TD><INPUT NAME=id SIZE=10 VALUE='ID NAPRIKLAD=1'></TD>
</TR>

<TR>
 <TD><p>Popis stránky:</p></TD>
 <TD><INPUT NAME=popis SIZE=50 VALUE='NEJAKY POPIS STRANKY'></TD>
</TR>
....
</TABLE>
Spectator
Profil
include('neco.php'); spusti skript ve skriptu

funkce(); - může vracet co chceš i řetězec nebo pole.., takže pro řetězec můžeš požít :

echo funkce();
////////////

z logiky věci si představ jak zobrazit $a = $b; ?Na tom nic neuvidíš.

tvůj přídad řeš třeba takto:

function tabulka(){
  echo "<TABLE>
  <TR>
   <TD><p>ID stránky:</p></TD>
   <TD><INPUT NAME=id SIZE=10 VALUE='".$data[id]."'></TD>
  </TR>
  
  <TR>
   <TD><p>Popis stránky:</p></TD>
   <TD><INPUT NAME=popis SIZE=50 VALUE='".$data[popis]."'></TD>
  </TR>
  ....
  </TABLE>";
}


pak prostě

tabulka();
(v té funkci neřeším uvozovky a podobně)
Mastodont
Profil
Pokud je v inkludovaném souboru
return "string";

tak ten string lze přímo echovat, viz manuál k include.
tiso
Profil
Spectator: tvoja funkcia nebude fungovať.
johnl
Profil
Spectator:
Proměnné v té funkci neexistují! Tiso má pravdu, takhle to nebude fungovat.. Nejlépe takto:

function tabulka($id,$popis){
  echo "<TABLE>
  <TR>
   <TD><p>ID stránky:</p></TD>
   <TD><INPUT NAME=id SIZE=10 VALUE='".$id."'></TD>
  </TR>
  
  <TR>
   <TD><p>Popis stránky:</p></TD>
   <TD><INPUT NAME=popis SIZE=50 VALUE='".$popis."'></TD>
  </TR>
  ....
  </TABLE>";
}


a pak třeba
echo tabulka($data[id],$data[popis]);
tiso
Profil
johnl: to tiež nie je najlepšie riešenie…
johnl
Profil
tiso:
Pořád tedy nechápum když se ti na tom něco nelíbí, tak proč píšeš v takových šifrách.. To nemůžeš rovnou napast co je na tom špatně.? Takhle nikomu neporadíš.. :-))
tiso
Profil
johnl:
- stačí jedna premenná (tabulka($data)) a pracovať tak priamo s vráteným záznamom z DB
- zbytočné spájanie reťazcov v echu, keď už pracuješ s kódom v dvojitých úvodzovkách, tak využi ich výhodu - expandovanie premenných

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0