update record in mysql anche con riga vuota

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao tutti vorrei sapere una cosa che credo sia possibile,
ho un form in php che mi fa l update di una foto in una tabella mysql.

Ma non funziona se il campo è vuoto, cioè se devo aggiornare con una foto un campo vuoto, mentre funziona se devo aggiornare con una nuova foto
un campo dove cè gia una foto.

perche? ho provato con un form dove invece di una foto avevo dei dati e funziona, ma con una foto NO.
tra l altro realizzato grazie al Vostro aiuto

sapreste aiutarmi per favore? Vi posto il codice se voleste dargli un occhiata,

Grazie in ogni caso, siete sempre gentilissimi.
PHP:
 <?php
session_start();

  $id_utente = $_SESSION['id'];



$id_utente = $_SESSION['id'];

if(isset($_POST['Submit'])){
  // faccio un po' di inclusioni...
  @include 'configa.php';
  @require 'function.php';


  // Creo una array con i formati accettati
  $tipi_consentiti = array("image/gif","image/jpeg","image/png");

  // verifico che il formato del file sia tra quelli accettati
  if (@in_array($_FILES['imagefile']['type'], $tipi_consentiti)){ 
    // copio il file nella cartella delle immagini
    @copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);

    // recupero i dati dal form
    $titolo = @addslashes($_POST['titolo']);
    $descrizione = @addslashes($_POST['descrizione']);
    $nome = @addslashes($_FILES['imagefile']['name']);
    $path = $path_img . stripslashes($nome);
    $tipo = @addslashes($_FILES['imagefile']['type']);

    // creo la miniatura
    @makeThumb($path_img,$path,$nome,$tipo);
  

    // aggiorno il database

 
	//$query = "INSERT INTO foto_profilo (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('$titolo','$descrizione','$nome','$tipo','$id_utente')";
	$query = "UPDATE foto_profilo SET
	Titolo='$titolo',
	Descrizione='$descrizione',
	Nome='$nome',
	Tipo='$tipo'
	WHERE id_utente = '$id_utente'";

    $res = @mysql_query($query) or die (mysql_error());


    // Stampo a video un po' di informazioni
   
    echo "Dimensione: ".$_FILES['imagefile']['size']."<br />"; 
    echo "Tipo: ".$_FILES['imagefile']['type']."<br />"; 
    echo "Copia eseguita con successo."; 
  }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
    echo "";
  }
} 
header ("location:http://basefull.altervista.org/profilo.php");
?>



</font>
</p> 
<b>Carica una foto per il tuo profilo:</b>
<BR>
<BR>
<form method="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
Titolo:<br />
<input name="titolo" type="text" size="18"><br />
Descrizione:<br />
<textarea name="descrizione" cols="20" rows="4"></textarea><br />
Immagine:<br />
<input type="file" name="imagefile"><br />
<input type="submit" name="Submit" value="Carica">
<br /><br />

</form>
 
ciao,
puoi provare ad usare ON DUPLICATE KEY
in pratica provi prima la INSERT, se il campo idUtente (a cui dovrai assegnare una chiave primaria) esiste allora fai l'UPDATE
non so se ho capito il problema
cmq non si puo aggiornare un record che non esiste
 
ciao,
puoi provare ad usare ON DUPLICATE KEY
in pratica provi prima la INSERT, se il campo idUtente (a cui dovrai assegnare una chiave primaria) esiste allora fai l'UPDATE
non so se ho capito il problema
cmq non si puo aggiornare un record che non esiste



in pratica ho bisogno di un solo form con script, che inserisca i dati in una tabella, sia che sia vuota,
sia che vada solo aggiornata

grazie
 
I comandi per creare una nuova riga o aggiornare una esistente sono diversi. Quindi devi prima controllare se l'id già c'è e, in caso positivo, esegui un update altrimenti una insert.
 

Discussioni simili