[ Mr. Rejn @ 25.05.2004. 19:59 ] @
Da li neko zna zasto ne radi ovaj kod.
Cilj mi je da svakom dugmetu na strani dodelim kod koji ce da se izvrsava klikom na njega,
ali ovo nikako da krene.
Code:

<?
include("dbinfo.inc.php");

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM contacts WHERE id='$id'";
$result=mysql_query($query);
$num=mysql_numrows($result); 
mysql_close();

$i=0;
while ($i < $num) {
$id=mysql_result($result,$i,"id");
$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");
++$i;


if ($submit) {

if ($submit=="promeni")
{
    
    include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);
$query="UPDATE contacts SET first='$ud_first', last='$ud_last', phone='$ud_phone', mobile='$ud_mobile', fax='$ud_fax', email='$ud_email', web='$ud_web' WHERE id='$ud_id'";
@mysql_select_db($database) or die( "Ne mogu da nadjem bazu!");
mysql_query($query);
echo '<b>Zapis promenjen.</b>';
mysql_close();
echo '<a href="add.html">Povratak na stranu za unos podataka...</a>';
break;


if ($submit=="obrisi") 
{

    include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);
$query="DELETE FROM contacts WHERE id='$id'";
@mysql_select_db($database) or die( "Ne mogu da nadjem bazu!");
mysql_query($query);
mysql_close();
echo '<b>Zapis je obrisan!</b>';
echo '<a href="add.html">Povratak na stranu za unos podataka...</a>';
break;
 }
}
?>

<a href="add.html">Povratak na stranu za unos podataka...</a>
<form>
<input type="hidden" name="ud_id" value="<? echo "$id"; ?>">
First Name: <input type="text" name="ud_first" value="<? echo "$first";?>"><br>
Last Name: <input type="text" name="ud_last" value="<? echo "$last";?>"><br>
Phone Number: <input type="text" name="ud_phone" value="<? echo "$phone";?>"><br>
Mobile Number: <input type="text" name="ud_mobile" value="<? echo "$mobile";?>"><br>
Fax Number: <input type="text" name="ud_fax" value="<? echo "$fax";?>"><br>
E-mail Address: <input type="text" name="ud_email" value="<? echo "$email";?>"><br>
Web Address: <input type="text" name="ud_web" value="<? echo "$web";?>"><br>
<input type="submit" name="promeni" value="Promeni podatke...">
</form>

<form>
<input type="submit" name="obrisi" value="Obrisi zapis!">
</form>



[ popeye @ 25.05.2004. 20:03 ] @
Malo si pomesao naziv i vrednost promenljive.
[ noviKorisnik @ 25.05.2004. 20:19 ] @
Prvo - javi da li dobijaš bilo kakve greške ili samo "neće da radi".

Drugo - iz formulara ne dobijaš $submit, dugmad koja pominješ generišu promenljive $promeni i $obrisi (to je taj name atribut inputa) pa stoga to neće da radi baš ni malko.

Treće - ova 2 submita tutni u isti formular inače nema teorije da skripta zna šta treba da se briše.

itd (odnosno - ima toga još, ali dosta za ovu priliku).
[ Mr. Rejn @ 25.05.2004. 21:05 ] @
Pa malko i hoce da radi...radi promena podataka,ali na brisanje reaguje samo izbacivanjem
poruke.
Inace znam koliko je kod odvratno napisan,ali vazno mi je da proradi :o)
[ noviKorisnik @ 25.05.2004. 21:32 ] @
Koja je poruka?
[ Dejan Topalovic @ 25.05.2004. 22:41 ] @
Koristio si pogresan naziv varijable u if().
Stavio si u formularu name="obrisi" i name="promeni", a u if() koristis $submit. Trebas da koristis $_POST['obrisi'] i $_POST['promeni'] ili sa $_GET.
[ Mr. Rejn @ 26.05.2004. 17:39 ] @
Mislio sam na poruku koja je u skriptu ("Zapis je obrisan/dopunjen"),nisam mislio na greske PHP
interpretera.
[ noviKorisnik @ 27.05.2004. 06:53 ] @
Ne znam ja kako se skripta uopšte usuđuje da radi na tako napisan kod.

Normalno je da ne može da se izvrši brijanje ako nije definisan $id reda koji treba da se izbaci.

Nije normalno da dobiješ poruku Zapis je obrisan! zato što nije definisan $submit - kako da prođe provera if ($submit=="obrisi")?

Izražavam osnovanu sumnju da je predstavljeni kod isti onaj koji testiraš.
[ Mr. Rejn @ 27.05.2004. 15:27 ] @
Sumnja ti je osnovana...ovaj kod ne ipisuje poruku,nego posle pritiska
na dugme samo nestane ono sto je pisalo u poljima za unos.

U medjuvremenu,stavio sam:
umesto mysql_connect -> mysql_pconnect
da bih izbacio ponavljanje linija za prikljucenje na bazu
i stavio
Code:

<?
if ($obrisi) {
$ide=$_GET['$id'];
   ...
if ($promeni) {
  }
}
?>


koji odgovaraju imenima dugmadi na fomularu.E,taj kod onda izbacuje
poruku,odnosno onaj deo koji je zaduzen za brisanje zapisa,ali zapis
ostaje neobrisan,znaci upit nije izvrsio svoj posao.Ocigledno zbog toga
sto nema ID zapisa koji treba da obrise i to je problem.
Na pocetku koda posle if ($obrisi) stavio sam ono $ide=$_GET['$id'],
pokusavajuci da dodjem do ID-a zapisa,posto je prednji deo skripte vec
trebao da uzme tu promenljivu iz niza koji je vracen od SQL-a i...nista
se nije desilo:znaci opet ispisuje poruku "Zapis obrisan" bez brisanja.
Zabuna se desila zato sto sam vise puta u medjuvremenu prepravljao kod.
(to je posledica copy/paste programiranja :(
Znaci problem je ID koji deo koda zaduzen za brisanje zapisa ne moze
da nadje.
[ noviKorisnik @ 27.05.2004. 20:13 ] @
Prvo, ne moraš uopšte da koristiš mysql_close jer se konekcija s bazom prekida po izvršenju skripte. Ako to ne koristiš, ne moraš ni više puta da otvaraš konekciju - otvoriš na početku skripte i koristiš bazu po potrebi.

Pri zadanom brisanju uopšte i nemaš $id zato što se to dugme nalazi u zasebnom formularu - to sam ti već pominjao - prebaci i to u isti formular i brisanje će da radi.
[ Dejan Topalovic @ 27.05.2004. 20:50 ] @
Dodaj u <form> tag i method koji koristis za slanje podataka, npr. <form method="POST">. Nakon toga kad kliknes na submit, $id dobijas na nacin:
$id = $_POST['ud_id'], posto si to hidden polje nazvao 'ud_id', a saljes ga POST metodom.
Pazi ubuduce na nazive varijabli u formularu i kako ih dodjeljujes u skripti. Imena varijabli su case-sensitive.
[ Mr. Rejn @ 28.05.2004. 14:15 ] @
Radi!
To je $id = $_POST['ud_id']; varijanta i
<form method="POST" action="<? echo "$PHP_SELF" ?>" >,
bez mysql_close() i sa 'name=obrisi' dugmetom medju
<form> tagovima.
Problem je bio u tome sto sam uzimao $id umesto $ud_id

Momci,mucho gracias!