PHP获取两行但仅从最后一行上载文件

时间:2017-12-13 07:07:28

标签: php html mysql

我试图从数据库中获取记录,然后我必须上传一个应该存储在文件夹中的图像,并且还要链接到表中更新..一切正常工作只有最后一行..对于第一行它不更新。请帮助我,我在哪里..下面是我的代码

  

enter image description here

<?php
$email1 = $_SESSION['email'];
$Vendor_id = "SELECT Vendor_id FROM vendors where email = '$email1' ";
$result = mysqli_query($conn, $Vendor_id);
$row = mysqli_fetch_row($result);
$sql = "select Vendor_wallet_id, total_amount, request, amount, status, amt_pdflink from vendor_wallet";
$query = mysqli_query($conn, $sql);
?>

<form action="upload.php" method="post" enctype="multipart/form-data">
    <table id="example1" class="table table-bordered table-striped">
        <thead>
            <tr>
                <th>Transfer ID</th>
                <th>Request</th>
                <th>Amount</th>
                <th>Status</th>
                <th>Upload</th>
                <th>Submit</th>
            </tr>
        </thead>
        <tbody>

            <?php
            while ($row = mysqli_fetch_array($query))
            {
                $cpid = $row['Vendor_wallet_id'];
                $tid = $row['request'];
                $type = $row['amount'];
                $pays = $row['status'];
                $amt = $row['amt_pdflink'];
                ?>
                <tr>    
                    <td value="<?php echo $cpid; ?>" name="cpid"><?php echo $cpid; ?></td>
                    <td><?php echo $tid; ?></td>
                    <td><?php echo $type; ?></td>
                    <td><?php echo $pays; ?></td>   
                    <td><input type="file" value="<?php echo $amt; ?>" name="fileToUpload" id="fileToUpload" ></td> 
                    <td><input type="submit" value="Submit" name="submit" >
                        </button>
                    </td>  </tr>
            <?php } ?>

        </tbody>
    </table>
</form>  

upload.php取自https://www.w3schools.com/php/php_file_upload.asp

4 个答案:

答案 0 :(得分:1)

您可以通过几种方式进行文件上传,其中一种方法是使表单成为单个表格单元格的子级,并将文件字段作为该表单的直接子级。保留布局的submit按钮不是表单的子项,需要更改为简单的button输入类型,然后使用javascript提交表单

<?php
    $email1 = $_SESSION['email'];
    $Vendor_id = "SELECT Vendor_id FROM vendors where email = '$email1' ";
    $result = mysqli_query($conn, $Vendor_id);
    $row = mysqli_fetch_row($result);
    $sql = "select Vendor_wallet_id, total_amount, request, amount, status, amt_pdflink from vendor_wallet";
    $query = mysqli_query($conn, $sql);
?>

    <table id="example1" class="table table-bordered table-striped">
        <thead>
            <tr>
                <th>Transfer ID</th>
                <th>Request</th>
                <th>Amount</th>
                <th>Status</th>
                <th>Upload</th>
                <th>Submit</th>
            </tr>
        </thead>
        <tbody>

<?php

    while( $row = mysqli_fetch_array( $query ) ) {
        $cpid = $row['Vendor_wallet_id'];
        $tid = $row['request'];
        $type = $row['amount'];
        $pays = $row['status'];
        $amt = $row['amt_pdflink'];
?>
    <tr>    
        <td value="<?php echo $cpid; ?>" name="cpid"><?php echo $cpid; ?></td>
        <td><?php echo $tid; ?></td>
        <td><?php echo $type; ?></td>
        <td><?php echo $pays; ?></td>   
        <td>
            <form action="upload.php" method="post" enctype="multipart/form-data">
                <input type="file" value="<?php echo $amt; ?>" name="fileToUpload" />
            </form>
        </td>   
        <td><input type="button" value="Submit" name="submit" /></td> 
    </tr>
<?php
    }
?>

        </tbody>
    </table>



<script>
    var bttns=Array.prototype.slice.call(document.querySelectorAll('input[type="button"][name="submit"]'));
        bttns.forEach(function(bttn){
            bttn.addEventListener('click',function(evt){
                this.parentNode.parentNode.querySelector('form').submit();
            }.bind(bttn),false );
        });
</script>

答案 1 :(得分:1)

我有一些建议:

  1. 在“php.ini”文件中,搜索file_uploads指令,并将其设置为On:file_uploads = On
  2. ... </button><!-- <<-- How are you using this? -->
  3. 可以尝试回复$ amt;在循环的底部,看看路径是否正确。
  4. 可能想要检查$ amt是否为IF Empty条件/语句,并且可能检查其他变量的条件。

                $email1 = $_SESSION['email'];
                $Vendor_id="SELECT Vendor_id FROM vendors where email = '$email1' ";
                $result=mysqli_query($conn,$Vendor_id);
                $row = mysqli_fetch_row($result);
                $sql = "select Vendor_wallet_id, total_amount, request, amount, status, amt_pdflink from vendor_wallet";
                $query = mysqli_query($conn, $sql);
            ?>
    
                 <form action="upload.php" method="post" enctype="multipart/form-data">
    
              <table id="example1" class="table table-bordered table-striped">
    
                <thead>
                    <tr>
                        <th>Transfer ID</th>
                        <th>Request</th>
                        <th>Amount</th>
                        <th>Status</th>
                        <th>Upload</th>
                        <th>Submit</th>
                    </tr>
                </thead>
                <tbody>
    
                <?php
    
                while ($row = mysqli_fetch_array($query))
                {                                                       
                        $cpid=$row['Vendor_wallet_id'];
                        $tid=$row['request'];
                        $type=$row['amount'];
                        $pays=$row['status'];
                        $amt=$row['amt_pdflink'];
                ?>
    
                        <tr>    
                        <td value="<?php echo $cpid; ?>" name="cpid"><?php echo $cpid;?></td>
                        <td><?php echo $tid;?></td>
                        <td><?php echo $type;?></td>
                        <td><?php echo $pays;?></td>    
                        <td><input type="file" value="<?php echo $amt;?>" name="fileToUpload" id="fileToUpload" ></td>  
                        <td><input type="submit" value="Submit" name="submit" >
                        </button> <!-- WHY IS THIS HERE? -->
                        </td></tr>
    
            <?php 
    
                echo $amt; //See if it is correct path
    
            }//END WHILE ?>
    
          </tbody>
         </table>
      </form>
    

答案 2 :(得分:1)

在您的表单上

<?php
$email1 = $_SESSION['email'];
$Vendor_id = "SELECT Vendor_id FROM vendors where email = '$email1' ";
$result = mysqli_query($conn, $Vendor_id);
$row = mysqli_fetch_row($result);
$sql = "select Vendor_wallet_id, total_amount, request, amount, status, amt_pdflink from vendor_wallet";
$query = mysqli_query($conn, $sql);
?>

<form action="upload.php" method="post" enctype="multipart/form-data">
    <table id="example1" class="table table-bordered table-striped">
        <thead>
            <tr>
                <th>Transfer ID</th>
                <th>Request</th>
                <th>Amount</th>
                <th>Status</th>
                <th>Upload</th>
                <th>Submit</th>
            </tr>
        </thead>
        <tbody>

            <?php
            while ($row = mysqli_fetch_array($query))
            {
                $cpid = $row['Vendor_wallet_id'];
                $tid = $row['request'];
                $type = $row['amount'];
                $pays = $row['status'];
                $amt = $row['amt_pdflink'];
                ?>
                <tr>    
                    <td value="<?php echo $cpid; ?>" name="cpid"><?php echo $cpid; ?></td>
                    <td><?php echo $tid; ?></td>
                    <td><?php echo $type; ?></td>
                    <td><?php echo $pays; ?></td>   
                    <td><input type="file" name="fileToUpload []" class="fileToUpload" ></td> 
                    <input type="hidden" value="<?php echo $amt; ?>" name="fileToUploadLink []" class="fileToUploadLink" >
                    <td><input type="submit" value="Submit" name="submit" >
                        </button>
                    </td>  </tr>
            <?php } ?>

        </tbody>
    </table>
</form>  

on upload.php

<?php
 if(isset($_FILES['fileToUpload']['tmp_name'])&&isset($_POST['fileToUploadLink'])){
  for($i=0;$i<=(count($_FILES['fileToUpload']['tmp_name'])-1);$i++){
    move_uploaded_file($_FILES['fileToUpload']['tmp_name'][$i],$_POST['fileToUploadLink'][$i]);
  }

}

?>

答案 3 :(得分:-1)

好像你想要每行制作一个表格。

<tr>    
    <td value="<?php echo $cpid; ?>" name="cpid"><?php echo $cpid; ?></td>
    <td><?php echo $tid; ?></td>
    <td><?php echo $type; ?></td>
    <td><?php echo $pays; ?></td>   
    <td colspan="2">
       <form action="upload.php" method="post" enctype="multipart/form-data">
         <input type="hidden" name="Vendor_wallet_id" value="<?php echo $cpid;?>" />
         <input type="file" value="<?php echo $amt; ?>" name="fileToUpload" />
         <button>Submit</button>
       </form>
    </td>
</tr>
</form>

并删除包装表

<form>标记