Probleme la UPDATE

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

vlivius1
Senior Member
Mesaje: 399
Membru din: Dum Aug 12, 2007 3:50 pm
Localitate: Bucuresti
Contact:

Probleme la UPDATE

Mesajde vlivius1 » Lun Aug 13, 2007 8:56 am

Am o problema careia nu pot sa-i dau de cap de 3 zile, nu stiu cum sa-i mai dau de cap.

Am un tabel in care mi se afiseaza datele dupa apasarea butonului "modifica" am reusit sa-l fac sa-mi afiseze datele respectivului id.

Datele din acel tabel le iau cu "POST", dar nu reusesc sa iau datele din baza de date ca sa le modific.

Acesta este scriptul care l-am facut si ma schinuie:


<?
include("connect.php");

$id = $_GET['id'];


$c="SELECT * FROM agendatelefonica WHERE id = '$id' ";
$r = mysql_query($c) or die("EROARE SQL:".mysql_error());
while($rand = mysql_fetch_array($r))


$n = $_POST['nume'];
$p = $_POST['prenume'];
$a = $_POST['adresa'];
$t = $_POST['telefon'];

$num = $rand['nume'];
$pre = $rand['prenume'];
$adr = $rand['adresa'];
$tel = $rand['telefon'];



$cerere = "UPDATE `agendatelefonica` SET nume='$n', prenume='$p', adresa='$a', telefon= '$t' WHERE nume='$num', prenume= '$pre', adresa= '$adr', telefon= '$tel'";
mysql_query($cerere);


echo ''.$cerere.'';


?>



crivion
Senior Member
Mesaje: 781
Membru din: Mar Apr 10, 2007 4:20 pm
Localitate: Somewhere

Mesajde crivion » Lun Aug 13, 2007 9:36 am

puna acolada { dupa while si la sfarsitul scriptului }

fakker
PHPRomania Supporter
Mesaje: 21
Membru din: Mie Iul 25, 2007 5:01 pm
Contact:

Mesajde fakker » Lun Aug 13, 2007 9:54 am

Cam asa: :)

<?
include("connect.php");

$id = $_GET['id'];


$c="SELECT * FROM agendatelefonica WHERE id = '$id' ";
$r = mysql_query($c) or die("EROARE SQL:".mysql_error());
while($rand = mysql_fetch_array($r))

{

$n = $_POST['nume'];
$p = $_POST['prenume'];
$a = $_POST['adresa'];
$t = $_POST['telefon'];

$num = $rand['nume'];
$pre = $rand['prenume'];
$adr = $rand['adresa'];
$tel = $rand['telefon'];



$cerere = "UPDATE `agendatelefonica` SET nume='$n', prenume='$p', adresa='$a', telefon= '$t' WHERE nume='$num', prenume= '$pre', adresa= '$adr', telefon= '$tel'";
mysql_query($cerere);


echo ''.$cerere.'';

}

?>

vlivius1
Senior Member
Mesaje: 399
Membru din: Dum Aug 12, 2007 3:50 pm
Localitate: Bucuresti
Contact:

Mesajde vlivius1 » Lun Aug 13, 2007 10:14 am

Cu {} am incercat si eu dar tot nu vrea, :(

fakker
PHPRomania Supporter
Mesaje: 21
Membru din: Mie Iul 25, 2007 5:01 pm
Contact:

Mesajde fakker » Lun Aug 13, 2007 10:23 am

vlivius1 scrie:Cu {} am incercat si eu dar tot nu vrea, :(


Dar de ce iei datele cu POST si id-ul cu GET?
Si echo ''.$cerere.''; afiseaza ceva?

crivion
Senior Member
Mesaje: 781
Membru din: Mar Apr 10, 2007 4:20 pm
Localitate: Somewhere

Mesajde crivion » Lun Aug 13, 2007 10:38 am

scoate toate porcariile de where si lasa simplu :

where id = '".$rand['id']."'

vlivius1
Senior Member
Mesaje: 399
Membru din: Dum Aug 12, 2007 3:50 pm
Localitate: Bucuresti
Contact:

Mesajde vlivius1 » Lun Aug 13, 2007 10:54 am

fakker scrie:
vlivius1 scrie:Cu {} am incercat si eu dar tot nu vrea, :(


Dar de ce iei datele cu POST si id-ul cu GET?
Si echo ''.$cerere.''; afiseaza ceva?


Asta afiseaza ".$cerere." :



UPDATE `agendatelefonica` SET nume='', prenume='Daniel', adresa='Bucuresti', telefon= '2248536' WHERE nume='', prenume= '', adresa= '', telefon= ''

vlivius1
Senior Member
Mesaje: 399
Membru din: Dum Aug 12, 2007 3:50 pm
Localitate: Bucuresti
Contact:

Mesajde vlivius1 » Lun Aug 13, 2007 12:50 pm

crivion scrie:scoate toate porcariile de where si lasa simplu :

where id = '".$rand['id']."'



Am incercat cum ai spus tu dar tot nu vrea.

Nu stiu ce sa-i mai fac, daca m-am impotmolit la lucruri minore nu stiu ce-o sa fac mai incolo :(

fakker
PHPRomania Supporter
Mesaje: 21
Membru din: Mie Iul 25, 2007 5:01 pm
Contact:

Mesajde fakker » Lun Aug 13, 2007 12:57 pm

Dar tu sigur ai vreun rand in tabel cu id-ul pe care il cauti? E ceva aiurea acolo. Adica din cate inteleg $num, $pre, $adr si $tel, adica variabile ale caror valori le preiei din baza de date sunt nule.

Si inca o chestie pe care nu o inteleg (desi nu asta e problema): la ce ai nevoie de un while, atata timp cat, cu selectul ala tu oricum selectezi doar un rand din tabel (banuiesc ca id-ul ala e unic pentru fiecare rand de inregistrari, nu?)

vlivius1
Senior Member
Mesaje: 399
Membru din: Dum Aug 12, 2007 3:50 pm
Localitate: Bucuresti
Contact:

Mesajde vlivius1 » Lun Aug 13, 2007 1:25 pm

fakker scrie:Dar tu sigur ai vreun rand in tabel cu id-ul pe care il cauti? E ceva aiurea acolo. Adica din cate inteleg $num, $pre, $adr si $tel, adica variabile ale caror valori le preiei din baza de date sunt nule.

Si inca o chestie pe care nu o inteleg (desi nu asta e problema): la ce ai nevoie de un while, atata timp cat, cu selectul ala tu oricum selectezi doar un rand din tabel (banuiesc ca id-ul ala e unic pentru fiecare rand de inregistrari, nu?)


In tabel am pus asta:


include("connect.php");
$id = $_GET['id'];


$c="SELECT * FROM agendatelefonica WHERE id = '$id' ";
$r = mysql_query($c) or die("EROARE SQL:".mysql_error());
while($rand = mysql_fetch_array($r)) {

echo '
<form name="form1" method="post" action="modificaredate.php">
<table width="354" border="1" align="center">
<tr>
<th colspan="2" scope="col"><div align="center">Modificare date </div></th>
</tr>
<tr>
<td width="107"><div align="center">Nume:</div></td>
<td width="200"><label>
<input name="nume" type="text" value="'.$rand['nume'].'">
</label></td>
</tr>
<tr>
<td><div align="center">Prenume:</div></td>
<td><label>
<input name="prenume" type="text" value="'.$rand['prenume'].'">
</label></td>
</tr>
<tr>
<td><div align="center">Adresa:</div></td>
<td><label>
<input name="adresa" type="text" value="'.$rand['adresa'].'">
</label></td>
</tr>
<tr>
<td><div align="center">Telefon:</div></td>
<td><label>
<input name="telefon" type="text" value="'.$rand['telefon'].'">
</label></td>
</tr>
<tr>
<td><div align="center"></div></td>
<td><label>
<input type="submit" name="Submit" value="Submit">
</label></td>
</tr>
</table>
</form>


';




}
?>


Variabile acestea : $num, $pre, $adr si $tel le iau din tabel. Am facut acel tabel ca sa-mi afiseze intr-un textfield datele care urmeaza a fi modificate. In acel textfield eu modific deja datele existente cu cele noi, iar variabilele $num, $pre, $adr si $tel preia datele din acel tabel.

ID-ul este unic.

Am folosit tot scriptul cu while pentru ca sunt incepatorul incepatorilor (doar de 2 saptamani lucrez cu php)

Asa era scriptul pentru extragerea datelor din baza de date, eu am folosit acel script ca sa extrag cu WHERE numele.

crivion
Senior Member
Mesaje: 781
Membru din: Mar Apr 10, 2007 4:20 pm
Localitate: Somewhere

Mesajde crivion » Lun Aug 13, 2007 2:04 pm

vezi asa

Cod: Selectaţi tot

..................................................................................................
$cerere = "UPDATE `agendatelefonica` SET nume='$n', prenume='$p', adresa='$a', telefon= '$t' WHERE id = '".$rand['id']."'";
$rezultat = mysql_query($cerere);

if($rezultat) {
print "Update ok";
}else{
print mysql_error();
}

si vezi ce eroare iti da

si baga si un error_reporting(E_ALL) la inceputul scriptului pentru orice eventualitate
 

vlivius1
Senior Member
Mesaje: 399
Membru din: Dum Aug 12, 2007 3:50 pm
Localitate: Bucuresti
Contact:

Mesajde vlivius1 » Lun Aug 13, 2007 2:23 pm

crivion scrie:vezi asa

Cod: Selectaţi tot

..................................................................................................
$cerere = "UPDATE `agendatelefonica` SET nume='$n', prenume='$p', adresa='$a', telefon= '$t' WHERE id = '".$rand['id']."'";
$rezultat = mysql_query($cerere);

if($rezultat) {
print "Update ok";
}else{
print mysql_error();
}

si vezi ce eroare iti da

si baga si un error_reporting(E_ALL) la inceputul scriptului pentru orice eventualitate
 





Imi spune ca update-ul este ok

Spune-mi te rog unde trebui sa scriu si cum sa scriu pentru E_ALL

crivion
Senior Member
Mesaje: 781
Membru din: Mar Apr 10, 2007 4:20 pm
Localitate: Somewhere

Mesajde crivion » Lun Aug 13, 2007 5:38 pm

pui exact asa dupa tagul <?php

error_reporting(E_ALL);


pai daca zice ca updateul e ok inseamna ca functioneaza

vlivius1
Senior Member
Mesaje: 399
Membru din: Dum Aug 12, 2007 3:50 pm
Localitate: Bucuresti
Contact:

Mesajde vlivius1 » Mar Aug 14, 2007 8:41 am

Am rezolvat-o baieti, a venit un prieten si si-a aruncat un ochi, asa cum a asups "fakker" mai sus nu aveam in tabel scris ceva care trebuia sa-i dea ID, tipul mi-a scris ceva cu hidden:


<form name="form1" method="post" action="modificaredate.php">
<input type="hidden" name="id" value="'.$rand['id'].'" />
....


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 33 vizitatori