Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zasto mi se baza ne azurira ?

[es] :: PHP :: Zasto mi se baza ne azurira ?

[ Pregleda: 3042 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gagoo
Kraljevo

Član broj: 26860
Poruke: 40
*.ptt.yu



Profil

icon Zasto mi se baza ne azurira ?19.05.2004. u 23:55 - pre 242 meseci
Pocetnik sam, pa mi treba pomoc u startu. Naime, napravio sam bazu-Telefonski imenik i napisao PHP script koji treba da vrsi search, delete, new i azuriranje podataka. Ali radi ispravno samo search i to delimicno jer, ako vec ima na primer ime Pera Vasic, pa dodam (ali direktno u bazi) Pera Djuric, opet mi vraca na Peru Vasica. Da li je greska u kodu (kod sam preuzeo sa Net-a), ili je greska u nekom podesavanju. Inace koristim MySQL-Front 3.
 
Odgovor na temu

NetworkAdmin

Član broj: 4445
Poruke: 609
*.bbone.utic.net.ba.



Profil

icon Re: Zasto mi se baza ne azurira ?20.05.2004. u 07:56 - pre 242 meseci
Ne mozes nas pitzati jeli greska u kodu a ne das nam kod ili barem SQL query da vidimo kako si napravio upit.

Ako si uzeo kod sa neta mogao si nam dati link pa da pogledamo valja li uopste to. Ovako me potsjecas na mog profesora Organizacije i ekonomike proizvodnje kod koga je ispit bio nesto u stilu "hajde pogodi sta sad mislim".
 
Odgovor na temu

gagoo
Kraljevo

Član broj: 26860
Poruke: 40
*.ptt.yu



Profil

icon Re: Zasto mi se baza ne azurira ?20.05.2004. u 18:06 - pre 242 meseci
Evo koda:
<html>
<body bgcolor=#FFFF77>
<h1>PHP Phone Book v1.0</h1>
<?
$conn = mysql_connect("localhost","root","password");

mysql_select_db("Imenik",$conn);

switch($opcija) // izaberite komandu
{
case "NEW":
$sql = "INSERT INTO tblimenik (Ime,Prezime,Adresa,Telefon,) VALUES ('$ime','$prezime','$adresa','$telefon',)";



$rs = mysql_query($sql,$conn);

echo "Osoba $ime $prezime je upisana u imenik.";
$ime="";
$prezime="";
$adresa="";
$telefon="";
$id=0;
break;


case "DELETE":
$sql = "DELETE FROM tblimenik WHERE ID=$id";
$rs = mysql_query($sql,$conn);

echo "Osoba $ime $prezime je obrisana iz imenika.";
$ime="";
$prezime="";
$adresa="";
$telefon="";
$id=0;
break;


case "SEARCH":
$sql = "SELECT * FROM tblimenik WHERE Ime='$ime' OR Prezime='$prezime'";

$rs = mysql_query($sql,$conn);
$row = mysql_fetch_array($rs,MYSQL_ASSOC) or die("<a href='imenik.php'>Podatak ne postoji</a>");

$ime =
$row["Ime"];
$prezime =
$row["Prezime"];
$telefon =
$row["Telefon"];
$adresa =
$row["Adresa"];
$id =
$row["ID"];
echo "Osoba $ime $prezime je pronadjena:";
break;


case "UPDATE":
$sql = "UPDATE tblimenik SET ime='$ime',Prezime='$prezime',Telefon='$telefon',Adresa='$adresa' WHERE ID=$id";



$rs = mysql_query($sql,$conn);


echo "Podaci osvojeni.";
break;
}
?>
<form name="webformular"
action="imenik.php"
method="post">
Ime<br>
<input type="text"
name="ime"
value="<? echo $ime ?>"><br>
Prezime<br>
<input type="text"
name="prezime"
value="<? echo $prezime ?>"><br>
Telefon<br>
<input type="text"
name="telefon"
value="<? echo $telefon ?>"><br>
Adresa<br>
<input type="text"
name="adresa"
value="<? echo $adresa ?>"><br>

<input type="hidden"
name="id"
value="<? echo $id ?>"><br>
<input type="submit"
name="opcija" value="New">
<input type="submit"
name="opcija" value="UPDATE">
<input type="submit"
name="opcija" value="DELETE">
<input type="submit"
name="opcija" value="SEARCH">
</form>
</body>
</html>
 
Odgovor na temu

cvele

Član broj: 748
Poruke: 20
195.250.114.*



Profil

icon Re: Zasto mi se baza ne azurira ?21.05.2004. u 13:28 - pre 242 meseci
Neka ti na svaki put prikaze na ekranu vrednost za ID pa ces videti gde masis.
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Zasto mi se baza ne azurira ?21.05.2004. u 13:55 - pre 242 meseci
Imas dosta gresaka u razlici malih i velikih slova u nazivima varijabli. Imena varijabli su case-sensitive, pa nije isto $ID i $id. Pregledaj detaljno source kod i ispravi sve te greske.
Dalje, u INSERT sintaksi izgleda takodje imas gresku:
$sql = "INSERT INTO tblimenik (Ime,Prezime,Adresa,Telefon,) VALUES ('$ime','$prezime','$adresa','$telefon',)";

Obrisi zareze prije zatvaranja zagrade. Dakle, ...Telefon) i '$telefon')

U case izrazu takodje moras paziti na velika i mala slova. Ne mozes u formularu staviti New, a u case izrazu koristiti NEW.
Provjeri takodje kako ti je postavljena opcija register_globals.

Ako ovo prepisujes iz nekog primjera, onda ocito lose prepisujes. Ako preradjujes neki primjer, onda vodi paznju pri malim i velikim slovima pri definisanju imena varijabli.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

gagoo
Kraljevo

Član broj: 26860
Poruke: 40
*.ptt.yu



Profil

icon Re: Zasto mi se baza ne azurira ?21.05.2004. u 22:06 - pre 242 meseci
Sada je sve OK osim sto i dalje imam jedan problem.Naime, imam uneto u bazu Branka Katic (prvo uneto), pa sam posle uneo Branka Uzelac.Na search za Branku Uzelac vraca mi Branka Katic.Isto to vazi i za ista prezimena.Kad su razlicita imena i prezimena onda je sve u redu.Register_globals je postavljeno na ON.Pitanje:sto je stavljeno OR u delu SEARCH.
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Zasto mi se baza ne azurira ?21.05.2004. u 22:28 - pre 242 meseci
U SEARCH query-u imas logicki operator OR koji upucuje na to da bi barem jedna od zadanih vrijednosti morala biti istinita, da upit bude uspjesan i vrati zeljeni rezultat.
Konkretno, ako ti u polje Ime ukucas Branka, onda ce ti on vratiti prvi unos sa tim imenom, bez obzira na Prezime. Tako dobijas Branka Katic.
Tebi treba dinamicki query, kojeg definises na osnovu unesenih podataka. To znaci, ako uneses podatke za pretragu u oba polja Ime i Prezime, onda bi ti query trebao izgledati ovako:
Code:
$sql = "SELECT * FROM tblimenik WHERE Ime='$ime' AND Prezime='$prezime'"; 

Taj query bi ti trebao dati podatke za zeljenu osobu.
U slucaju da je uneseno samo Ime, onda bi ti trebalo ispisati sve osobe sa tim imenom. Isto vazi i za Prezime. Tada ne treba ni OR ni AND, nego samo WHERE Ime='$Ime' ili ako trazis samo po prezimenu, onda WHERE Prezime='$prezime'.

Dakle, malo trebas preraditi tu skriptu, da bi funkcionisala po tvojoj zelji. Nemoj traziti od nekog drugog da ti ju uradi kompletno, nego ti je najbolje da sam pokusas. Tako ces i nauciti nesto usput.

Preporucujem ti da takodje procitas i PHP manual, barem osnovne stvari oko funkcija sa MySQL-om. Ne bi bilo lose i da procitas onaj dio u vezi register_globals.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

[es] :: PHP :: Zasto mi se baza ne azurira ?

[ Pregleda: 3042 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.