E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale PHP

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  PHP  /  Introducere in PHP (24)

XV. Realizarea unui modul de sondaje (Partea a II-a)

06.05.2009
XV. Realizarea unui modul de sondaje (Partea a II-a)

In cursul acestei serii, ti-am oferit un tur al PHP, invatandu-te tot ce trebuie sa stii pentru a te lansa in utilizarea acestui limbaj de programare extrem de puternic. In cele doua capitole finale ale acestei serii de tutoriale, vei putea citi despre implementarea a doua aplicatii PHP din lumea reala. Nu numai ca vei fi introdus in dezvoltarea propriu-zisa a aplicatiilor PHP, dar vei avea ocazia sa testezi toata teoria cu care ai fost indoctrinat in ultimile saptamani.

Total vizualizari: 5706 5706 afisari   |   Comentarii  0   |   Rating   |   (1 vot)   |   Timp necesar: 30 min 30 min   |   Nivel de cunostiinte necesar: Mediu  Mediu

Sursa:  devzone.zend.com  
Autor:  Vikram Vaswani
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1 23 »
comenteaza printeaza

Urmatorul pas in realizarea acestei aplicatii este sa furnizezi administratorului calea cea mai usoara de adauga si a sterge raspunsuri si intrebari din baza de date MySQL. Scriptul admin.php reprezinta punctul de plecare pentru aceste cerinte:

<html>
<head><basefont face = 'Arial'></head>
<body>
 
<h2>Administrare</h2>
 
<h4>Intrebari curente:</h4>
<table border = '0' cellspacing = '10'>
 
<?php
 
// include fisierul de configuratie
include('config.php');
 
// deschide conexiunea cu baza de date
$connection = mysql_connect($host, $user, $pass) or die('EROARE: Nu s-a putut realiza conexiunea!');
 
// selecteaza baza de date
mysql_select_db($db) or die('EROARE: Nu s-a putut selecta baza de date!');
 
// genereaza si executa interogarea
$query = 'SELECT qid, qtitle, qdate FROM questions ORDER BY qdate DESC';
$result = mysql_query($query) or die('EROARE: $query. '.mysql_error());
 
// daca exista inregistrari
if (mysql_num_rows($result) > 0) {
    // parcurge rezultatele
    // afiseaza titlurile intrebarilor
    while($row = mysql_fetch_object($result)) {
        ?>
        <tr>
            <td><?php echo $row->qtitle; ?></td>
            <td><font size = '-2'><a href = 'view.php?qid=<?php echo $row->qid; ?>'>vezi raport</a></font></td>
            <td><font size = '-2'><a href = 'delete.php?qid=<?php echo $row->qid; ?>'>sterge</a></font></td>
        </tr>
    <?php
    }
}
// daca nu exista inregistrari se va afisa mesajul
else {
?>
    <font size='-1'>Nu exista intrebari in baza de date </font>
<?php
}
 
// inchiderea conexiunii
mysql_close($connection);
    
?>
 
</table>
 
<h4>Adauga intrebare:</h4>
<form action = 'add.php' method ='post'>
<table border = '0' cellspacing = '5'>
<tr>
    <td>Intrebare</td>
    <td><input type = 'text' name = 'qtitle'></td>
</tr>
<tr>
    <td>Raspuns #1</td>
    <td><input type = 'text' name = 'options[]'></td>
</tr>
<tr>
    <td> Raspuns #2</td>
    <td><input type = 'text' name = 'options[]'></td>
</tr>
<tr>
    <td> Raspuns #3</td>
    <td><input type = 'text' name = 'options[]'></td>
</tr>
<tr>
    <td> Raspuns #4</td>
    <td><input type = 'text' name = 'options[]'></td>
</tr>
<tr>
    <td> Raspuns #5</td>
    <td><input type = 'text' name = 'options[]'></td>
</tr>
<tr>
    <td colspan = '2' align = 'right'><input type = 'submit' name = 'submit' value = 'Adauga intrebare'></td>
</tr>
</table>
</form>
 
</body>
</html>

Iata cum va arata:

Poti observa ca acest script are doua sectiuni. Prima jumatate citeste informatiile din baza de date si afiseaza o lista de intrebari, fiecare avand linkurile "vezi raport" si "sterge". A doua jumatate contine un formular simplu ce permite administratorului sa adauge o noua intrebare si cinci raspunsuri posibile.

Dupa ce formularul a fost completat, datele introduse de administrator sunt transmise catre fisierul add.php, care le valideaza si le salveaza in baza de date. Acesta este codul corespunzator:

<html>
<head><basefont face = 'Arial'></head>
<body>
 
<h2>Administration</h2>
 
<?php
 
if (isset($_POST['submit'])) {
    // verificarea datelor introduse
 
    // verifica titlul
    if (trim($_POST['qtitle']) == '') {
        die('EROARE: Trebuie sa scrii o intrebare');
    }
 
    // verifica raspunsurile
    // cele valide sunt adaugate intr-un vector
    foreach ($_POST['options'] as $o) {
        if (trim($o) != '') {
            $atitles[] = $o;
        }
    }
 
    // verifica daca au fost introduse cel putin doua raspunsuri    
    if (sizeof($atitles) <= 1) {
        die('EROARE: Sondajul trebuie sa contina cel putin doua raspunsuri');
    }
 
    // include fisierul de configuratie
    include('config.php');
    
    // deschide conexiunea cu baza de date
    $connection = mysql_connect($host, $user, $pass) or die('EROARE: Nu s-a putut realiza conexiunea!');
 
    // selecteaza baza de date
    mysql_select_db($db) or die('EROARE: Nu s-a putut selecta baza de date!');
    
    // genereaza si executa interogarea pentru a insera intrebarea
    $query = "INSERT INTO questions (qtitle, qdate) VALUES ('{$_POST['qtitle']}', NOW())";
    $result = mysql_query($query) or die("'EROARE: $query.".mysql_error());
 
    // obtine ID-ul inregistrarii 
    $qid = mysql_insert_id();
 
    // reseteaza variabilele
    unset($query);
    unset ($result);
 
    // acum insereaza raspunsurile
    // fiecare raspuns va fi legat de ID-ul intrebarii 
    foreach ($atitles as $atitle) {
        $query = "INSERT INTO answers (qid, atitle, acount) VALUES ('$qid', '$atitle', '0')";
        $result = mysql_query($query) or die("'EROARE: $query. ".mysql_error());
    }
 
    // inchide conexiunea
    mysql_close($connection);
 
    // afiseaza mesajul de succes
    echo "Sondajul a fost salvat in baza de date! Click <a href='admin.php'>aici</a> pentru a reveni la pagina principala ";
}
else {
    die('EROARE: Datele nu au fost corect completate');
}
 
?>
 
</body>
</html>

Acest cod efectueaza mai multe operatii, deci hai sa il analizam.

Pagina:
1 23 »
comenteaza printeaza
Alte tutoriale PHP:
Noteaza acest tutorial
Rating tutorial
 
(1 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
5455
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
5455
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
5280
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
5260
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
5015
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Dreamweaver Swift 3D CSS Action Script Lightroom Sony Vegas Fotografie SWF Javascript XHTML AJAX Gimp Illustrator StyleSheet Flash Ruby on Rails Vista JSON Fireworks Verilog PHP Photoshop Outlook Word MySQL COREL DRAW Bridge Python RoR Java HTML PSD Excel SEO Powerpoint XML
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software