Inserimento dati in colonna mysql

SardaFilm

Nuovo Utente
19 Lug 2014
8
0
0
Buonasera, stasera ho avuto un problema insolito con l'inserimento dei dati in una colonna.

Praticamente ho creato 3 colonne

Tiny (in cui ci vanno i dati della textarea
Photo (il nome dell'immagine caricata)
Titolo (e qui il sorge il problema)


Prima di creare la colonna "Titolo" il tutto funzionava, i dati degli altri due input venivano caricati nelle colonne però dopo la creazione dell'ultima colonna titolo non ha più funzionato.

Cosa c'è che non va? Vi lascio il codice che uso per inserire i dati nel db.

PHP:
<div id="main">
    <h2>Posta un nuovo film o una serie</h2>
    <p>
    <form enctype="multipart/form-data" action="amministrazione.php" method="POST"> 
    <input type="text" id="titolo" name="titolo" value="Inserisci il titolo">
    <textarea id="name" name="tiny" rows="15" cols="80"></textarea><br> 
    <label for="photo">Copertina DVD | Serie  </label>
    &nbsp;&nbsp;&nbsp;<input type="file" name="photo" required><br><br> 
 <input type="submit" value="Crea"> 
 <?php 

 //This is the directory where images will be saved 
 if (!empty($_FILES['photo']['name'])) { 

  
 $target = "../image/"; 
 $target = $target . basename( $_FILES['photo']['name']); 

 //This gets all the other information from the form 

 $tiny = @$_POST['tiny'];
 $titolo = @$_POST['titolo'];
 $pic= $_FILES['photo']['name']; 


 mysql_query("INSERT INTO employees VALUES ('$tiny', '$pic', '$titolo')") ; 

 //Writes the photo to the server 
 if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
 { 

 //Tells you if its all ok 
 echo "Il file ". basename(isset($_FILES['uploadedfile']['name'])). " è stato caricato con successo"; 
 } 
 else { 

 //Gives and error if its not 
 echo "Ci sono problemi con il caricamento del file."; 
 } 
}
 ?> 
 </form>

    </p>
    </div>

Gradirei aiuto :byebye:

P.S. Se vi serve guardare come imposto la colonna: Titolo VARCHAR (30) NULL 0:)
 
Alla fine della query metti prima del ;
or die (mysql_error());
Lancia la pagina e guarda cosa stampa

Inviato con Tapatalk Free da Android
 
Ciao, grazie per la risposta.

Ho già risolto poco più tardi che ho pubblicato questa discussione, praticamente sbagliavo l'ordine delle tabelle e siccome avevano impostazioni diverse mysql dava errori. Ho riscritto la query (dopo un po' di tentativi :jolly:) e ha funzionato.

Grazie ancora, buona giornata.
 
due cose,

1) visto che hai campi limitati ( Titolo VARCHAR (30) ), non è male mettere il limite sull'input
HTML:
<input type="text" id="titolo" name="titolo" value="Inserisci il titolo" maxlength="30">
o controllarne la lunghezza, ti proteggi per future dimenticanze ....

2) inserisci i valori nel db indipendentemente dal "buon fine del file"
PHP:
mysql_query("INSERT INTO employees VALUES ('$tiny', '$pic', '$titolo')") ;  

 //Writes the photo to the server  
 if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
rischiando di avere orfani nel db

certo tutto dipende dal grado di affidabilità che deve avere la tua applicazione ....

per quanto riguarda il problema non è dato vedere dal codice un errore, se non derivante dalla lunghezza del campo
vale il suggerimento già postato

ciao
Marino
 
Ultima modifica:
Ciao grazie per la risposta, il problema ora si è spostato su la textarea. Ho aggiunto ciò che c'era da aggiungere però ora se il testo è troppo lungo (nella textarea) il contenuto non viene pubblicato né nella index né nel database.. Qualche suggerimento?
 
ciao
due piccole osservazioni:
- quando fai caricare dei file è indispensabile verificarne il tipo, qualcuno potrebbe caricarti cancella_tutto.exe (sarebbe opportuna anche la grandezza px e kb)
- non è il metodo migliore per non avere record orfani, se poi non carica, ma hai il record se es devi fare una fotogallery ti viene la fastidiosa x
PHP:
<?php
//............ 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)){ 
	mysql_query("INSERT INTO employees VALUES ('$tiny', '$pic', '$titolo')");
	echo "Il file ". basename(isset($_FILES['uploadedfile']['name'])). " è stato caricato con successo"; 
}else{
	//...ecc
?>
ultimo
abbandona le vecchie istruzioni mysql e passa alle mysqli o alla classe pdo
 
ciao
due piccole osservazioni:
- quando fai caricare dei file è indispensabile verificarne il tipo, qualcuno potrebbe caricarti cancella_tutto.exe (sarebbe opportuna anche la grandezza px e kb)
- non è il metodo migliore per non avere record orfani, se poi non carica, ma hai il record se es devi fare una fotogallery ti viene la fastidiosa x
PHP:
<?php
//............ 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)){ 
	mysql_query("INSERT INTO employees VALUES ('$tiny', '$pic', '$titolo')");
	echo "Il file ". basename(isset($_FILES['uploadedfile']['name'])). " è stato caricato con successo"; 
}else{
	//...ecc
?>
ultimo
abbandona le vecchie istruzioni mysql e passa alle mysqli o alla classe pdo

Ciao grazie per la risposta, ho già provato con mysqli ma dandomi troppi problemi son tornato alle vecchie "maniere". Comunque nel database come hai visto non salvo la foto in se ma semplicemente il nome quindi non ho pericolo, però seguirò il tuo consiglio e metterò un qualcosa per verificare il tipo di file.

Però mi resta sempre il problema della textarea che mi sta mandando in panico.
 
ciao
considera che tra un po' le msql spariscono, anzi su qualche host stanno gia dando errore, quindi corri il rischio di dover rifare tutto.
guarda che il pericolo c'è, se estrai il nome della foto e poi fai (shematizzo)
PHP:
<img src="<?php echo $riga['nome_file'];?>">
e il file non esiste la classica X non te la toglie nessuno
dimenticavo:
salvo che prima tu non verifichi che il file esista, ma mi sembra un istruzione inutile in più
dimenticavo ancora: togli i silent, @, gli errori si devono eliminare non nascondere
 
Ultima modifica:
ciao
considera che tra un po' le msql spariscono, anzi su qualche host stanno gia dando errore, quindi corri il rischio di dover rifare tutto.
guarda che il pericolo c'è, se estrai il nome della foto e poi fai (shematizzo)
PHP:
<img src="<?php echo $riga['nome_file'];?>">
e il file non esiste la classica X non te la toglie nessuno
dimenticavo:
salvo che prima tu non verifichi che il file esista, ma mi sembra un istruzione inutile in più
dimenticavo ancora: togli i silent, @, gli errori si devono eliminare non nascondere

Ho chiesto per aiutarmi in quella notice ma non succede mai niente e per me ora va bene così. Più che altro ho bisogno di risolvere il fatto di questa textarea maledetta
 
ciao
metti dei var_dump e dividi la querry in modo da capire dove si inghippa
poi i var_dump li togli
PHP:
<?php
//.....
$tiny = $_POST['tiny'];
var_dump($_POST['titolo']);//vedi come e se viene trasmesso il valore
$titolo = $_POST['titolo'];
$pic= $_FILES['photo']['name']; 
//poi dividi la query
$q="INSERT INTO employees VALUES ('$tiny', '$pic', '$titolo')";
var_dump($q);//qui vedi se la queystribga vine come dovrebbe
$ris= mysql_query($q); //se query OK da RESOURCE... , se KO BOOL FALSE
var_dump($ris);//se query OK da RESOURCE... , se KO BOOL FALSE
//.....
?>
posta cosa danno i var_dump
 
risolto

ciao
metti dei var_dump e dividi la querry in modo da capire dove si inghippa
poi i var_dump li togli
PHP:
<?php
//.....
$tiny = $_POST['tiny'];
var_dump($_POST['titolo']);//vedi come e se viene trasmesso il valore
$titolo = $_POST['titolo'];
$pic= $_FILES['photo']['name']; 
//poi dividi la query
$q="INSERT INTO employees VALUES ('$tiny', '$pic', '$titolo')";
var_dump($q);//qui vedi se la queystribga vine come dovrebbe
$ris= mysql_query($q); //se query OK da RESOURCE... , se KO BOOL FALSE
var_dump($ris);//se query OK da RESOURCE... , se KO BOOL FALSE
//.....
?>
posta cosa danno i var_dump

CIao grazie per le risposte, ho già risolto cambiando un po' il codice!
 

Discussioni simili