Jump to content
Rila_xp

Ajutor functie edit formular php mysql

Recommended Posts

Posted

Am urmatorul script(formular php mysql)

config.php:

<?php
session_start();
set_time_limit(0);
error_reporting(E_ALL);

// Informatii baza de date

$AdresaBazaDate = "";
$UtilizatorBazaDate = "";
$ParolaBazaDate = "";
$NumeBazaDate = "";

$conexiune = mysql_connect($AdresaBazaDate,$UtilizatorBazaDate,$ParolaBazaDate) or die("Nu ma pot conecta la MySQL!");
mysql_select_db($NumeBazaDate, $conexiune) or die("Nu gasesc baza de date!");

function addentities($data){
if(trim($data) != ''){
$data = htmlentities($data, ENT_QUOTES);
return str_replace('\\', '\', $data);
} else return $data;
} // End addentities() --------------

?>

index.php

<?php
require_once('config.php');

if(!isset($_SESSION['nume'])) $_SESSION['nume'] = '';
if(!isset($_SESSION['prenume'])) $_SESSION['prenume'] = '';
if(!isset($_SESSION['varsta'])) $_SESSION['varsta'] = '';
if(!isset($_SESSION['email'])) $_SESSION['email'] = '';
if(!isset($_SESSION['comentariu'])) $_SESSION['comentariu'] = '';

echo '<table width="310" border="0" cellpadding="0" cellspacing="0">
<form name="formular" action="validare.php" method="post">
<tr>
<td height="36" colspan="3" valign="top"><h1>Formular</h1>Comentariul nu trebuie sa fie mai lung de 255 caractere.</td>
<td width="1"></td>
</tr>
<tr>
<td width="80" height="19" valign="top"> </td>
<td width="15" rowspan="10" valign="top"> </td>
<td width="214" valign="top"> </td>
<td></td>
</tr>
<tr>
<td height="22" align="right" valign="top">Nume:</td>
<td valign="top">
<input type="text" name="nume" value="'.$_SESSION['nume'].'"> </td>
<td></td>
</tr>
<tr>
<td height="7"></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="22" align="right" valign="top">Prenume:</td>
<td valign="top"><input type="text" name="prenume" value="'.$_SESSION['prenume'].'"></td>
<td></td>
</tr>
<tr>
<td height="9"></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="22" align="right" valign="top">Varsta:</td>
<td valign="top"><input type="text" size="3" maxLength="3" name="varsta" value="'.$_SESSION['varsta'].'"> ani</td>
<td></td>
</tr>
<tr>
<td height="10"></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="22" align="right" valign="top">Email:</td>
<td valign="top"><input type="text" name="email" value="'.$_SESSION['email'].'"></td>
<td></td>
</tr>
<tr>
<td height="9"></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="19" align="right" valign="top">Comentariu:</td>
<td rowspan="2" valign="top"><textarea name="comentariu" cols="30" rows="5" value="'.$_SESSION['comentariu'].'">'.$_SESSION['comentariu'].'</textarea></td>
<td></td>
</tr>
<tr>
<td colspan="2" rowspan="3" valign="top"> </td>
<td height="83"></td>
</tr>
<tr>
<td height="17" valign="top"> </td>
<td></td>
</tr>
<tr>
<td height="24" valign="top"><input name="Trimite" type="submit" id="Trimite" value="Trimite">
<input name="Reseteaza" type="reset" id="Reseteaza" value="Reseteaza"> </td>
<td></td>
</tr>
</form>
</table>';

?>

prelucrare.php

<?php
require_once('config.php');

if(($_SESSION['nume'] == "") || ($_SESSION['prenume'] == "") || ($_SESSION['varsta'] == "") || (!is_numeric($_SESSION['varsta'])) || ($_SESSION['email'] == "") || ($_SESSION['comentariu'] == "") || (strlen($_SESSION['comentariu']) > 1255) )
{
echo 'Nu ai introdus date in formular sau cele introduse nu sunt corecte. <br>
Apasa <a href="index.php">aici</a> pentru a te intoarce la pagina anterioara.';
}
else
{
echo 'Va multumim. <br>
Datele au fost introduse cu succes in baza de date. <br>
Pentru vizualizare apasati <a href="vizualizare.php">aici</a>.';

$cerereSQL = "INSERT INTO `intrari` (`nume`, `prenume`, `varsta`, `email`, `comentariu`)
VALUES ('".$_SESSION['nume']."', '".$_SESSION['prenume']."', '".$_SESSION['varsta']."', '".$_SESSION['email']."', '".$_SESSION['comentariu']."');";
mysql_query($cerereSQL);

$_SESSION['nume'] = '';
$_SESSION['prenume'] = '';
$_SESSION['varsta'] = '';
$_SESSION['email'] = '';
$_SESSION['comentariu'] = '';

}

?>

vizualizare.php

<?php
require_once('config.php');

$cerereSQL = 'SELECT * FROM `intrari`';
$rezultat = mysql_query($cerereSQL);
while($rand = mysql_fetch_array($rezultat))
{
echo '<b>Nume:</b> '.$rand['nume'].' <br>
<b>Prenume:</b> '.$rand['prenume'].' <br>
<b>Varsta:</b> '.$rand['varsta'].' ani <br>
<b>Email:</b> '.$rand['email'].' <br>
<b>Comentariu:</b> '.$rand['comentariu'].' <br><br>';
}

?>

Am postat tot scriptul ca sa intelegeti despre ce e vorba

Sunt incepator in php,deci fiti cat mai expliciti va rog :D

Vreau sa adaug si eu functia edit la scriptul asta si nu prea stiu cum se face,ma puteti ajuta si pe mine sa imi dati macar o idee?

Sau alt script care sa aiba si edit ca sa imi dau seama cum functioneaza

Va multumesc frumos pentru eventualele raspunsuri!

Posted

Nu prea am inteles,dar poate ma lamuriti altfel

Am scriptul asta care adauga sterge si editeaza,l-am gasit pe net

<?php
//********************************************************************************
// CONECTARE LA BAZA DE DATE
//********************************************************************************
$link = mysql_connect ("localhost", "", "") or die ("Eroare! Conectarea la server esuata!");
mysql_select_db ("") 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 intra în sectiune 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 înregistrarii curente.
//
// 3. Celelalte variabile folosesc la stocarea datelor care trebuie salvate în tabela ExempluUtilizatori.
// Acestea se încarca din elementele de tip INPUT din formularul (FORM) din HTML, vizibile în interfata.
//********************************************************************************
$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'];


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
// Aceasta sectiune acopera cazurile INSERT si UPDATE, adica adaugarea unei noi înregistrari
// (când $id == "") sau salvarea modificarii 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()
{


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

function Clear()
{
/* serveste la golirea câmpurilor din interfata pentru a permite introducerea unei noi înregistrari*/
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 sa editeze o înregistrare se executa aceasta functie care*/
/* trimite pagina la server în vederea încarcarii 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>

<!-- urmeaza form-ul de introducere de date: -->

<FORM ID="frmForm" NAME="frmForm" METHOD="post">
<table border=0 bgcolor=#c0c0c0 width=30%>
<tr>

<td><input TYPE=text id="txtLogin" name="txtLogin" 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>

Merge formularu si sunt multumit,dar atunci cand editez linia asta

<td><input TYPE=text id="txtLogin" name="txtLogin" value="<?php print($login) ?>"></td>

si o pun asa

<td><textarea id="txtLogin" name="txtLogin" value="<?php print($login) ?>"></textarea></td>

Nu mai merge sa editez datele,decat sa sterg si sa introduc.

Adica atunci cand dau sa editez nu imi mai apare intrarea din baza de date in textarea

Imi puteti explica de ce?

Posted

Buna!

Am o mica problema si daca puteti va rog sa ma ajutati!

Deci am o baza de date in care userul introduce printr-un form datele sale.

Eu trebuie sa afisez dupa aceea pe o pagina numele tuturor utilizatorilor care au introdus date si langa fiecare linie sa am un link de editare si unul de stergere.

Linkul de editare trebuie sa ma duca pe pagina in care se afla formularul de completare insa in loc de campurile goale de acolo trebuie sa imi afiseze toate datele introduse de utilizator, deci sa modific eu ca administrator daca nu imi place ceva.

Nu stiu care e codul care imi afiseaza din baza de date informatiile in inputurile de tip text.

Am incercat ceva de genul : <input type="text" value="$_POST['nume']"> dar nu merge.

Posted
Buna!

Am o mica problema si daca puteti va rog sa ma ajutati!

Deci am o baza de date in care userul introduce printr-un form datele sale.

Eu trebuie sa afisez dupa aceea pe o pagina numele tuturor utilizatorilor care au introdus date si langa fiecare linie sa am un link de editare si unul de stergere.

Linkul de editare trebuie sa ma duca pe pagina in care se afla formularul de completare insa in loc de campurile goale de acolo trebuie sa imi afiseze toate datele introduse de utilizator, deci sa modific eu ca administrator daca nu imi place ceva.

Nu stiu care e codul care imi afiseaza din baza de date informatiile in inputurile de tip text.

Am incercat ceva de genul : <input type="text" value="$_POST['nume']"> dar nu merge.

$_POST['nume'] iti afiseaza datele luate prin POST request, tu nu faci nici un post, nu are ce date sa iti afiseze.

separat de faptul ca, codul tau este gresit, nu are concatenare asta daca e pus in echo si nu are delimitare de cod php daca e pus html.

Invata php _GET si _POST request dupa care mergi mai departe

si la value o sa ai ceva de genul value="<?php echo $row['nume'];?>" unde $row nume il iei dintr-un loop facut dupa ce te conectezi la baza de date :)

Ca sa stii ce user sa afisezi probabil o sa ai un fisier edit.php, iti recomand sa folosesti $_GET si sa folosesti id din baza de date.

O sa ai ceva de genul edit.php?id=1 asta iti va indica ca urmeaza a modifici utilizatorul cu id`ul 1 in baza de date.

$id = $_GET['id'];

$query = mysql_query("SELECT * FROM `users` WHERE `id` = '$id');

Invata sa securizezi parametrii si totul va fi bine.

Posted (edited)

Merge formularu si sunt multumit,dar atunci cand editez linia asta

<td><input TYPE=text id="txtLogin" name="txtLogin" value="<?php print($login) ?>"></td>

si o pun asa

<td><textarea id="txtLogin" name="txtLogin" value="<?php print($login) ?>"></textarea></td>

<textarea id="txtLogin" name="txtLogin" value="<?php print($login) ?>"></textarea> e un element care se comporta ca div, inafara ca are un textfield. si in plus trebuie sa folosesti htmlentities()


<textarea id="txtLogin" name="txtLogin"><?php print(htmlentities($login)) ?></textarea>

De asemenea id nu e obligatoriu, el nu e trimis in request, ci doar numele. In schimb e utilizat in js, pentru a identifica elemente mai usor. Se poate folosi si in css, dar nu e recomandat, pentru ca vei avea tendinta sa utilizezi un sg id => eventuale probleme in js.

LE: I see what I did there, eh se mai intampla. Macar sa raspund tangent cu ultima intrebare.

Inafara de cele spuse de AhEaD, sa nu uiti 2 lucruri mai importante, securizeaza edit, de preferat pe sesiune / define(va trebui sa experimentezi ca sa intelegi), ca sa fii sigur ca un admin(eventual doar tu ) a/ai trecut prin meniul de editare.

De asemenea ai putea sa iti structurezi prin paginare a datelor, si limitarea requestului din db, in caz ca ai mai multe mii de utilizatori.

Off: Imi cerc scuze daca nu am dibuit data, am vazut ca cineva raspunsese...

Edited by noVaLue
Posted

@noValue: Originally posted by Rila_xp ... but on 09-22-2010, 06:47 PM =)

@adriano21: Poti sa deschizi un thread nou, nu e nevoie sa redeschizi unul de doi ani

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...