minulla on tietokanta joka sisältää nimilistan,nimien vieressä on checkbox, haluaisin että kun klikkaa checkboxin ja sen jälkeen sanaa "poista", tieto poistuu kannasta. Mitä ihmettä siihen checkboxin valuehen tulee...jotenkin ymmärrän että jos on painettu poista, delete from kanta...tiedot,mut miten se siis se tehdään että jos checkboxi checkattu,ja poista-nappia painettu,poista tiedot...mul on mysql-koodi valmiina ja osaan tehdä sen poista-nappulan koodin..mut en osaa laittaa tätä ehtoa "jos checkboxi checkattu" koodin sekaan...ID olisi varmaan se yhteinen tekijä...mutta en vaan osaa...
osaisko joku auttaa tässä asiassa...?
osaisko joku auttaa tässä asiassa...?
Vastaukset 3
Vanhimmat
laita checkboksin valueksi aina sen nimen pääavain.
En nyt tiedä miten sulla on se kanta tehtynä, mutta kuvitellaan että sulla osi taulun nimenä vaikka Henkilo ja siinä olisi kenttiä nimi, hetu, osoite ,puhnumero jne.
Hetu olisi hyvä pääavain taulun riville, mutta sulla se taitaa olla jokin juokseva ID?
Formissa pitää olla checkboksit niin, että niiden id on kaikilla sama taulukko:
Pena
Rauno
Tane
Jorma
Sitten poista.php:ssä otat ne talteen ja suoritat deleten loopissa.
$id = $_POST['ID'];
for(int i =0;id[i] != null;i )
{
mysql_query("DELETE FROM Henkilo WHERE ID=$id[i]");
}
for(int i = 0; $id[i] != null; i )
Kannattaa huomioida, että tuo on sitten todella turvaton vaihtoehto, mitähän tapahtuu jos scriptille annetaankin post metodilla seuraaava id arvo: 1 or ID > 0. Tällöin suoritetaan kantaan DELETE FROM Henkilo WHERE ID=1 or ID > 0. Siis poista joiden ID on yksi tai suurenpa kuin nolla ;) Kun kerran tarvitaan numereelista tietoa, niin silloin myös tutkitaan onko sisältö sitä.
Tietenkin tuo scripti laitetaan salasanan taakse, mutta silti ei todellakaan kannata tehdä turvatonta koodia, jos pahantavan oppii sitä käyttää myöhemminkin.
Toisekseen tuo ei toimine, vaan antaa parse-erroria, johtuen puuttuvista $ merkeistä sekä int.
Kolmannekseen miksi tietokantaan loopissa käskyjä? Järkevämpi tapa on poistaa kerralla halutut.
Valmista parempaa koodia en anna, vaan idea tuosta Pirun esimerkistä selvisi, mutta kannattaa tutustua http://fi.php.net/manual/fi/control-structures.foreach.php sekä esim http://fi.php.net/manual/fi/function.is-numeric.php