Autor Zpráva
dan55
Profil *
Dobrý den, mám asi 100 řádků v mysql a na stránce také 100 řádků výsledků z db.
U každého záznamu je checkbox na mazání řádku. Chci aby když někdo vybere třeba 20
checkboxů (s name delete[] a value cestou fotky (img/44575.jpg) aby smazalo
se 20 řádků z mysql. To už mám. Jenže místo toho chci, aby se provedl for
cyklus a mazalo se to "po jednom" a zároveň se smazala i příslušná fotka (např.
unlink("img/46948.jpg"); ). Vlastně vybere se 14 checkboxů a cyklus se
provede 14x. Jenže jak to udělat??? Pomůžete mi?
firgas
Profil *
moze byt nieco taketo:
<?php
if (isset($_POST["zmazat"])&&count($_POST["stranky"])!=0) {
  foreach ($_POST["stranky"] as $id) {
    $result=$mysqli->query("select obrazok from pm_novinky where id='".$id."'");
    $obrazok=$result->fetch_object();
    @unlink($upload_dir."/".$obrazok->obrazok);
    $result=$mysqli->query("select * from pm_novinky_galeria where novinka=$id");
    while ($fotka=$result->fetch_object()) {
      @unlink("$upload_dir/$fotka->subor");
    }
    $mysqli->query("delete from pm_novinky where id='".$id."'");
  }
}
?>

je to kus mojho scriptu,
namiesto toho delete[] su tam stranky[] a ich hodnota nieje nazov suboru ale id fotky v databaze
firgas
Profil *
alebo prepisane do tvojho modelu

<?php
if (count($_POST["delete"])>0) {
  foreach ($_POST["delete"] as $file) {
    $mysqli->query("delete from fotky where subor='".$file."'");
    @unlink($upload_dir."/".$file);
  }
}
?>
dan55
Profil *
[#2] Promiň ale toto jsem nepochopil.
firgas
Profil *
$_POST["delete"] = pole s nazvami suborov ktore zaceknes vo formulary
<?php
if (count($_POST["delete"])>0) { //ceknes ci uzivatel zacekol nejake fotky
  foreach ($_POST["delete"] as $file) { //ciklus ktory postupne berie jednotlive prvky pola ako premennu $file
    $mysqli->query("delete from fotky where subor='".$file."'"); //vymazes fotku z databazy (neviem aku strukturu ma tvoja tabulka)
    @unlink($upload_dir."/".$file); //vymazes samotny subor
  }
}
?>
dan55
Profil *
[#3] Moc děkuji už to jide
Udělal jsem to tak:
if (count($_POST["delete"])>0) {
  foreach ($_POST["delete"] as $file) {
    mysql_query("delete from zamkovky_galerie where cesta='".$file."'");
    unlink("img/".$file."");
  }
}
dan55
Profil *
[#5] ten druhý kód jsem pochopil, ale ten první ne. Ale moc dííky!!
firgas
Profil *
jo a este by som odporucal pouzivat objektovu triedu mysqli namiesto toho mysql_query
je to ovela prehladnejsie a jednoduchsie
http://sk.php.net/manual/en/book.mysqli.php
dan55
Profil *
[#8] Jo podívám se na to čau

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: