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

问题描述 投票:0回答:4

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

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

php html mysql
4个回答
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>  

在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]);
  }

}

?>

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>

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
投票

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

<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>标记

© www.soinside.com 2019 - 2024. All rights reserved.