Include fisier cu adresa din baza de date

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
royal27
Mesaje: 49

Include fisier cu adresa din baza de date

Am facut urmatorul cod care preia datele din sql pagina si include,imi arata blank page,ai vreo solutie?

Cod: Selectaţi tot

$page= $_GET['page'];
$pagess =$xyz->query("SELECT id, name, path FROM page");
while($page=$pagess->fetch_array()){
$page =$xyz->query("SELECT id, name, path FROM page")->fetch_array();
$pagesss = $page['name'];
if ($page == "" ){
  include ("system/login/login.php");
}else if ( $page== $pagesss){
  $page =$xyz->query("SELECT id, name, path FROM page")->fetch_array();
  include $page['path'];
}
echo '<br>';
}

MarPlo
Nu am vreo solutie fiindca din cod nu reise care e problema.
Depinde de structura fisierelor, ce date primesti si ce vrei sa obntii sau sa incluzi.

royal27
am asa

Cod: Selectaţi tot

$page= $_GET['page'];
if($page == "" || $page=="login"){
  include('system/login/index.php');
}else if($page =="register"){
  include('system/register/register.php');
}
vreau ca unde e

Cod: Selectaţi tot

}else if($page =="register"){ 
sa extraga numele register din baza de date si unde e

Cod: Selectaţi tot

include('system/register/register.php');
sa extraga doar system/register/register.php si sa imi afiseze pagina normal dar cu codul care l-am facut imi da blank.

MarPlo
Depaneaza codul, sa vezi unde e problema.
1. Adauga urmatorul cod la inceputul fisierului ca sa afiseze toate erorile:

Cod: Selectaţi tot

ini_set('display_errors',1);
error_reporting(E_ALL);
2. Vezi ce valoare contine $page['path'], cu:

Cod: Selectaţi tot

var_dump($page['path']);
3. Daca e corecta calea de includere, verifica si in fisierul inclus, daca se proceseaza datele din el, de exemplu cu un echo.

royal27
Eroarea imi da string(22) "system/login/login.php" chestia e ca nu imi dezvolta mai departe ce am in sql,a ramas doar pe login in loc sa puna login.php register.php etc......in include ma refer

MarPlo
O problema e, ori de logica a codului, ori la datele transmise si primite.
Dar poate afla cel care are scriptul si poate sa faca depanare si diferite teste.
Ca un indiciu din ce am observat, in codul dat la inceput ai urmatoarea interogare sql de doua ori, inainte de 'else if()' si in el.

Cod: Selectaţi tot

$page =$xyz->query("SELECT id, name, path FROM page")->fetch_array();
Fara nici o conditie WHERE, acel cod sql returneaza toate randurile din tabelul 'page', iar functia fetch_array() iti da in acel else if() din while() mereu randul curent (adica primul).
Probabil ca interogarea sql ar merge cu o conditie care sa returneze un anumit rand din tabel.
- E doar o parere la ce am observat in cod.

royal27
Aici ai dreptate dar cum fac sa nu returneze ambele randuri ca urmatoarele randuri dar sa nu arate acelasi rand?

MarPlo
Poti sa adaugi un WHERE in al doilea sql care sa excluda randul /randurile care sa nu fie selectate.
Un exemplu:

Cod: Selectaţi tot

$page =$xyz->query("SELECT id, name, path FROM page WHERE name != '$pagesss'")->fetch_array();
E doar un exemplu, dar in functie de ce vrei sa obtii conditia WHERE poate fi diferita sau mai complexa.
Sau poate ca acel cod trebuie regandit in functie de ce vrei sa obtii, dar tu stii ce. La asta nu ma bag sa-l fac numai eu pe forum.

royal27
o sa merg pe clasic momentan ca imi da de cap,daca o sa ii dau de cap revin cu o postare

Subiecte similare