Jestem początkujący zacząłem naukę programowania PHP około 3 tygodnie temu,Nie udzielałem się jeszcze na żadnym forum więc proszę mi wybaczyć jak coś głupiego napiszę, ok to teraz do tematu.
Mianowicie stworzyłem dopiero stronę gdzie można się rejestrować dodać swój awatar podglądać osoby zarejestrowane chodzić po ich profilach przeglądać dane i awatar, można tworzyć swoją galerię podpisać ją i dodawać do wybranej galerii zdjęcia. No i najwyższy czas przyszedł na usuwanie zdjęć i galerii.
Moja galeria wygląda mniej więcej tak:
2 bazy danych:
-galeria
-albums
w BD galeria są zawarte dane odnośnie do zdjęć id zdjęcia, "userid = id użytkownika który wrzucił zdjęcie", opis, tytuł, odnośnik do zdjęcia" id + rozszerzenie" i "album = nazwie albumu z bazy danych".
BD - albums zawiera id albumu, id użytkownika, nazwa.
Użytkownik pobiera swój album (galerię) z BD albums.
Wypisywane są przez pętle for
i do każdego albumu z BD galeria pobierane są "zdjęcia" gdzie album ma nazwę taką jak nazwa z BD albums.
te zdjęcia są również w pętli for
tak mniej więcej wygląda moja galeria.
Nie wklejałem kodu bo tam to dopiero jest ciężko skapować.
I tu kieruje moje pierwsze pytanie czy takie rozwiązanie ma w ogóle prawo bytu ?
jak już mówiłem jestem początkujący używam tylko podstawowych opcji PHP i SQL więc na razie na bardziej skomplikowane rozwiązanie mnie raczej nie stać .
a II pytanie to takie jak w temacie czyli usuwanie zdjęć za pomocą checkboxów a następnie kliknięcie na ikonę kosza.
jeszcze tego nie zrobiłem ale zamierzam zastosować takie rozwiązanie:
przy każdym zdjęciu dzięki pętli już istniejącej wyświetlę checkboxa gdzie name="id zdjęcia";
po przez wciśnięcie na ikonę delete czy tam kosz zostanie przesłany formularz do np. photodeleter.php
w photodeleter.php
będzie odebranie formularza metodą post, ale teraz jest problem i kolejne pytanie III nie mam pojęcia czy jest opcja odebrania wszystkich danych z formularza, spotkałem się tylko z takim czymś np. $POST_['password'];
i jeżeli będę chciał usunąć jednocześnie 20 zdjęć a do tego nie będę znał ich nazwy.
moje pytanie brzmi czy jest opcja pozwalająca na odbiór całego formularza a nie poszczególnych danych.
Ale mam wyjście awaryjne zrobiłbym to tak.
wczytał bym najpierw wszystkie zdjęcia z bazy danych użytkownika.
następnie zrobił bym pętle $POST_['id zdjęć'];
i następnie zrobił bym switcha lub if gdzie sprawdza warunek $POST_['id'] == 1 lub false

jeśli tak to usuwa zdjęcie i informacje z bazy danych o zdjęciu jeżeli $POST == 0;
to nic się nie dzieje.
Oczywiście ten ostatni warunek jest napisany w skrócie bo musiał bym dopiero to zrobić i pokombinować
Chodzi mi o samą idee.
1 = checkbox zafajkowany
0 = checkbox odfajkowany
Aha IV pytanie czy takie rozwiązanie ma prawo bytu.
Z góry dzięki i proszę o wyrozumiałość, jestem początkujący.
Temat można zamknąć zrobiłem.
tak jak napisałem wcześniej zrobiłem to na podobnej zasadzie. Użyłem formularza stworzonego z checkboxów:
print '<form action="delete.php" method="post">';
for (Galeria) { // od 0; do ilości galerii z BD; ++
//wyświetlenie nazwy galerii
for (Zdjęcia) { // od 0; do ilosci zdjęć z BD gdzie album == nazwie galerii; ++
if($row3["cover"] == true){ // sprawdzanie czy zdjęcie z albumu istnieje bez tego liczba checkboxów wynosiła liczbie wszystkich zdjęć * liczbie galerii a zależało mi na tym by 1 checkbox był koło 1 zdjęcia
//wyświetlenie zdjęcia
print '<input type="checkbox" name="tags[]" value="'.$row3['cover'].'" >'; // $row['cover'] to nazwa zdjęcia z folderu
}
}
}
print '<input type="submit" name="Submit" value="Submit">
</form>';
delete.php
<?php
session_start();
?>
<?php
if(isset($_POST['Submit']))
include_once ("db_fns.php");
db_connect();
$id = $_SESSION['id'];
$_POST['tags'];
foreach($_POST['tags'] as $db_user){
$db_user;
print $db_user;
$usuwanie = './images/'.$id.'/'.$db_user; // usuniecie zdjęcia z pliku
unlink($usuwanie);
addslashes($zapytanie = "DELETE FROM `albums` WHERE `cover`='$db_user'"); // usunięcie zdjęcia z BD
$idzapytania = mysql_query($zapytanie);
}
?>
Co wy o tym myślicie ?