Ciao a tutti,
sto facendo un progetto per un esame. Sto creando un sito/blog in cui chi si registra può caricare immagini, salvate in una galleria, e scrivere dei post.
Ogni utente può cancellare le proprio foto. Per fare questo pensavo di creare una pagina (gestgall.php) che stampa l'elenco delle foto salvate nel db con checkbox per ognuna che, se selezionato, aggiorni il campo del db dallo 0 impostato di default ad 1.
Effettuando il submit si apre poi una pagina (select.php) che seleziona solo le immagini con il check = 1 e le elimina (eliminata.php).
I listati delle pagine sono:
---- gestgall.php:
<?php
if($username == "admin") {
// recupero i dati dal DB
$query = "SELECT * FROM images ORDER BY idimg";
$res = mysql_query($query) or die (mysql_error());
// numero delle immagini presenti nel DB
$n_img = mysql_num_rows($res);
// verifico che il DB ospiti almeno un'immagine
if($n_img >= 1 ){
// ciclo tutti i record recuperati attraverso la nostra query
while ($f=@mysql_fetch_array($res)){
$id = stripslashes($f['idimg']);
$titolo = stripslashes($f['titolo']);
$descrizione = stripslashes($f['descrizione']);
$utente = stripslashes($f['idutente']);
// stampo la cella contenente l'immagine
echo '<form action="select.php" method="post">';
echo '<table>';
echo '<tr>';
echo '<td>';
echo '<input type="checkbox" name="check" value="1">';
echo '</td><td>' . $titolo;
echo '</td><td>' . $descrizione;
echo '</td></tr>';
// quando il numero di righe equivale al valore impostato nella variabile $righe
// procedo a chiudere la linea e ad azzerare il valore di $righe
$sql_count = @mysql_query("SELECT MAX(idimg) AS max FROM images") or die (mysql_error());
$id_max = @mysql_fetch_array($sql_count) or die (mysql_error());
$max = $id_max['max'];
if ($id == $max){
echo '</table>';
echo '
<input type="submit" name="invia" value="Seleziona">';
echo '</form>';
}
}
}
} else {.... (continua con il resto della pagina).
---- select.php
<?php
$check = $_POST['check'];
if($check != 0) {
$selez = mysql_query("UPGRADE images SET check='$check' WHERE titolo = '$titolo'");
// recupero i dati dal DB
$query = 'SELECT * FROM images WHERE check = "0" ORDER BY idimg';
$res = mysql_query($query) or die (mysql_error());
// numero delle immagini presenti nel DB
$n_img = mysql_num_rows($res);
// verifico che il DB ospiti almeno un'immagine
if($n_img >= 1 ){
// ciclo tutti i record recuperati attraverso la nostra query
while ($f=@mysql_fetch_array($res)){
$id = stripslashes($f['idimg']);
$titolo = stripslashes($f['titolo']);
$descrizione = stripslashes($f['descrizione']);
$utente = stripslashes($f['idutente']);
// stampo la cella contenente l'immagine
echo '<table>';
echo '<tr>';
echo '<td>' . $titolo;
echo '</td><td>' . $descrizione;
echo '</td></tr>';
// quando il numero di righe equivale al valore impostato nella variabile $righe
// procedo a chiudere la linea e ad azzerare il valore di $righe
$sql_count = @mysql_query("SELECT MAX(idimg) AS max FROM images") or die (mysql_error());
$id_max = @mysql_fetch_array($sql_count) or die (mysql_error());
$max = $id_max['max'];
if ($id == $max){
echo '</table>';
}
}
}
echo '
';
echo '<form action="eliminata.php">'
echo '<input type=submit value="Elimina">';
echo '</form>'
}
?>
----- eliminata.php
<?php
$del = "DELETE FROM images WHERE check = 1"
if(mysql_query($del)) {
echo "Immagine/e cancellata/e con successo";
} else {
echo "Immagine/e non cancellata/e a causa del seguente errore" . mysql_error();
}
?>
Con questi listati mi si blocca quando clicco il submit per passare alla pagina select.php e non si aggiorna il db.
Qualcuno mi aiuta per risolvere il problema?
Si accettano anche soluzioni alternative per la cancellazione delle immagini.
Grazie mille!!

Rispondi quotando