2011-09-29 3 views
0

Je suis vraiment en train d'essayer d'obtenir quelque chose de très simple. Pour l'essentiel, j'ai une table d'images appelée "galleryimages" et un emplacement sur le serveur où les images sont stockées. Ce que j'essaie de faire est d'écraser le champ source pour une catégorie donnée dans la table pendant le téléchargement.Mise à jour de phpmysql lors du chargement de l'image

Mon code va ajouter la nouvelle image au serveur, mais pas mettre à jour la table mysql pour une raison quelconque (je peux cependant ajouter de nouvelles lignes bien que je veux conserver les données existantes dans le tableau et simplement changer la "champ qui localise l'image).

Mon php est:

<?php include 'dbc.php'; page_protect(); 

if(!checkAdmin()) {header("Location: login.php"); 
exit(); 
} 

$host = $_SERVER['HTTP_HOST']; 
$host_upper = strtoupper($host); 
$login_path = @ereg_replace('admin','',dirname($_SERVER['PHP_SELF'])); 
$path = rtrim($login_path, '/\\'); 

foreach($_GET as $key => $value) { 
    $get[$key] = filter($value); 
} 

foreach($_POST as $key => $value) { 
    $post[$key] = filter($value); 
} 
?> 


<?php 
if($_FILES['photo']) 
{ 
    $target = "galleries/test/"; 
    $target = $target . basename($_FILES['photo']['name']); 

    $title = mysql_real_escape_string($_POST['title']); 
    $pic = "galleries/test/" .(mysql_real_escape_string($_FILES['photo']['name'])); 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{ 
    mysql_query("update `galleryimages` set (`title`, `photo`) VALUES ('$title', '$pic')") ;  

    echo "Success"; 
} 
else 
{ 
    echo "Failure"; 

} 
} 
?> 

Et le code html est:

<form enctype="multipart/form-data" action="addgallery1.php" method="POST"> 
     <table width="100%" border="2" cellpadding="5"class="myaccount"> 
     <tr> 
      <td>Category: </td> 
      <td><select name="title" id="select8"> 
       <option value="Landscape Pots">Landscape Pots</option> 

        </select></td> 
     </tr> 
     <tr> 
      <td>Image: </td> 
      <td><input type="file" name="photo" /></td> 
     </tr> 
     <tr> 
      <td colspan="2"><input type="submit" class="CMSbutton" value="Add" /></td> 
     </tr> 
     </table> 
    </form> 

    </body> 
    </html> 

Maintenant, je suis assez sûr que le problème existe dans la ligne:

if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{ 
    mysql_query("update `galleryimages` set (`title`, `photo`) VALUES ('$title', '$pic')") ;  
    echo "Success"; 
} 

mais besoin d'aide pour déterminer si c'est bien le cas - et si oui, comment je peux l'obtenir pour mettre à jour la table mysql - au moment où le php fait écho Success mais ne fait aucune mise à jour de la colonne "photo" dans mysql. J'espère que cela a du sens et l'un de vos génies de codage peut m'aider à résoudre ce problème - il m'a fallu des heures d'essais et d'erreurs, mais je n'arrive toujours pas à le faire fonctionner!

grâce à l'avance pour toute aide

JD

Répondre

0

Votre requête MySQL est erroné:

update `galleryimages` set `title`='$title', `photo`='$pic' 

Mais attention: Cela mettra à jour toutes les lignes de ce tableau! Vous devez ajouter une clause WHERE pour mettre à jour une ligne spécifique.

Questions connexes