o problema cu update

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
MarPlo
Administratorul site-ului
Mesaje: 4343

o problema cu update

Ca sa nu arate mereu cand dai "actualizare", acel cod trebuie scris intr-o conditie "if()" si pt. a afisa ce a actualizat, trebuie modificsata ordinea in cod, intai Update apoi Select.
Ca formula apropiata de ce ai tu, ar fi asa.

Cod: Selectaţi tot

// Se verifica daca sunt date de la formular
if (isset($_POST['nume']) && isset($_POST['email'])) {
  // Se preiau datele
  $nume=$_POST['nume'];
  $email=$_POST['email'];

  // Se face Update
  $cerereSQL = "UPDATE ...";
}

// Se face Select-ul pt. afisarea lor
$cerereSQL = 'SELECT ...";
- Trebuie doar sa rescrii codul tau dupa modelul de mai sus

trif Mesaje: 500
salut, am codul de update

Cod: Selectaţi tot

<?php
$utilizator=mysql_real_escape_string($_GET['id']);
// Se verifica daca sunt date de la formular
if (isset($_POST['nume']) && isset($_POST['email'])) {
// Se preiau datele
$id=trim($_POST['id']);
$nume=$_POST['nume'];
$prenume=$_POST['prenume'];
$data_nasterii=$_POST['data_nasterii'];
$email=$_POST['email'];
$localitate=$_POST['localitate'];
$religie=$_POST['religie'];
$ocupatie=$_POST['ocupatie'];
$motto=$_POST['motto'];
$verset=$_POST['verset'];
$despre_mine=$_POST['despre_mine'];
// Se face Update
$cerereSQL = "UPDATE `members` SET `nume`='".$nume."', `prenume`='".$prenume."', `data_nasterii`='".$data_nasterii."', `email`='".$email."', `localitate`='".$localitate."', `religie`='".$religie."', `ocupatie`='".$ocupatie."', `motto`='".$motto."',`verset`='".$verset."', `despre_mine`='".$despre_mine."' WHERE `nume`='".$nume."' LIMIT 1";
mysql_query($cerereSQL) or die("NU se poate adauga!");
}
// Se face Select-ul pt. afisarea lor
$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  '<left>';
  print  '<table  border="0">';
  print  '<tr > <th width="110"><div align="left"> Nume: </th> <th> <div align="left"><input name="nume" type="text" value="'.$rand['nume'].'" > </div></th> ';
  print  '<tr> <th width="110"><div align="left"> Prenume: </th> <th><div align="left"> <input name="prenume" type="text" value="'.$rand['prenume'].'" > </div> </th>';
  print  '<tr> <th width="110"><div align="left"> Data nasterii:</th> <th> <div align="left"><input type="text" name="data_nasterii"  id="data_nasterii" value="'.$rand['data_nasterii'].'" >  </div></th>';
  print  '<tr> <th width="110"><div align="left"> E-mail: </th> <th><div align="left"> <input name="email" type="text" value="'.$rand['email'].'" > </div></th>';
  print  '<tr> <th width="110"><div align="left"> Localitate: </th><th><div align="left"><input name="localitate" type="text" value="'.$rand['localitate'].'" >  </div></th>';
  print  '<tr> <th width="110"><div align="left"> Religie: </th> <th><div align="left"><input name="religie" type="text" value="'.$rand['religie'].'" > </div></th>';
  print  '<tr> <th width="110"><div align="left"> Ocupatie: </th> <th><div align="left"><input name="ocupatie" type="text" value="'.$rand['ocupatie'].'" > </div></th>';
  print  '<tr> <th width="110"><div align="left"> Motto: </th> <th><div align="left"><textarea name="motto" cols="40" rows="3" id="motto" >'. $rand['motto'].'</textarea></div></th>';
  print  '<tr> <th width="110"><div align="left"> Versetul preferat: </th> <th><div align="left"><textarea name="verset" cols="40" rows="3" id="verset" >'. $rand['verset'].'</textarea></div></th>';
  print  '<tr> <th width="110"><div align="left"> Despre mine: </th> <th><textarea name="despre_mine" cols="40" rows="3" id="despre_mine" >'. $rand['despre_mine'].'</textarea> </div></th>';
  print  '</tr>';
  print  '</table><br><br>';
  print  '<left>';
  print '<div align="right"><input type="Submit" value="Salvare"> </div>';
  print '</form>'; 
}  
?>
si mai vreau sa ii pun o sectiune tara care este

Cod: Selectaţi tot

<select name="tara" class="selectInput" id="id_tara">
<option value="1"> -----</option>
<option value="2">Afganistan</option>
<option value="3">Albania</option>
<option value="4">Algeria</option>
</select> 
cum le leg ca sa imi dea cum trebuie ca atunci cand alege sa imi puna in bd numele tarii si dupaia sa imi selecteze numele tarii din bd. ca nu stiu. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

trif Mesaje: 500
am reusit sa fac uite cu religia (ca sunt mai putine decat la tara) uite asa

Cod: Selectaţi tot

print  '<tr> <th width="110"><div align="left"> Religie: </th> <th><div align="left"><select name="religie" id="religie" value="'.$rand['religie'].'" >
<option value="Baptista">Baptista</option>
<option value="Catolica">Catolica</option>
<option value="Crestina Adventista de Ziua a Saptea">Crestina Adventista de Ziua a Saptea</option>
<option value="Crestina dupa Evanghelie">Crestina dupa Evanghelie</option>
<option value="Evanghelica Lutherana">Evanghelica Lutherana</option>
<option value="Greco-Catolica">Greco-Catolica</option>
<option value="Martorii lui Iehova">Martorii lui Iehova</option>
<option value="Mozaica">Mozaica</option>
<option value="Musulmana">Musulmana</option>
<option value="Ortodoxa">Ortodoxa</option>
<option value="Penticostala">Penticostala</option>
<option value="Reformata">Reformata</option>
<option value="Unitariana">Unitariana</option>
<option value="Oastea Domnului">Oastea Domnului</option>
<option value="Alta">Alta</option>
</select>  </div></th>';
dar ce nu merge este ca atunci al actualizare imi apare prima din lista nu cea care trebuie si care este in bd. cum fac asta? cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje: 4343
Incearca asa:

Cod: Selectaţi tot

    print  '<tr> <th width="110"><div align="left"> Religie: </th> <th><div align="left"><select name="religie" id="religie">
    <option checked="checked" value="'.$rand['religie'].'">'.$rand['religie'].'</option>
    <option value="Baptista">Baptista</option>
    <option value="Catolica">Catolica</option>
    <option value="Crestina Adventista de Ziua a Saptea">Crestina Adventista de Ziua a Saptea</option>
    <option value="Crestina dupa Evanghelie">Crestina dupa Evanghelie</option>
    <option value="Evanghelica Lutherana">Evanghelica Lutherana</option>
    <option value="Greco-Catolica">Greco-Catolica</option>
    <option value="Martorii lui Iehova">Martorii lui Iehova</option>
    <option value="Mozaica">Mozaica</option>
    <option value="Musulmana">Musulmana</option>
    <option value="Ortodoxa">Ortodoxa</option>
    <option value="Penticostala">Penticostala</option>
    <option value="Reformata">Reformata</option>
    <option value="Unitariana">Unitariana</option>
    <option value="Oastea Domnului">Oastea Domnului</option>
    <option value="Alta">Alta</option>
    </select>  </div></th>';
- Ceea ce apare se adauga intre <option>

trif Mesaje: 500
merge, mersi mult de tot. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

trif Mesaje: 500
salut, am o mica problema am update asta:

Cod: Selectaţi tot

$cerereSQL = "UPDATE `members` SET `nume`='".$nume."', `prenume`='".$prenume."', `data_nasterii`='".$data_nasterii."', `email`='".$email."', `localitate`='".$localitate."', `judet`='".$judet."', `tara`='".$tara."', `religie`='".$religie."', `ocupatie`='".$ocupatie."', `motto`='".$motto."',`verset`='".$verset."', `despre_mine`='".$despre_mine."' WHERE `nume`='".$nume."' LIMIT 1";
mysql_query($cerereSQL) or die("NU se poate adauga!");
si merge pana in momentul cand se inregistreaza 2 pers cu acelasi nume cum pot sa fac ca sa nu mai intampin aceasta prob ci sa fie

Cod: Selectaţi tot

WHERE `id`='".$id."' LIMIT 1";
am facut ceva de genu

Cod: Selectaţi tot

$cerereSQL = "UPDATE `members` SET `id`='".$id."', `nume`='".$nume."', `prenume`='".$prenume."', `data_nasterii`='".$data_nasterii."', `email`='".$email."', `localitate`='".$localitate."', `judet`='".$judet."', `tara`='".$tara."', `religie`='".$religie."', `ocupatie`='".$ocupatie."', `motto`='".$motto."',`verset`='".$verset."', `despre_mine`='".$despre_mine."' WHERE `id`='".$id."' LIMIT 1";
mysql_query($cerereSQL) or die("NU se poate adauga!"); 
dar nu merge si nu imi actualizeaza nimic. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje: 4343
Incearca sa scoti din SET `id`='".$id."',, daca nu merge, asta nu stiu, la mysql ma pricep putin. Normal, ar trebui ca la inregistrare sa nu permita inca o data inregistrarea cu un acelasi nume deja inregistrat.

Subiecte similare