Revísalo porque lo acabo de hacer sobre la marcha. Si te sirve cambia las cosas según tu forma de programar.
Básicamente cambie la estructura de los ifs porque según entendí la imagen tiene que subirse si entra en el insert o el update y tal y como estaba no era el caso.
Abusé de las llaves {} para que se viera mejor la estructura.
Código PHP:
<?php
// Pon esto en un include para no escribir la conexión en cada script p.e: include ('conexion.php');
$link = mysql_connect("localhost","root","");
mysql_select_db("blueberryswebtiendas",$link);
////////////////////////////////////////////////
// Comprobamos los datos:
if(isset($_POST['logo']) and !empty($_POST['logo']) and
isset($_POST['tienda']) and !empty($_POST['tienda']) and isset ($_FILES['logo']['name']))
{
//Pon seguridad en tus variables post para evitar inyecciones, usa expresiones regulares y mysql_real_escape_string()
$fondo = $_POST['logo'];
$tienda = $_POST['tienda'];
//Cuando subas el script a tu web elimina los mysql_error para evitar dar información de tu BD
//Eliminé los $links de la conexión que no hacen falta en la consulta. Ya la tienes abierta.
if($sql = mysql_query("select count(*) as total from diseny where tienda =". $tienda)
or die("Ha habido un error al insertar los valores. Error: ".mysql_error() ) )
{
$flag = false; // boolean para comprobar que entro en el update o el insert
$row = mysql_fetch_array($sql);
if ($row['total'] > 0) // el usuario ya existe
{
// SENTENCIA DE ACTUALIZACIÓN para actualizar los campos
if (mysql_query ("UPDATE diseny SET logo='".$_POST['logo']."',tienda='".$_POST['tienda']."' WHERE tienda = ".$tienda) or die( mysql_error() ) )
{
$flag = !$flag;
}
}
else // el usuario no existe
{
// SENTENCIA DE INSERCIÓN si es un campo nuevo lo insertamos
if (mysql_query("INSERT INTO diseny (logo,tienda) VALUES ('".$_POST['logo']."','".$_POST['tienda']."')") or die( mysql_error() ) )
{
$flag = !$flag;
}
}
//Si se actualizó o insertó procedemos a subir la imagen:
if($flag == true)
{
echo 'entró';
//guardar imagen en carpeta
$nombre_archivo=$_FILES['logo']['name'];
echo $nombre_archivo;
$tamano = $_FILES['logo']['size'];
if($tamano > 100000000)
{
echo " OCUPA DEMASIADO.";
}
else
{
if(move_uploaded_file($_FILES['logo']['tmp_name'],"imglogo/" . $nombre_archivo))
echo " HA SIDO SUBIDO.";
else
echo " NO HA SIDO SUBIDO.";
}
}
else
{
echo 'No se ha podido proceder';
}
}
else //Comprobamos tbn que entró en la consulta y si no, lo mostramos en pantalla.
{
echo 'No se encuentra ese elemento en la BD';
}
}
else
{
echo 'datos del $_POST incorrectos';
}
?>