Informazione ID foto

  • Creatore Discussione Creatore Discussione maxxjo
  • Data di inizio Data di inizio

maxxjo

Utente Attivo
27 Apr 2013
56
0
0
Ciao!
ho creato un form per l'upload immagini con una galleria in php per la visualizzazione, fino a qui tutto ok.
Nel visualizzare le foto prelevate i dal database uso <img src="galleria/mostra.php?id=id1"> così recuper la foto.

Adesso volevo chiedere come posso fare partire dall'inizio del ID dopo aver cancellato una foto dal database? perché quando cancello una foto dal database e ne inserisco un'altra chiaramente con auto_increment mi fa ripartire dall'ultimo record inserito e così facendo non vedo più le precedenti foto..
 
cioè credo che sbagli concettualmente qualcosa perche se il tuo codice per funzionare ha bisogno di andare a modificare gli id all'interno del db quando cancelli ce qualcosa da modificare a monte.
poi senza che posti un po di codice nessuno puo aiutarti piu di cosi
 
ecco!!

ecco il codice php del upload dell'immagini che mando al database.

<?php
// se è stato inviato il file...
if(isset($_POST['invia']))
{
// se ci sono stati problemi nell'upload del file
if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)
mostra_form("errore nell'invio del file. Riprova");

// connessione e selezione del database
mysql_connect('localhost', 'root', 'root')
or die('Connessione non riuscita: ' . mysql_error());

if(!mysql_select_db('gallery'))
die('Selezione database fallita!');

// recupero alcune informazioni sul file inviato
$nome_file_temporaneo = $_FILES['file_inviato']['tmp_name'];
$nome_file_vero = $_FILES['file_inviato']['name'];
$tipo_file = $_FILES['file_inviato']['type'];

// leggo il contenuto del file
$dati_file = file_get_contents($nome_file_temporaneo);

// preparo il contenuto del file per la query
$dati_file = addslashes($dati_file);

// query per inserire il file nel DB
$query = "INSERT INTO tabella_files SET
nome_file = '$nome_file_vero',
tipo_file = '$tipo_file',
dati_file = '$dati_file'";

mysql_query($query)
OR die('Query non valida: ' . mysql_error());

// mostro nuovamente il form ed un messaggio di successo
mostra_form("Memorizzazione del file <b>$nome_file_vero</b> nel database eseguita correttamente.");
}
else
{
mostra_form();
}

/**
* Mostra il form per l'upload del file
*
*/
function mostra_form($messaggio = '')
{
?><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Carica file nel database</title>
</head>



<p><?php echo $messaggio?> <br /> Seleziona un file da memorizzare nel database: <p></p>
<form name="form1" enctype="multipart/form-data" method="post" action="">
<p>
<input type="file" name="file_inviato">
<p></p>
<p>
<input type="submit" name="invia" value="Invia file">
<p></p>
</form>


<?php
exit();
}
?>

poi ho creato una pagina che richiama l'immagine del database tramite id così <img src="galleria/mostra.php?id=1">

poi ho creato una pagina dove cancello l'immagine che decido io dal database, la mia domanda e questa:

dato che vorrei creare una pagina php tipo gallery con circa 30 foto, come posso richiamare le immagini dal database senza dover inserire il numero del ID? perché ho visto che se cancello una immagine dal database tipo ID1 quando vado a upload una nuova immagine non viene inserita sul ID 1 ma bensì' sull'ultimo ID del database avendo chiaramente auto_increment, così facendo non mi vede più l'immagine del ID1.
 
consiglio: usa i bbcodes in alto a destra per racchiudere le parti di codice

PHP:
<img src="galleria/mostra.php?id=1">
questo codice lo crei dinamicamente?

perche per evitare il problema ti basterebbe fare cosi

PHP:
$query = "SELECT * FROM tabella_files LIMIT 0,30";
$img= mysql_query($query);

while ($row=mysql_fetch_array($img)) {
echo '<img src="CARTELLA IMMAGINI/'. $row['nome_file'] .'">';
}

dove CARTELLA IMMAGINI ovviamente è il percorso dove salvi le tue immagini
 

Discussioni simili