devo creare un altra tabella solo con le immagini?
come posso fare
cmq per adesso mi servirebbe solo per max 10 immagini. più in la vedremo come fare quest'altro. voglio imparare prima questo. la prego di aiutarmi su internet gli appunti che ci sono non si capisce niente.solo da lei riesco a capire
In questo caso aggiungi alla tabella altri 9 campi (file2, file3, ecc...).
e modifichi lo script di inserimento nella sola parte dell'upload in modo che venga reiterato per il numero di file inviati.
In realtà le guide presenti su internet al riguardo sono di livello comprensibilissimo. Certamente è più facile e comodo fare copia e incolla di codice già impostato per lo scopo. E stai sicuro che non ti aiuta. E ancora una volta mi confermi che non stai apprendendo.
Ultima modifica di vplaza : 13-05-2015 alle ore 13.20.43
la tabella verra cosi'
scrivo solo i file.
ho scritto solo la parte finaleCodice:file1 varchar(200) NOT NULL DEFAULT 'noimage.jpg, file2 varchar(200) NOT NULL DEFAULT 'noimage.jpg, file3 varchar(200) NOT NULL DEFAULT 'noimage.jpg, file4 varchar(200) NOT NULL DEFAULT 'noimage.jpg, file5 varchar(200) NOT NULL DEFAULT 'noimage.jpg, file6 varchar(200) NOT NULL DEFAULT 'noimage.jpg, file7 varchar(200) NOT NULL DEFAULT 'noimage.jpg, file8 varchar(200) NOT NULL DEFAULT 'noimage.jpg, file9 varchar(200) NOT NULL DEFAULT 'noimage.jpg, file10 varchar(200) NOT NULL DEFAULT 'noimage.jpg PRIMARY KEY(id) );
Ultima modifica di karl94 : 13-05-2015 alle ore 17.12.26 Motivo: Formattazione del codice
si va bene.
Occhio che devi chiudere l'apice su ogni noimage.jpg subito prima della virgola.
si certo. forse ci sono riuscito pero c'e' un problema quando inserisco 1 immagine me ne li inserisce automaticamente 10 tutte uguali e sulla cartella uploads non ci sono le immagini ma un file in codice
Ultima modifica di seprova : 13-05-2015 alle ore 17.37.36
Probabile che hai scritto in tutti i campi lo stesso valore, oppure ne leggi solo uno e lo riporti 10 volte.
codice inserisci.php
Codice PHP:
<?php
$con = @new mysqli("localhost", "sperimento", "", "my_sperimento");
if ($con->connect_errno){
echo "Non riesco a connetermi a MYSQL: " .$con->connect_error;
exit();
}
$titolo = $con->real_escape_string($_POST['titolo']);
$corpo_testo = $con->real_escape_string($_POST['corpo_testo']);
$now = date('Y-m-d H:i:s');
if(!$titolo) {
echo "<p>Non è stato inserito il TITOLO.<br>Non è possibile proseguire.</p>";
echo "<a href=\"datinews.htm\">Indietro</a>";
exit();
}
if(!$corpo_testo) {
echo "<p>Non è stato inserito il CORPO DELL'ARTICOLO.<br>Non è possibile proseguire.</p>";
echo "<a href=\"datinews.htm\">Indietro</a>";
exit();
}
$sql = "INSERT INTO dottore (data, titolo, corpo_testo) VALUES ('{$now}', '{$titolo}', '{$corpo_testo}')";
if ( !$con->query($sql) ){
echo "<p>Non è stato possibile inserire l'articolo a causa di un errore.</p>";
echo "<p>" . $con->error . "</p>";
exit();
}else{
$last_id = $con->insert_id;
}
$target_dir = "uploads/";
for($i = 1; $i<11; $i++){
$target_file = $target_dir . $last_id . "_" . basename( $_FILES['immagine'.$i]['name'] );
$uploadOk = 1;
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
if(file_exists($target_file) ) {
echo "Spiacente, il file esiste già.";
$uploadOk=0;
}
if($_FILES["immagine".$i]["size"] > 1000000) {
echo"Spiacente, il file è troppo grande.";
$uploadOk=0;
}
if ($_FILES["immagine".$i]["size"] >0) {
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif"){
echo "Spiacente,sono permessi solo file JPG, JPEG, PNG E GIF.";
$uploadOk=0;
}
}
}
if ($uploadOk ==0){
$sql="DELETE FROM news WHERE id= " . $last_id;
$con->query($sql);
echo "<p>Il file non è stato caricato</p>";
echo "<a href=\"visualizzo.html\">Indietro</a>";
}else{
for($i = 1; $i<11; $i++){
if ($_FILES["immagine".$i]["size"] >0){
if(move_uploaded_file($_FILES['immagine'.$i]['tmp_name'], $target_file)){
$sql = "UPDATE news SET file".$i."='" .basename($_FILES['immagine'.$i]['name'] ) ."' WHERE id='".$last_id."'";
$con->query($sql);
}
}
}
echo "<p>Articolo inserito correttamente.</p>";
echo "<a href=\"visualizzo.php\">Vedi elenco</a>";
}
$con->close();
?>
pagina visualizza.php
Codice PHP:
<?php
$con = new mysqli("localhost", "sperimento", "", "my_sperimento");
$sql = ( "SELECT * FROM news" );
$risultati = $con->query( $sql );
echo "<h1>Benvenuti </h1>";
while( $row = $risultati->fetch_array( MYSQLI_ASSOC)) {
echo "<center><p>{$row['titolo']}</center></p>";
echo "<p>". nl2br($row['corpo_testo']) . "</p>";
echo "<img src=\"uploads/{$row['id']}_{$row['file1']}\" alt=\"{$row['file1']}\" /><br />";
echo "<img src=\"uploads/{$row['id']}_{$row['file2']}\" alt=\"{$row['file2']}\" /><br />";
echo "<img src=\"uploads/{$row['id']}_{$row['file3']}\" alt=\"{$row['file3']}\" /><br />";
echo "<img src=\"uploads/{$row['id']}_{$row['file4']}\" alt=\"{$row['file4']}\" /><br />";
echo "<img src=\"uploads/{$row['id']}_{$row['file5']}\" alt=\"{$row['file5']}\" /><br />";
echo "<img src=\"uploads/{$row['id']}_{$row['file6']}\" alt=\"{$row['file6']}\" /><br />";
echo "<img src=\"uploads/{$row['id']}_{$row['file7']}\" alt=\"{$row['file7']}\" /><br />";
echo "<img src=\"uploads/{$row['id']}_{$row['file8']}\" alt=\"{$row['file8']}\" /><br />";
echo "<img src=\"uploads/{$row['id']}_{$row['file9']}\" alt=\"{$row['file9']}\" /><br />";
echo "<img src=\"uploads/{$row['id']}_{$row['file10']}\" alt=\"{$row['file10']}\" /><br />";
echo "<hr />";
}
$risultati->free();
$con->close();
?>
Scusa perchè DUE cicli for?
inserisco 1 immagine e me la mette anche per le atre 9 uguale
poi ho visto che nella uploads non ci sono piu' le immagini ma dei file se apro ci sono dei codici.ti faccio vedere(sembra tipo criptato)
‰PNG
IHDR  M§n sRGB ®Îé gAMA ±üa ÿºIDATx^¬ýxdIv߉žD"‘HxÊÛ6UÕÕÞ»q=Ë!‡vDJ¢Dî“ô¾Of ÅOï}»OÚ^iõÞ¾]‘2+iW»+‘")‘œš
ecc...
oltre ai già detti due cicli for, nel form i campi si chiamano inserisciimmagine1,2... e poi richiami immagine1,2,3...
Ultima modifica di seprova : 13-05-2015 alle ore 18.24.00
Intanto togli il secondo for
Codice PHP:
<?php
$con = @new mysqli("localhost", "sperimento", "", "my_sperimento");
if ($con->connect_errno){
echo "Non riesco a connetermi a MYSQL: " .$con->connect_error;
exit();
}
$titolo = $con->real_escape_string($_POST['titolo']);
$corpo_testo = $con->real_escape_string($_POST['corpo_testo']);
$now = date('Y-m-d H:i:s');
if(!$titolo) {
echo "<p>Non è stato inserito il TITOLO.<br>Non è possibile proseguire.</p>";
echo "<a href=\"datinews.htm\">Indietro</a>";
exit();
}
if(!$corpo_testo) {
echo "<p>Non è stato inserito il CORPO DELL'ARTICOLO.<br>Non è possibile proseguire.</p>";
echo "<a href=\"datinews.htm\">Indietro</a>";
exit();
}
$sql = "INSERT INTO dottore (data, titolo, corpo_testo) VALUES ('{$now}', '{$titolo}', '{$corpo_testo}')";
if ( !$con->query($sql) ){
echo "<p>Non è stato possibile inserire l'articolo a causa di un errore.</p>";
echo "<p>" . $con->error . "</p>";
exit();
}else{
$last_id = $con->insert_id;
}
$target_dir = "uploads/";
for($i = 1; $i<11; $i++){
$target_file = $target_dir . $last_id . "_" . basename( $_FILES['immagine'.$i]['name'] );
$uploadOk = 1;
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
if(file_exists($target_file) ) {
echo "Spiacente, il file esiste già.";
$uploadOk=0;
}
if($_FILES["immagine".$i]["size"] > 1000000) {
echo"Spiacente, il file è troppo grande.";
$uploadOk=0;
}
if ($_FILES["immagine".$i]["size"] >0) {
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif"){
echo "Spiacente,sono permessi solo file JPG, JPEG, PNG E GIF.";
$uploadOk=0;
}
}
if ($uploadOk ==0){
$sql="DELETE FROM news WHERE id= " . $last_id;
$con->query($sql);
echo "<p>Il file non è stato caricato</p>";
echo "<a href=\"visualizzo.html\">Indietro</a>";
}else{
if ($_FILES["immagine".$i]["size"] >0){
if(move_uploaded_file($_FILES['immagine'.$i]['tmp_name'], $target_file)){
$sql = "UPDATE news SET file".$i."='" .basename($_FILES['immagine'.$i]['name'] ) ."' WHERE id='".$last_id."'";
$con->query($sql);
}
}
}
echo "<p>Articolo inserito correttamente.</p>";
echo "<a href=\"visualizzo.php\">Vedi elenco</a>";
}
$con->close();
?>
tolto il secondo ciclo for,ma il problema resta sempre uguale
Ultima modifica di seprova : 13-05-2015 alle ore 18.38.18
che errore?
a me risultano 89 righe, che altro c'è nel file?
Ultima modifica di vplaza : 13-05-2015 alle ore 18.34.07
Quei "codici" come li chiami tu non sono altro che ill codice binario delle immagini.
Ma nella cartella di destinazione cosa vedi?
il codice binario per ogni immagine.non vedo l'immagine
esempio se io metto solo 1 foto mi esce cosi
http://seprova.altervista.org/visualizzo.php
dove sta il problema?
Ultima modifica di seprova : 13-05-2015 alle ore 19.32.00
Cominciamo a cercare cosa non va
Prova a sostituire
conCodice PHP:
if(move_uploaded_file($_FILES['immagine'.$i]['tmp_name'], $target_file)){
$sql = "UPDATE news SET file".$i."='" .basename($_FILES['immagine'.$i]['name'] ) ."' WHERE id='".$last_id."'";
$con->query($sql);
}
e vediamo cosa scrive come queryCodice PHP:
if(move_uploaded_file($_FILES['immagine'.$i]['tmp_name'], $target_file)){
$sql = "UPDATE news SET file".$i."='" .basename($_FILES['immagine'.$i]['name'] ) ."' WHERE id='".$last_id."'";
echo $sql;
$con->query($sql);
}
una volta che inserisco la news mi esce questo adesso.
UPDATE dottore SET file1='fwfewfe.png' WHERE id='19'
Articolo inserito correttamente.
Vedi elencoUPDATE dottore SET file2='fwfwfwfwffdf.jpg' WHERE id='19'
Articolo inserito correttamente.
Vedi elencoUPDATE dottore SET file3='untitled.png' WHERE id='19'
Articolo inserito correttamente.
Vedi elenco
Articolo inserito correttamente.
Vedi elenco
Articolo inserito correttamente.
Vedi elenco
Articolo inserito correttamente.
Vedi elenco
Articolo inserito correttamente.
Vedi elenco
Articolo inserito correttamente.
Vedi elenco
Articolo inserito correttamente.
Vedi elenco
Articolo inserito correttamente.
Vedi elenco.
Ho inserito solo 3 immagini
non mi visualizza più le immagini. In cartella upoloand adesso escono nel formato immagine no come prima (codice binario)
*poi un altro problema che se non inserisco o inserisco esempio 3 immagini mi escono sempre questi quadratini di mancata immagine
http://seprova.altervista.org/visualizzo.php
Ultima modifica di seprova : 13-05-2015 alle ore 20.52.43
finalmente ci siamo riuscitiiiii
solo che non mi piace che escono uno sotto l'altro e si vedono i quadratini dove non inserisco l'immagine
sto provando a inserire la funzione file_exists()
ke mi controlla se il file esiste inserisce se non esiste non lo fa visualizzare. ma non va.non mi piace che si vedono tutti quei quadratini nelle immagini che non inserisco.Anche perché da tutto quello spazio
ho aggiunto questo. ma non va.
se il file esiste lo visualizzi se non esiste non lo visualizzi.(esempio se io aggiungo due foto non mi deve far vedere quei quadratini di foto mancanti)Codice PHP:
$filename = "uploads/";
if (file_exists($target_file)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
Ultima modifica di seprova : 14-05-2015 alle ore 07.15.54
qual'è il codice che ti fa visualizzare le foto? lo mostri così vediamo come risolvere....
questa e la parte del codice dedicato all uploads dei fileCodice PHP:
$target_dir = "uploads/";
for($i = 1; $i<11; $i++){
$target_file = $target_dir . $last_id . "_" . basename( $_FILES['immagine'.$i]['name'] );
$uploadOk = 1;
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
if(file_exists($target_file) ) {
echo "Spiacente, il file esiste già.";
$uploadOk=0;
}
if($_FILES["immagine".$i]["size"] > 1000000) {
echo"Spiacente, il file è troppo grande.";
$uploadOk=0;
}
if ($_FILES["immagine".$i]["size"] >0) {
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif"){
echo "Spiacente,sono permessi solo file JPG, JPEG, PNG E GIF.";
$uploadOk=0;
}
}
if ($uploadOk ==0){
$sql="DELETE FROM news WHERE id= " . $last_id;
$con->query($sql);
echo "<p>Il file non è stato caricato</p>";
echo "<a href=\"visualizzo.html\">Indietro</a>";
}else{
if ($_FILES["immagine".$i]["size"] >0){
if(move_uploaded_file($_FILES['immagine'.$i]['tmp_name'], $target_file)){
$sql = "UPDATE news SET file".$i."='" .basename($_FILES['immagine'.$i]['name'] ) ."' WHERE id='".$last_id."'";
$con->query($sql);
}
}
}
echo "<p>Articolo inserito correttamente.</p>";
echo "<a href=\"visualizzo.php\">Vedi elenco</a>";
}
$con->close();
?>
file di visualizza.php
questa e la parte dedicata alla visualizzazione delle foto
Codice PHP:
echo "<center><img src=\"uploads/{$row['id']}_{$row['file1']}\" alt=\"{$row['file1']}\" /><br/><br/>";
echo "<center><img src=\"uploads/{$row['id']}_{$row['file2']}\" alt=\"{$row['file2']}\" /><center><br/>";
echo "<center><img src=\"uploads/{$row['id']}_{$row['file3']}\" alt=\"{$row['file3']}\" /><center><br/>";
echo "<center><img src=\"uploads/{$row['id']}_{$row['file4']}\" alt=\"{$row['file4']}\" /><center><br/>";
echo "<center><img src=\"uploads/{$row['id']}_{$row['file5']}\" alt=\"{$row['file5']}\" /><center><br/>";
echo "<center><img src=\"uploads/{$row['id']}_{$row['file6']}\" alt=\"{$row['file6']}\" /><center><br/>";
echo "<center><img src=\"uploads/{$row['id']}_{$row['file7']}\" alt=\"{$row['file7']}\" /><center><br/>";
echo "<center><img src=\"uploads/{$row['id']}_{$row['file8']}\" alt=\"{$row['file8']}\" /><center><br/>";
echo "<center><img src=\"uploads/{$row['id']}_{$row['file9']}\" alt=\"{$row['file9']}\" /><center><br/>";
echo "<center><img src=\"uploads/{$row['id']}_{$row['file10']}\" alt=\"{$row['file10']}\" /><center><br/>";
echo "<hr />";
}
Ultima modifica di seprova : 14-05-2015 alle ore 08.38.44
Ok!
premetto che non ho provato il codice che ti sto scrivendo quindi potrebbero esserci degli errori ma tanto sono sempre qua:
ti scrivo il codice html come lo farei io che è anche più "scorrevole"
<div style="text-align: center">
<?php
$numeroFile = "file";
for ($i = 0; $ <= 10; $i++) {
$file = $row['id'] . "_" . $row[ $numeroFile . $i ];
$file = "/uploads/" . $file;
if(file_exists($file)) { ?>
<img src = "http://forum.it.altervista.org/images/<?=$file?>" alt ="quello che vuoi tu" /><br /><br />
<?php
}
?>
</div>
più o meno
[edit] <center> non si usa più[/edit]
ah capito lo devo mettere invece sulla visualizzazione adesso provo
Ultima modifica di seprova : 14-05-2015 alle ore 09.15.39