Hi guys,
I have a page that contains elements (filenames of uploaded images)
that dynamically update the database upon clicking and dragging them
to reorder. Most of this is working wonderfully. Part of this
functionality is based upon each record having a recordID column
(apart from the primary key column). This column updates numerically
in sequential order upon Insert using this code:

<?php


mysql_select_db($database_xxx, $xxx);
$query_rcdSeq = "SELECT MAX(recordListingID) FROM sort2";
$rcdSeq = mysql_query($query_rcdSeq, $whynotcollectibles) or die

(mysql_error());
$row_rcdSeq = mysql_fetch_assoc($rcdSeq);
$totalRows_rcdSeq = mysql_num_rows($rcdSeq);

$n=$row_rcdSeq ['MAX(recordListingID)']+1;

?>


<input name="recordListingID" type="hidden" id="recordListingID" 

value="<?php echo $n; ?>" />

It is working great when only inserting one file at a time.

The problem is that I don't know how to get it to work while uploading

multiple files and I consider multiple file upload a must.

What I'm getting is:

file1.jpg 1
file1.jpg 1
file1.jpg 1
file1.jpg 1
file1.jpg 1

Instead of:

file1.jpg 1
file1.jpg 2
file1.jpg 3
file1.jpg 4
file1.jpg 5

<?php
if (isset($_POST['MM_insert'])) {
    $upload_error_codes=array("",
        "The uploaded file exceeds the upload_max_filesize directive in php.ini.","",
        "The uploaded file was only partially uploaded.",
        "No file was uploaded.","Missing a temporary folder.",
        "Failed to write file to disk.","File upload stopped by extension.");
    $allowed_ext_string="jpg,gif,png,doc,docx,pdf";
    $allowed_extensions=explode(",",$allowed_ext_string);
    $upload_status = "";
    $allowed_size =  20+0;
    $success_page = "";
    $thumbs_dir = "";
    $resize_image = "";
    $resize_width = +0;
    $resize_height = +0;
    $thumb_width = +0;
    $thumb_height = +0;     
    $make_thumbs = "";
    $thumb_prefix = "";
    $thumb_suffix = "";
    $file_prefix = "";
    $file_suffix = "";
    $append_date_stamp = "";
    $date_stamp=($append_date_stamp=="1")?date(time()):"";
    $haulted = false;
    $upload_folder="uploaded_pictures";
    //Check for restrictions
    //Check if upload folder exists
    if(!file_exists($upload_folder)){die("Upload folder doesn't exist");}
    if(!is_writable($upload_folder)){die("Upload folder is not writable");}
    if($make_thumbs == "yes" && !file_exists($thumbs_dir)){die("Thumbnails folder doesn't exist");}
    if($make_thumbs == "yes" && !is_writable($thumbs_dir)){die("Thumbnails folder is not writable");}
    foreach($_FILES as $files => $_file){
        //Check if it's not empty
        if($_file['name']!=""){
            $pathinfo = pathinfo($_file['name']);
            //If allowed extension or no extension restriction
            if(!in_array(strtolower($pathinfo['extension']),$allowed_extensions) && $allowed_ext_string!=""){
                die(strtoupper($pathinfo['extension'])." files are not allowed.
                <br>No files have been uploaded.");
            }
            if($_file['size']>$allowed_size*1048576 && $allowed_size!=0){
                die("The file size of ".basename($_file['name'])." is ".round($_file['size']/1048576,2)."MB,
                which is larger than allowed ".$allowed_size."MB.<br>No files have been uploaded.");
            }       
        }
    }
    //All checks passed, attempt to upload
    foreach($_FILES as $files => $_file){
        //Check if it's not empty
        if($_file['name']!=""){
            $pathinfo = pathinfo($_file['name']);
            $file_name_array = explode(".", basename($_file['name']));
            $filename = $file_name_array[count($file_name_array)-2];
            $target = $upload_folder;
            $file_uploaded = false;
            $target = $target."/".$file_prefix.$filename.$file_suffix.$date_stamp.".".$pathinfo['extension'];
            //if image
            if(strtolower($pathinfo['extension'])=="jpeg" || strtolower($pathinfo['extension'])=="jpg"){
                //if needs resizing or a thumbnail
                if(($resize_image == "yes" && ($resize_width!="" || $resize_height!="")) || ($make_thumbs == "yes" && ($thumb_width!="" || $thumb_height!=""))){
                    $src = imagecreatefromjpeg($_file['tmp_name']);
                    list($width,$height)=getimagesize($_file['tmp_name']);
                    //if needs thumbnail
                    if ($make_thumbs == "yes" && ($thumb_width!="" || $thumb_height!="")){
                        $thumb_newwidth=($thumb_width!=0)?$thumb_width:(($width/$height)*$thumb_height);
                        $thumb_newheight=($thumb_height!=0)?$thumb_height:(($height/$width)*$thumb_width);
                        $tmp=imagecreatetruecolor($thumb_newwidth,$thumb_newheight);
                        imagecopyresampled($tmp,$src,0,0,0,0,$thumb_newwidth,$thumb_newheight,$width,$height);
                        $thumb_name=$thumb_prefix.$filename.$thumb_suffix.$date_stamp.".".$pathinfo['extension'];
                        if(imagejpeg($tmp,$thumbs_dir."/".$thumb_name,100)){
                            $upload_status=$upload_status."Thumbnail for ".basename($_file['name'])." was created successfully.<br>";
                        }else{
                            die($upload_status."There was a problem creating a thumbnail for ". basename($_file['name']).".
                            Upload was interrupted.<br>");
                        }
                    }
                    //if needs resizing
                    if($resize_image == "yes" && ($resize_width!="" || $resize_height!="")){
                        $newwidth=($resize_width!=0)?$resize_width:(($width/$height)*$resize_height);
                        $newheight=($resize_height!=0)?$resize_height:(($height/$width)*$resize_width);
                        $tmp=imagecreatetruecolor($newwidth,$newheight);
                        imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); 
                        if(imagejpeg($tmp,$target,100)){
                            $upload_status=$upload_status.basename($_file['name'])." was successfully resized.<br>";
                            $file_uploaded=true;
                        }else{
                            die($upload_status.basename($_file['name'])." could not be resized. Upload was interrupted.<br>");
                        }
                    }
                }
            }
            if(!$file_uploaded){
                if(move_uploaded_file($_file['tmp_name'], $target)){
                    $upload_status=$upload_status.basename($_file['name'])." was uploaded successfully.<br>";
                }else{
                    $haulted=true;
                }
            }
            //Cleanup
            if(isset($src)){imagedestroy($src);unset($src);}
            if(isset($tmp)){imagedestroy($tmp);unset($tmp);}
            if($haulted){die($upload_status."There was a problem uploading ". basename($_file['name']).".
                        Error: ".$upload_error_codes[basename($_file['error'])].". Upload was interrupted.<br>");}
        }
    }
    if($success_page!="" && $upload_status!=""){
        header("Location: ".$success_page);
    }
}
?>
<?php require_once('Connections/whynotcollectibles.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
//upload

foreach($_FILES as $files => $_file){
$_POST[$files]=""; 
if($_file['name']!=""){
$pathinfo=pathinfo($_file['name']);
$file_name_array = explode(".", basename($_file['name']));
$filename = $file_name_array[count($file_name_array)-2]; 
$_POST[$files]=$file_prefix.$filename.$file_suffix.$date_stamp.".".$pathinfo['extension']; 

//end upload
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO sort2 (picture, recordListingID) VALUES (%s, %s)",
                       GetSQLValueString($_POST['picture'], "text"),
                       GetSQLValueString($_POST['recordListingID'], "int"));

  mysql_select_db($database_whynotcollectibles, $whynotcollectibles);
  $Result1 = mysql_query($insertSQL, $whynotcollectibles) or die(mysql_error());
}}
}

mysql_select_db($database_whynotcollectibles, $whynotcollectibles);
$query_rcdNumb = "SELECT * FROM sort2";
$rcdNumb = mysql_query($query_rcdNumb, $whynotcollectibles) or die(mysql_error());
$row_rcdNumb = mysql_fetch_assoc($rcdNumb);
$totalRows_rcdNumb = mysql_num_rows($rcdNumb);

mysql_select_db($database_whynotcollectibles, $whynotcollectibles);
$query_rcdSeq = "SELECT MAX(recordListingID) FROM sort2";
$rcdSeq = mysql_query($query_rcdSeq, $whynotcollectibles) or die(mysql_error());
$row_rcdSeq = mysql_fetch_assoc($rcdSeq);
$totalRows_rcdSeq = mysql_num_rows($rcdSeq);
$n=$row_rcdSeq ['MAX(recordListingID)']+1;
?>

</head>

<body>
<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <table align="center">
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Picture:</td>
      <td><label for="picture"></label>
      <input type="file" name="picture" id="picture" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Picture:</td>
      <td><label for="picture2"></label>
      <input type="file" name="picture2" id="picture2" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">&nbsp;</td>
      <td><p>
        <input type="submit" value="Insert record" />
        <input name="recordListingID" type="hidden" id="recordListingID" value="<?php echo $n; ?>" />
      </p>
      <p><?php echo $n; ?> </p></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1" />
</form>
<div id="contentLeft">
  <ul>
    <?php
                $query  = "SELECT * FROM sort2 WHERE picture LIKE '%.pdf' OR picture LIKE '%.doc' OR picture LIKE '%.jpg' OR picture LIKE '%.png' OR picture LIKE '%.gif' ORDER BY recordListingID ASC";
                $result = mysql_query($query);

                while($row = mysql_fetch_array($result, MYSQL_ASSOC))
                {
                ?>
    <li id="recordsArray_<?php echo $row['picid']; ?>"><?php echo $row['picture']; ?> <a href="delete-photo.php?recordID=<?php echo $row['picid']; ?>"><span style="color:red;font-size:10px">Delete</span></a></li>
    <?php } ?>
  </ul>
</div>
<p>&nbsp;</p>
</body>
</html>

Recommended Answers

All 4 Replies

Beside the messy code (PHP with core logic than view HTML than again PHP with logic than PHP with view with logic,, HTML and vice versa) I will stand on what you are saying that you are trying to do. Multiple upload . Well there are many implementations to the client tier (view) section. I am using SWFUpload jQuery Plugin along with setting an authority id from PHP to JS of who has the right to use it and for how long (http://blogs.bigfish.tv/adam/2009/06/14/swfupload-jquery-plugin/) If what you don’t understand there is only the authority id ask me and I will give you an example. As far to the PHP controller tier than it has to have an abstraction for uploading and concrete simple way of performing those tasks.

Thanks for your response. The multiple uploading is working fine, i just cant seem to get the recordListingID to number properly with multiple uploads

Multiple uploads meaning uploading multiple files in the same page. If you do multiple uploading with the code that you shared than I have nothing to comment (there are some magic in that and no logic). If you mean that you have two files in your form and want to give them another id is not multiple uploading. Just give them unique id’s and get them as such.

I have a primary id column and i cant use that for this purpose since the ordering will need to update the column to a different sort order. I just wish i could figure out how to insert numbers in my recordListingID column sequentially when multiple files are uploaded

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.