Pagina dinamica cu continut in Baza de date

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

Pagina dinamica cu continut in Baza de date

Este posibil (daca da, cum) sa se inregistreze in baza de date continutul unei pagini dinamice scrise in php? Pagina contine interogari sql si afiseaza apoi rezultatele interogarilor. Aceasta pagina urmeaza sa fie folosita astfel:

Cod: Selectaţi tot

index.php?page=pagina_mea
Va multumesc,
Daniel

MarPlo Mesaje:4343
Salut
In baza de date se retine continutul paginilor, si alte date asociate (titlu, descriere), inregistrate pe cate un rand cu id unic (AUTO_INCREMENT), fiecare rand reprezenta continutul si datele unei pagini:

Cod: Selectaţi tot

id      titlu              descriere              continut
------------------------------------------------------------------------
 1     Titlu pagina 1      Desciere pagina       Continutul paginii
 2     Titlu paginii 2     Desciere pagina 2     Continutul paginii 2
De exemplu, Insert date pt o pagina:

Cod: Selectaţi tot

$titlu ='Un titlu';
$desc = 'O descriere';
$content = 'Continutul acestei pagini';
$sql = "INSERT INTO nume_tabel (titlu, descriere, continut) VALUES ('$titlu', '$desc', '$content')";
// cod trimitere $sql la basa de date
Apoi, ca sa preiei o anumita pagina, in adresa url adaugi id-ul paginii, si faci select la baza de date in functie de acel id, si va returna randul cu datele de la acel id.

Cod: Selectaţi tot

// Adresa paginii:  index.php?pgid=2
$id = isset($_GET['pgid']) ? intval($_GET['pgid']) : 1;
$sql = "SELECT * FROM nume_tabel WHERE id = $id";
// restul codului
Daca nu stii cum se face Insert, Select si alte comenzi la baza de date, vezi lectiile si tutorialele din Cursul PHP-MySQL de pe site.

danimunte Mesaje:2
Buna ziua,
Multumesc frumos pentru raspuns. Arfi fost mai bine daca as fi scris un fragment din codul paginii al carei continut doresc sa il scriu in baza de date.
In aceasta pagina exista astfel de linii de cod:

Cod: Selectaţi tot

// display tests which contains questions
$q = "SELECT * FROM test_tests WHERE test_stage=1";
$r = mysql_query($q)  or die ("ERROR Can not read from data base");
while ($w = mysql_fetch_array($r)) {
    $test_no = $w["test_no"];
    echo "<div class=\"col-sm-3 item-box\">";
    echo "Test no."; 
    echo $test_no."<br>";
} 
Am incercat sa inregistrez pagina cu <textarea> dintr-un formular.
O scriere normala nu a reusit, de aceea inainte de a face submit am codat continutul paginii astfel:

Cod: Selectaţi tot

$page_content  =  htmlentities($page_content) 
, iar la afisarea in index.php?page = pagina_mea am facut decodarea astfel:

Cod: Selectaţi tot

$page_content_de _afisat  =  html_entity_decode($page_content_din_baza_de_date) 
. In acest caz un fragment din se afiseaza este:

Cod: Selectaţi tot

// display tests which contain questions $q = "SELECT * FROM test_tests WHERE test_stage=1"; $r = mysql_query($q) or die ("ERROR Can not read from data base"); while ($w = mysql_fetch_array($r)) { $test_no = $w["test_no"]; echo "
"; echo "Test no."; echo $test_no."
";
Fiti amabil va rog sa imi spuneti daca si cum se pot stoca in baza de date astfel de pagini . De asemenea, daca stiti, recomandat-mi va rog un titlu de carte in care se trateaza problema aceasta. Pentru mine de baza este cartea lui Larry Ullman “PHP si MYSQL pentru site-uri web dinamice”.

Va multumesc mult.
Cu respect,
danimunte

MarPlo Mesaje:4343
Nu e nevoie sa te complici cu adaugare cod php in baza de date, trebuie apoi aplicat eval(), si e prea nesigur.
La ce ai, se poate rezolva simplu adaugand codul in fisier php si folosesti pentru "test_stage" o valoare dinamica din adresa url.

Cod: Selectaţi tot

// get test number
$test = isset($_GET['test']) ? intval($_GET['test']) : 1;

// display tests which contains questions
$q = "SELECT * FROM test_tests WHERE test_stage = $test";
$r = mysql_query($q)  or die ("ERROR Can not read from data base");
while ($w = mysql_fetch_array($r)) {
    $test_no = $w["test_no"];
    echo "<div class=\"col-sm-3 item-box\">";
    echo "Test no."; 
    echo $test_no."<br>";
}
 
Iar adresa url poate fi: index.php?test=1

Subiecte similare