Pagina 1 din 2
o problema cu update
Scris: Mie Iun 30, 2010
de trif
buna ziua,
am urmatorul cod pentru update a mers cand avea doar 3 actualizari de facut dar acum cand am pus mai multe nu vrea sa mai merga si tot m-am uitat sa vad unde este greseala dar nu o gasesc. uitati-va va rog si ziceti si mie care este.
Cod: Selectaţi tot
<?php
require_once('conectare.php');
$id=trim($_POST['id']);
$familie=$_POST['familie'];
$tata=$_POST['tata'];
$mama=$_POST['mama'];
$membri=$_POST['membrii'];
$baieti=$_POST['baieti'];
$fete=$_POST['fete'];
$poza=$_POST['poza'];
$query="SELECT * FROM membrii_bisericii;" ;
$result=mysql_query($query);
$num=mysql_num_rows($result);
if ( $num <> 0 )
{
$row=mysql_fetch_array($result);
print '<form action="cautare.php" method="post">';
print 'ID : <input name="id" value="'.$row['id'].'" type="text" > <br>';
print 'Familie: <input name="familie" type="text" value="'.$row['familie'].'" > <br>';
print 'Tata: <input name="tata" type="text" value="'.$row['tata'].'" > <br>';
print 'Mama: <input name="id" value="'.$row['mama'].'" type="text" > <br>';
print 'Membrii: <input name="familie" type="text" value="'.$row['membrii'].'" > <br>';
print 'Baieti: <input name="familie" type="text" value="'.$row['baieti'].'" > <br>';
print 'Fete: <input name="familie" type="text" value="'.$row['fete'].'" > <br>';
print 'Poza: <input name="familie" type="text" value="'.$row['poza'].'" > <br>';
// print "Detalii: <textarea name="detalii" cols="45" rows="3" id="detalii" value= "'.$row['detalii].'" ></textarea> <br>';
print ' <input type="Submit" value="Actualizare membrii" > ';
print '</form>';
}
$query = "UPDATE membrii_bisericii SET id='".$id."' familie='".$familie."', tata ='".$tata."', mama ='".$mama."', membrii='".$membrii."', baieti ='".$baieti."', fete ='".$fete."', poza ='".$poza."' WHERE id=".$id.";";
mysql_query($query);
$query="SELECT * FROM membrii_bisericii";
$result=mysql_query($query);
$num=mysql_num_rows($result);
$i=0;
mysql_close();
?>
si mai este o problema, am inserat pentru fiecare imparte id, familie.. etc dar la detalii nu vrea sa imi ia ceea ce am facut eu sau cred ca nu asa se face. imi explicati si mie cum se face va rog. cu stima trif
o problema cu update
Scris: Mie Iun 30, 2010
de MarPlo
La UPDATE cu elemente multe se strecoara greseli de genul lipsa unei virgule sau ghilimele, incearca forma urmatoare, sper ca am scris-o corect fiindca e netestata.
$query = "UPDATE `membrii_bisericii` SET `id`='".$id."', `familie`='".$familie."', `tata`='".$tata."', `mama`='".$mama."', `membrii`='".$membrii."', `baieti`='".$baieti."', `fete`='".$fete."', `poza`='".$poza."' WHERE `id`='".$id."' LIMIT 1";
Pt. "detalii", ai greseli la ghilimele. Pune codul de afisare asa:
print 'Detalii: <textarea name="detalii" cols="45" rows="3" id="detalii" value= "'. $row['detalii'].'" ></textarea> <br>';
- Apoi preiei cu $_POST si adaugi la UPDATE ca pe celelalte.
o problema cu update
Scris: Mie Iun 30, 2010
de trif
Am pus si merge dar
detalii nu merge nu stiu de ce?
Cod: Selectaţi tot
<?php
require_once('conectare.php');
$id=trim($_POST['id']);
$familie=$_POST['familie'];
$tata=$_POST['tata'];
$mama=$_POST['mama'];
$membrii=$_POST['membrii'];
$baieti=$_POST['baieti'];
$fete=$_POST['fete'];
$poza=$_POST['poza'];
$detalii=$_POST['detalii'];
$query="SELECT * FROM membrii_bisericii;" ;
$result=mysql_query($query);
$num=mysql_num_rows($result);
if ( $num <> 0 )
{
$row=mysql_fetch_array($result);
print '<form action="cautare.php" method="post">';
print 'ID: <input name="id" value="'.$row['id'].'" type="text" > <br>';
print 'Familie: <input name="familie" type="text" value="'.$row['familie'].'" > <br>';
print 'Tata: <input name="tata" type="text" value="'.$row['tata'].'" > <br>';
print 'Mama: <input name="mama" type="text" value="'.$row['mama'].'" > <br>';
print 'Membrii: <input name="membrii" type="text" value="'.$row['membrii'].'" > <br>';
print 'Baieti: <input name="baieti" type="text" value="'.$row['baieti'].'" > <br>';
print 'Fete: <input name="fete" type="text" value="'.$row['fete'].'" > <br>';
print 'Poza: <input name="poza" type="text" value="'.$row['poza'].'" > <br>';
print 'Detalii: <textarea name="detalii" cols="45" rows="3" id="detalii" value= "'.$row['detalii'].'" ></textarea> <br>';
print ' <input type="Submit"> ';
print '</form>';
}
$query = "UPDATE `membrii_bisericii` SET `id`='".$id."', `familie`='".$familie."', `tata`='".$tata."', `mama`='".$mama."', `membrii`='".$membrii."', `baieti`='".$baieti."', `fete`='".$fete."', `poza`='".$poza."', `detalii`='".$detalii."' WHERE `id`='".$id."' LIMIT 1";
mysql_query($query);
$query="SELECT * FROM membrii_bisericii";
$result=mysql_query($query);
$num=mysql_num_rows($result);
$i=0;
mysql_close();
?>
cu stima trif
o problema cu update
Scris: Mie Iun 30, 2010
de MarPlo
Incearca la "detalii" asa:
print 'Detalii: <textarea name="detalii" cols="45" rows="3" id="detalii" >'. $row['detalii'].'</textarea> <br>';
- Daca nu merge, nu stiu.
o problema cu update
Scris: Mie Iun 30, 2010
de trif
merge asa cum ai zis ultima data! mersi mult de tot! cu stima trif
o problema cu update
Scris: Joi Iul 01, 2010
de trif
am alta problema tot cu update dar diferita, am "pagina mea" in care am pus codul de mai jos
Cod: Selectaţi tot
<?
$nume=$_SESSION['SESS_NUME'];
$prenume=$_SESSION['SESS_PRENUME'];
$query="SELECT * FROM members where nume='".$prenume."'";
$result=mysql_query($query);
$num=mysql_num_rows($result);
$i=0;
while ($i < $num) {
$rand=mysql_fetch_array($result);
echo '<a href="rezultate_membrii_site.php?id='.$rand['id'].' "><center>Schimba date!</center> </a> ';
++$i;
}
?>
si ma trimite la urmatorul cod
Cod: Selectaţi tot
<?php
$utilizator=mysql_real_escape_string($_GET['id']);
$id=trim($_POST['id']);
$nume=$_POST['nume'];
$prenume=$_POST['prenume'];
$utilizator=$_POST['utilizator'];
$email=$_POST['email'];
$localitate=$_POST['localitate'];
$religie=$_POST['religie'];
$poza=$_POST['poza'];
$cerereSQL = 'SELECT * FROM members WHERE id="'.$_GET['id'].'"';
$rezultat = mysql_query($cerereSQL);
$num=mysql_num_rows($rezultat);
if ( $num <> 0 )
{
$rand=mysql_fetch_array($rezultat);
print '<form action="rezultate_membrii_site.php?id='.$rand['id'].'" method="post">';
print 'Nume: <input name="nume" type="text" value="'.$rand['nume'].'" > <br>';
print 'Prenume: <input name="prenume" type="text" value="'.$rand['prenume'].'" > <br>';
print 'Utilizator: <input name="utilizator" type="text" value="'.$rand['utilizator'].'" > <br>';
print 'E-mail: <input name="email" type="text" value="'.$rand['email'].'" > <br>';
print 'Localitate: <input name="localitate" type="text" value="'.$rand['localitate'].'" > <br>';
print 'Religie: <input name="religie" type="text" value="'.$rand['religie'].'" > <br>';
print 'Poza: <input name="poza" type="text" value="'.$rand['poza'].'" > <br><br>';
print ' <input type="Submit" value="Actualizare date!"> ';
print '</form>';
}
$cerereSQL = "UPDATE `members` SET `nume`='".$nume."', `prenume`='".$prenume."', `utilizator`='".$utilizator."', `email`='".$email."', `localitate`='".$localitate."', `religie`='".$religie."', `poza`='".$poza."' WHERE `id`='".$id."'";
mysql_query($cerereSQL) or die("NU se poate adauga!");
print "<br><a href='pagina_mea.php'>Inapoi la pagina mea</a>";
$cerereSQL="SELECT * FROM members";
$rezultat=mysql_query($cerereSQL);
$num=mysql_num_rows($rezultat);
$i=0;
mysql_close();
?>
dar nu merge cum vreau eu sau nu este bine pusa problema dar am tot invartit codul si tot nu imi da ceea ce vreau adica fiecare care se autentifica si intra pe "pagina mea" sa poata sa isi modifice datele. mai este ceva ca nu imi ia pe cel care este autentificat ci imi ia pe toti din lista si
am acest cod care imi scoate numele din bd. adica nu stiu ce sa ii fac. cu stima trif
o problema cu update
Scris: Joi Iul 01, 2010
de MarPlo
Nici eu nu stiu, tu cunosti mai bine ce ai facut si despre ce e vorba, pot doar sa-ti spun ca atunci cand se lucreaza cu sesiuni, fisierul .php trebuie sa aibe adaugat la inceput functia session_start();. La tine obser ca nu este si asta e sigur o cauza, daca or fi si altele, nu stiu.
P.S. Vezi lectia despre sesiuni de la cursul php-mysql
o problema cu update
Scris: Joi Iul 01, 2010
de trif
eu am la inceput de tot functia asta
Cod: Selectaţi tot
<?php
session_start();
include "conectare.php";
?>
si merge la celelalte script-uri php.
faza este ca nu stiu cum sa ii dau sa inteleaga ca doar cel logat poate sa isi modifice datele lui si sa ii apara doar datele lui. asa cum avem fiecare pe forumul acesta "panoul utilizatorului". cu stima trif
o problema cu update
Scris: Joi Iul 01, 2010
de MarPlo
1. Cand se face autentificarea, dupa verificaarea datelor de logare, adaugi id-ul sau numele lui intr-o sesiune, ex.:
$_SESSION['user']=$rand['user']
2. In pagina care are formularul de update poti pune conditia sa transmita la browser codul html pt. formular doar daca exista acea sesiune
Cod: Selectaţi tot
if (isset($_SESSION['user'])) {
echo 'Formular';
}
3. La "query-ul pt. UPDATE preiei id-ul sau numele (ce e pus in sesiune) si pe baza lui faci update-ul
Cod: Selectaţi tot
// ...
$user = $_SESSION['user'];
$sql = "UPDATE ... WHERE `user`='$user'";
Cam asta e ideea.
o problema cu update
Scris: Lun Iul 12, 2010
de trif
am incercat dar nu merge cred ca asta este problema, eu cand ma loghez am la fiecare pag asta
si auth.php contine
Cod: Selectaţi tot
<?php
//Start session
session_start();
//Check whether the session variable SESS_MEMBER_ID is present or not
if(!isset($_SESSION['SESS_ID']) || (trim($_SESSION['SESS_ID']) == '')) {
header("location: access-denied.php");
exit();
}
?>
si daca nu indeplineste asta nu ma lasa sa intru. si in rest nu am nimic de verificat ci numai asta. nu este ca si scriptul pe care l-ai facut u. problema este aici cum fac ca sa verific ca utilizatorul este logat si sa imi ia cu
$_GET['id'] si sa actualizeze. uite ce am facut pana acum:
asta este din "pagina_mea.php"
Cod: Selectaţi tot
<?php
$query="SELECT * FROM members";
$result=mysql_query($query);
$num=mysql_num_rows($result);
$i=0;
while ($i < $num) {
$rand=mysql_fetch_array($result);
echo '<a href="profil_actualizat.php?id='.$rand['id'].' "><center>Actualizare</center> </a> ';
++$i;
}
?>
si acesta este din profil_actualizare.php
Cod: Selectaţi tot
<?php
$utilizator=mysql_real_escape_string($_GET['id']);
$id=trim($_POST['id']);
$nume=$_POST['nume'];
$prenume=$_POST['prenume'];
$utilizator=$_POST['utilizator'];
$email=$_POST['email'];
$localitate=$_POST['localitate'];
$religie=$_POST['religie'];
$cerereSQL = 'SELECT * FROM members WHERE id="'.$_GET['id'].'"';
$rezultat = mysql_query($cerereSQL);
$num=mysql_num_rows($rezultat);
if ( $num <> 0 )
{
$rand=mysql_fetch_array($rezultat);
print '<form action="profil_actualizat.php?id='.$rand['id'].'" method="post">';
print 'ID: <input name="id" value="'.$rand['id'].'" type="text" > <br>';
print 'Familie: <input name="nume" type="text" value="'.$rand['nume'].'" > <br>';
print 'Tata: <input name="prenume" type="text" value="'.$rand['prenume'].'" > <br>';
print 'Mama: <input name="utilizator" type="text" value="'.$rand['utilizator'].'" > <br>';
print 'Membrii: <input name="email" type="text" value="'.$rand['email'].'" > <br>';
print 'Baieti: <input name="localitate" type="text" value="'.$rand['localitate'].'" > <br>';
print 'Fete: <input name="religie" type="text" value="'.$rand['religie'].'" > <br>';
print ' <input type="Submit" value="Actualizare date!"> ';
print '</form>';
}
$cerereSQL = "UPDATE `members` SET `id`='".$id."', `nume`='".$nume."', `prenume`='".$prenume."', `utilizator`='".$utilizator."', `email`='".$email."', `localitate`='".$localitate."', `religie`='".$religie."' WHERE `id`='".$id."' LIMIT 1";
mysql_query($cerereSQL) or die("NU se poate adauga!");
$cerereSQL="SELECT * FROM members";
$rezultat=mysql_query($cerereSQL);
$num=mysql_num_rows($rezultat);
$i=0;
mysql_close();
?>
. faza este ca la
pagina_mea.php imi face array si nu imi trebuie asta. nu stiu ce sa ii fac. cu stima trif
o problema cu update
Scris: Lun Iul 12, 2010
de MarPlo
Din ce am inteles, daca utilizatorul e autentificat, o sa existe o sesiune "$_SESSION['SESS_ID']"
Atunci, la query ar merge asa:
Cod: Selectaţi tot
$id_user = $_SESSION['SESS_ID'];
$query="SELECT `id` FROM `members` WHERE `id`='$id_user'";
// Restul codului ...
P.S. In MySQL se foloseste des WHERE pt. a specifica randu[rile],
o problema cu update
Scris: Lun Iul 12, 2010
de trif
cum am zis merge dar este ceva ce nu imi place, in primul rand asta este codul de actualizare
Cod: Selectaţi tot
<?php
$utilizator=mysql_real_escape_string($_GET['id']);
$id=trim($_POST['id']);
$nume=$_POST['nume'];
$prenume=$_POST['prenume'];
$utilizator=$_POST['utilizator'];
$email=$_POST['email'];
$localitate=$_POST['localitate'];
$religie=$_POST['religie'];
$cerereSQL = 'SELECT * FROM members WHERE id="'.$_GET['id'].'"';
$rezultat = mysql_query($cerereSQL);
$num=mysql_num_rows($rezultat);
if ( $num <> 0 )
{
$rand=mysql_fetch_array($rezultat);
print '<form action="profil_actualizat.php?id='.$rand['id'].'" method="post">';
print 'ID: <input name="id" value="'.$rand['id'].'" type="text" > <br>';
print 'Nume: <input name="nume" type="text" value="'.$rand['nume'].'" > <br>';
print 'Prenume: <input name="prenume" type="text" value="'.$rand['prenume'].'" > <br>';
print 'Utilizator: <input name="utilizator" type="text" value="'.$rand['utilizator'].'" > <br>';
print 'E-mail: <input name="email" type="text" value="'.$rand['email'].'" > <br>';
print 'Localitate: <input name="localitate" type="text" value="'.$rand['localitate'].'" > <br>';
print 'Religie: <input name="religie" type="text" value="'.$rand['religie'].'" > <br><br>';
print ' <input type="Submit" value="Actualizare date!"> ';
print '</form>';
}
$cerereSQL = "UPDATE `members` SET `id`='".$id."', `nume`='".$nume."', `prenume`='".$prenume."', `utilizator`='".$utilizator."', `email`='".$email."', `localitate`='".$localitate."', `religie`='".$religie."' WHERE `id`='".$id."' LIMIT 1";
mysql_query($cerereSQL) or die("NU se poate adauga!");
print "Datele au fost actualizate!";
?>
si acum problema este ca dupa ce dau actualizare trebuie sa dau F5 sau reload ca sa imi arate modificare si eu vreau ca dupa ce ii dau "actualizare date!" ori sa imi zica un mesaj in care sa imi zica sau sa mi le schimbe atunci direct la urmatoarea afisare. am pus de exemplu
Cod: Selectaţi tot
$cerereSQL = "UPDATE `members` SET `id`='".$id."', `nume`='".$nume."', `prenume`='".$prenume."', `utilizator`='".$utilizator."', `email`='".$email."', `localitate`='".$localitate."', `religie`='".$religie."' WHERE `id`='".$id."' LIMIT 1";
mysql_query($cerereSQL) or die("NU se poate adauga!");
print "Datele au fost actualizate!";
?>
dar imi apare tot timpul nu atunci dupa ce ii dau actualizare. cu stima trif