Warning: Cannot modify header information - headers already sent by (output started at /home/intheory/public_html/ro/exemplu_php_mysql.php:2) in /home/intheory/public_html/counter.inc on line 31
 Exemplu de utilizare PHP cu mySQL: formular pentru introducere date
in-theory.info

Exemplu de utilizare PHP cu mySQL: formular pentru introducere date

Etichete: PHP, MySQL

Pentru programatorii aflaţi la început de drum acest exemplu este menit să arate modul în care se lucrează cu baze de date folosind PHP. Formularul din exemplul de mai jos este destinat înregistrării utilizatorilor dar ar fi putut sa servească la introducerea oricăror date, bineînţeles, cu modificările aferente. În fond, codul de mai jos permite crearea unei pagini PHP în care se poate adăuga un utilizator nou, în tabela ExempluUtilizatori din baza de date, se poate modifica o înregistrare sau se poate şterge.



<?php
/* Pentru crearea tablelei ExempluUtilizatori, in mySQL se executa scriptul următor:

CREATE TABLE ExempluUtilizatori
(
    ID INT PRIMARY KEY AUTO_INCREMENT,
    Login VARCHAR (12) NOT NULL,
    Password VARCHAR (20) NOT NULL,
    Email VARCHAR (50)
);
*/



//********************************************************************************
// CONECTARE LA BAZA DE DATE
//********************************************************************************
$link = mysql_connect ("server_name", "user_name", "password") or die ("Eroare! Conectarea la server esuata!");
mysql_select_db ("db_name") or die ("Eroare! Conectarea la baza de date esuata");

//********************************************************************************
// INITIALIZARE VARIABILE

// 1. Variabila $for se va incarca din elementul INPUT de tip HYDDEN, hdnFor, din HTML

// si ea va folosi pentru ca in zona de cod PHP sa se identifice motivul pentru care pagina se
// genereaza. Astfel, daca din scriptul JavaScript cu care se face submit se da lui hdnFor
// valoarea EDIT, se intră în secţiune EDIT (prin if-ul de mai jos).
//
// 2. Variabila $id se va incarca din elementul INPUT de tip HYDDEN, hdnID, din HTML
// si ea va folosi in zona de cod PHP pentru a stoca id-ul unic al înregistrării curente.
//
// 3. Celelalte variabile folosesc la stocarea datelor care trebuie salvate în tabela ExempluUtilizatori.
// Acestea se încarcă din elementele de tip INPUT din formularul (FORM) din HTML, vizibile în interfaţă.
//********************************************************************************
$for    =  $HTTP_POST_VARS['hdnFor'];
$id     =  $HTTP_POST_VARS['hdnID'];
$login  = $HTTP_POST_VARS['txtLogin'];
$pass  = $HTTP_POST_VARS['txtPassword'];
$email = $HTTP_POST_VARS['txtEmail'];

//********************************************************************************
// EDIT
// În această secţiune se încarcă din baza de date valorile aferente variabilelor Login,
// Password şi Email din PHP. Apoi, aceste variabile vor fi încărcate în INPUT-urile din
// HTML, folosind, de exemplu:
// <INPUT TYPE=text ID="txtEmail" MAXLENGTH="50" VALUE="<? print($email) ?">
//********************************************************************************
if ($for == "EDIT")
{
    $query = "SELECT Login, Password, Email FROM ExempluUtilizatori WHERE ID = ".$id;
    $result = mysql_query ($query) or die ("Eroare! Selectarea inregistrarii esuata!");
    if ($row = mysql_fetch_array ($result))
    {
        $login = $row[0];
        $pass = $row[1];
        $email = $row[2];
    }
}

//********************************************************************************
// SAVE
// Această secţiune acoperă cazurile INSERT şi UPDATE, adică adăugarea unei noi înregistrări
// (când $id == "") sau salvarea modificării uneia existente (când $id != "")
//********************************************************************************
if ($for == "SAVE")
{
    if ($id == "")
    {
        $query = "INSERT INTO ExempluUtilizatori (Login, Password, Email) VALUES ('".$login."', '".$pass."', '".$email."')";
        mysql_query ($query) or die ("Eroare! Insert esuat!");
        $id = mysql_insert_id ($link);
    }
    else
    {
        $query = "UPDATE ExempluUtilizatori SET Login = '".$login."', Password = '".$pass."', Email = '".$email."' WHERE ID = ".$id;
        mysql_query ($query) or die ("Eroare! Update esuat!");
    }
}

//********************************************************************************
// DELETE
//********************************************************************************
if ($for == "DELETE")
{
    $query = "DELETE FROM ExempluUtilizatori WHERE ID = ".$id;
    $result = mysql_query ($query) or die ("Eroare! Stergere esuata");
}
?>

<HTML>
<HEAD>
<script language=javascript>
function Save()
{
    /*funcţia este apelată atunci cand se apasă butonul Save*/
    /*1. primul pas este vealidarea completarii campurilor obligatorii*/
    /*- în caz de necompletare, execuţia este sistată cu return*/
    if(document.frmForm.txtLogin.value == ""){
        alert("Eroare! Completati campul Login!");
        return;
    }

    if(document.frmForm.txtPassword.value == "")
    {

        alert("Eroare! Completati parola!");
        return;
    }

    if(document.frmForm.txtEmail.value == ""){
        alert("Eroare! Completati adresa de email!");
        return;
    }

    /*2. dacă toate câmpurile sunt competate, se dă lui hdnFor valoarea SAVE*/
    /*pentru ca la incarcarea paginii, in PHP acesta să indice intrarea pe fluxul aferent*/
    document.frmForm.hdnFor.value = "SAVE";
    /*3. se trmite pagina cu valorile completate la server*/
    document.frmForm.submit();
}

function Clear()
{
    /* serveşte la golirea câmpurilor din interfaţă pentru a permite introducerea unei noi înregistrări*/
    document.frmForm.hdnFor.value = "";
    document.frmForm.hdnID.value = "";
    document.frmForm.txtLogin.value = "";
    document.frmForm.txtPassword.value = "";
    document.frmForm.txtEmail.value = "";
    document.frmForm.submit();
}

function Edit(i)
{
    /* atunci când utilizatorul alege să editeze o înregistrare se execută această funcţie care*/
    /* trimite pagina la server în vederea încărcării valorilor din vaza de date (fluxul EDIT de mai sus)*/
    document.frmForm.hdnFor.value = "EDIT";
    document.frmForm.hdnID.value = i;
    document.frmForm.submit();
}

function Delete(i)
{
    if(!confirm("Confirmati stergerea..."))
    {
        return;
    }
    document.frmForm.hdnFor.value = "DELETE";
    document.frmForm.txtLogin.value = "";
    document.frmForm.txtPassword.value = "";
    document.frmForm.txtEmail.value = "";
    document.frmForm.submit();
}
</script>
</HEAD>

<BODY>

<!-- urmează form-ul de introducere de date: -->

<FORM ID="frmForm" NAME="frmForm" METHOD="post">
    <table border=0 bgcolor=#c0c0c0 width=30%>
        <tr>
            <td WIDTH=30%>Login Name: </td>
            <td><INPUT TYPE=text ID="txtLogin" NAME="txtLogin" MAXLENGTH="12" VALUE="<?php print($login) ?>"></td>
        </tr>
        <tr>
            <td>Password: </td>
            <td><INPUT TYPE=text ID="txtPassword" NAME="txtPassword" MAXLENGTH="20" VALUE="<?php print($pass) ?>"></td>
        </tr>
        <tr>
            <td>Email:              <td><INPUT TYPE=text ID="txtEmail" NAME="txtEmail" MAXLENGTH="50" VALUE="<?php print($email) ?>"></td>
        </tr>
        <tr>
            <td colspan=2 align=right>
                <INPUT TYPE=button ID="btnSave" ONCLICK="Save()" VALUE="Save">
                <INPUT TYPE=button ID="btnClear" ONCLICK="Clear()" VALUE="Clear">
                <INPUT TYPE=button ID="btnDelete" ONCLICK="Delete()" VALUE="Delete">
            </td>
        </tr>
    </table>

    <INPUT TYPE=hidden ID="hdnID" NAME="hdnID" VALUE="<?php print($id) ?>">
    <INPUT TYPE=hidden ID="hdnFor" NAME="hdnFor">
</FORM>
<hr>

<?php

//********************************************************************************
// AFISAREA INREGISTRARILOR EXISTENTE
//********************************************************************************
$query = "SELECT ID, Login, Password, Email FROM ExempluUtilizatori ORDER BY Login";
$result = mysql_query ($query) or die ("Query failed");

print "<table width=30% bgcolor=#abcabc cellspacing=1 border=0>\n";
print "<tr bgcolor=#abcabc>";
print "<td>#</td>";
print "<td>Login</td>";
print "<td>Password</td>";
print "<td>E-mail</td>";
print "</tr>";

while ($row = mysql_fetch_array ($result))
{
    if ($row[0] == $id)
        $bgcolor = "#abcdef";
    else
        $bgcolor = "#ffffff";
    print "<tr bgcolor=$bgcolor>";
    print "<td><a href='javascript:Edit(".$row[0].")'>***</a></td>";
    print "<td>".$row[1]."</td>";
    print "<td>".$row[2]."</td>";
    print "<td>".$row[3]."</td>";
    print "</tr>";
}

print "</table>";

mysql_free_result ($result);
mysql_close ($link);
?>

</BODY>
</HTML>


Adrian Ionescu





Colecția:  𐒢 Exemple de cod

Articolul precedent:  Alinierea textului si imaginilor cu CSS
Articolul următor:  Exemplu de utilizare ADO .NET în C#



👍 Topul celor mai citite articole

1. Analiza cerinţelor software. Introducere
Această serie de articole este destinată tuturor persoanelor implicate în proiecte de dezvoltare de software: şefi de departament, şefi de proiec...

2. Despre Analiza cerinţelor
Analiza cerinţelor software (pe care o vom numi în continuare Analiza de business sau Analiză software) este aceea dintre disciplinele existente î...

3. Axiomele dezvoltării software
Adevăruri ale dezvoltării software care susțin nevoia Analizei cerințelor. Unul dintre ele este: "Întotdeauna, într-un proiect software apar si...

4. Ciclul de dezvoltare al produsului software (SDLC)
Deşi în limba engleză este denumit Software Development Life Cycle (SDLC) am ales traducerea „Ciclul de dezvoltare al produsului software”, chi...

5. Ciclul de dezvoltare iterativ
Asumarea realităţii că întotdeauna, în decursul proiectului, cerinţele se vor schimba a condus la apariţia unui model de dezvoltare realist, ca...

6. Locul Analizei în proiectul de dezvoltare software
Analiza Software este o disciplină care se află în relaţie de dependenţă cu celelalte discipline din proiect. Concret, task-urile din proiectul ...

7. Modele teoretice de abordare a problemelor. Decompoziţia
Modalităţile teoretice de abordare a problemelor sunt universale şi pot fi folosite oriunde însă pentru domeniul nostru, este important să le co...

8. Modele teoretice de abordare a problemelor. Sinteza
Sinteza este o modalitate, prin care, din manifestări punctuale se determină problema reală. Cel mai simplu şi clar exemplu este acela al mediculu...

9. Modele teoretice de abordare a problemelor. Crearea unui trunchi de bază
De foarte multe ori, în viaţa reală, o problemă nu poate fi punctată decât cu un efort substanţial sau chiar deloc. Pur şi simplu, obţinerea ...

10. Modele teoretice de abordare a problemelor. Abordarea iterativă
Metoda iterativă presupune rezolvarea unei probleme cunoscute printr-o abordare iterativă, la fiecare iteraţie făcând un pas către rezolvarea pr...



📜 Căutare după etichetă:

Analiza Business
Baze de date
C#
Cerințe software
CSS
Dictionar IT
HTML
MySQL
PHP
Riscuri
SDLC
Specificații software
SQL
UML