Brisanje vrednosti iz baze pomocu PHP-a i JavaScripta

2

Brisanje vrednosti iz baze pomocu PHP-a i JavaScripta

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4576

Napišeš select upit za sve stavke sa tim ID-em i koristiš mysqli_fetch_row().

SELECT * FROM Projekat WHERE id=<id>

if ($result = mysqli_query($conn, $query)) {     if ($row = mysqli_fetch_row($result)) {         // postoji     } else {         // ne postoji     }     mysqli_free_result($result); } mysqli_close($conn);



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 02 Jan 2008
  • Poruke: 2167

Sada radi, to je to Smile Hvala vam jos jednom

Da li je ovo u redu sto se tice sigurnosti (SQL Injection)?

Usput, izbacio sam mysqli_close($conn); posto mi javlja "PHP Warning: mysqli::close(): Couldn't fetch mysqli in ..." a ostavio sam $conn->close();, posto je ista konekcija u pitanju, i pretpostavljam da warning dobijem jer hocu dva puta da je zatvorim?

<?php header('Content-Type: text/html; charset=utf-8'); $servername = "localhost"; $username = "projekat"; $password = "..."; $dbname = "..."; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) {     die("Connection failed: " . $conn->connect_error); } $tabela = $_GET['delete_id']; $query_provera = "SELECT * FROM projekat.Predmeti WHERE SifraPredmeta='$tabela'"; if (isset($tabela) && !empty($tabela)) //$sql = "DELETE FROM projekat.Predmeti WHERE SifraPredmeta='$tabela'"; if ($result = mysqli_query($conn, $query_provera)) {       if ($row = mysqli_fetch_row($result)) {         // postoji         $stmt = $conn->prepare("DELETE FROM projekat.Predmeti WHERE SifraPredmeta = ?"); $stmt->bind_param('s', $tabela); $stmt->execute(); echo '<script type="text/javascript">            alert("Predmet sa šifrom '.$tabela.' uspešno obrisan!");            window.location = ".../predmeti.php"       </script>'; $stmt->close();     } else {         // ne postoji         echo '<script type="text/javascript">            alert("GREŠKA! Predmet '.$tabela.' ne postoji u bazi. Pokušajte opet...");            window.location = ".../predmeti.php"       </script>';     }       mysqli_free_result($result); }   //mysqli_close($conn); $conn->close(); ?>



offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4576

Naravno da ti ne treba mysqli_close ako si već zatvorio konekciju, to sam samo naveo u primeru Wink

Što se tiče SQL Injection-a, baci pogled na ovaj članak. Bolje je da sada proveriš to i eventualno izgubiš neke redove, ali da budeš siguran da si obezbedio bazu.

I još nešto - onaj primer iznad što sam ti napisao je pisan u proceduralnom stilu, no sada vidim da si pisao u objektno-orijentisanom stilu tako da bi bilo bolje i da se držiš tog načina pisanja kroz ceo projekat:

if ($result = $mysqli->query($query)) {     if ($row = $result->fetch_row()) {         // postoji     } else {         // ne postoji     }         $result->close(); }

Inače $result->close() ne zatvara konekciju sa bazom već oslobađa set rezultata (da ne misliš da je višak pa da ga obrišeš).

offline
  • Pridružio: 02 Jan 2008
  • Poruke: 2167

Ispravljeno Smile

Da, video sam to sto se tice rezultata, posto sam koliko-toliko procitao dokumentaciju za metode koji si mi napisao u prethodnom postu.

$result = $conn->query($query_provera); if (isset($tabela) && !empty($tabela)) if ($result) {     if ($row = $result->fetch_row()) {         // postoji         $stmt = $conn->prepare("DELETE FROM projekat.Predmeti WHERE SifraPredmeta = ?");         $stmt->bind_param('s', $tabela);         $stmt->execute();         echo '<script type="text/javascript">            alert("Predmet sa šifrom '.$tabela.' uspešno obrisan!");            window.location = ".../predmeti.php"       </script>'; $stmt->close();     } else {         // ne postoji         echo '<script type="text/javascript">            alert("GREŠKA! Predmet '.$tabela.' ne postoji u bazi. Pokušajte opet...");            window.location = ".../predmeti.php"       </script>';     }       $result->close(); }

Hvala na ovom clanku. Bitno mi je da sam ovo zavrsio, a primere za SQL Injection cu svakako proveriti.

Ko je trenutno na forumu
 

Ukupno su 1484 korisnika na forumu :: 190 registrovanih, 11 sakrivenih i 1283 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 15694 - dana 01 Feb 2026 12:23

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Agape, ajo baba, Aleksandar1991, aleph_one, amonsrb, ArmFPGA, Asparagus, Automaticar, Avalon015, Banovo Brdo, Bgorando, bigfoot, blue, Bobrock1, bojank, Boris BM, boro975, Boroš, Bradonja89, BraneS, ccoogg123, cemix, Chainsaw, chichabg, CikaKURE, Colt D, crnirocko, d.arsenal321, dacanaldo, dekifcrs, Dimitrije Paunovic, Diplomac, djboj, Djevrek od kartona, Djokislav, DjomlaHomer, djonsule, dnevnasoba, DonRumataEstorski, DovlaODR, Dr Lobotom, Dragon Order, DrMrPr, dule10savic, dusanobr, dushan, Ercomero, EXIT78, flash12, Fulcrum-A, g_g, gaga23, gasazem, ghoost, Gogi_avio, Goran_, gorantrojka, goxin, Goxy1, Grochow, Heavy Jerk, Hemi, hrkaz, ILGromovnik, IQ116, istina, Jakonjveliki, jalos, Jester, JK, Joint Chief, JOntra, Jose, kalens021, kaput21, Karla, kenny74, Kiki98TZ, Koca Popovic, Kontrausluga, Kubovac, kunktator, kuntakinte, Kuroje, kybonacci, Levi, Lobo, luka35, M74AB3, Magarac, Magistar78, maiden6657, mane123, Manjane, MaschinenPistole, mat, mercedesamg, MGBRBG, Mig 29, mige84, Might is Right, mikki jons, Mile14, milenko crazy north, milos.cbr, milos1231, Milun24, miodrag, MKK7, Mldo, Moldovan, moldway, molusan, mrm, mrzimregistraciju, Naj-Turs, Nebojsa81, nefs, Nemanja.M, NklJov123, Nmr, Nobunaga, nuke92, obsc, Orijen, Orlova, Otto Grunf, Papadubi, pavle_pzs, pein, Petar25, PlayerOne, pristinski korpus, promajauglavi, Rebel Frank, rebro1974, redstar72, renvoi, robert90, royst33, sabros, samocitam, sap, Sawages, Sharpshooter, Shinobi, shlauf, Skakac7, skvara, Smiljkovich, Smor, sombrero, Stanislav1970, stevo svinja, Stojan Mrsavi, synergia, tomo2, TRAVUNIJA, Tristan_Bantam, tubular, ulogovan, USSVoyager, v0idmp3, vaso1, Vatreni Zmaj, Velizar Laro, virked, Visionary, vladao75, vobo, Vucko11, vukovi, vuksa72, vzd1389, Wepp, wolverined4, Yugol33, zajcev1, Zastava, Zec, zeka013, ziggga, zlaya011, zoran-ruma, Zukov, zule2, ZZZ, šumar bk2, 1453