techIT.ro Do we have a problem? Let's tech it!    












Daca ai impresia ca educatia e scumpa,
atunci încearca sa vezi cum e ignoranta.
Andy McIntyre









Home  |  Dictionar IT  |  Download  |  Forum  |  Despre noi  |  Contact

Exemplu de utilizare PHP cu mySQL: formular pentru introducere date

Pentru programatorii aflaţi la început de drum acest exemplu este menit să arate omdul î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>



Aceasta pagina poate fi văzută la lucru Vizualizare exempluaici.



techit.ro





Colecţia:  Exemple de cod

Articolul precedent:  Utilizarea unui cursor ca output al unei proceduri stocate
Articolul următor:  Exemplu de utilizare ADO .NET în C#



  


  Adauga un comentariuSpune-ti parerea despre acest articol!