无法让mysql数组重复执行每行执行的代码

时间:2014-10-14 03:39:11

标签: php mysql sql

我试图查询数据库并将代码应用于每个结果,并将每个结果的记录插入数据库。此代码有效,但仅适用于最后一行结果。我试过foreach但是不能让它工作最喜欢,因为我不明白它应该如何工作。请帮忙,谢谢

<?php
    if(isset($_POST['bill1'])){
        mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
        require ('dbconnect.php');
        // Check connection
        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }
    }
    $invoicedate= $_POST['invoicedate'];
    $invoiceduedate= $_POST['invoiceduedate'];   
    echo 'post is good';   
    require ('dbconnect.php');     
    echo 'db connect';                             
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    $result = mysqli_query($con,"SELECT * FROM customer WHERE terms = 1");
    while($row = mysqli_fetch_array($result)) {   
        echo 'array good';
        $item = $row['inputItem'];
        $itemdescription = $row['description1'];
        $itemprice = $row['itemprice1'];
        $id = $row['id'];
        $paidstatus = 5;
        $totaldue = $itemprice;
        require ('dbconnect.php');
        echo $item; 
        echo $itemdescription; 
        echo $itemprice; 
        echo $id; 
        echo $paidstatus;
        echo $invoicedate; 
        echo $invoiceduedate;
        $resulttt = mysqli_query($con,"SELECT invoice_number FROM invoices ORDER BY invoice_number DESC LIMIT 1");
        while($row = mysqli_fetch_array($resulttt)){ 
            $addone = "1";
            $invoicenewnumber = $addone + $row [invoice_number];
        }
        echo $invoicenewnumber;
        //echo $row [invoice_number];                                        
        $invoice_number = $invoicenewnumber; 
        require ('dbconnect.php');
        $put = mysqli_query($con,"INSERT INTO invoices (item, description, item_total, id, paidstatus, duedate, invoicedate, invoice_number, total_due)VALUES('$item', '$itemdescription', '$itemprice', '$id', '$paidstatus', '$invoiceduedate', '$invoicedate', '$invoice_number', '$totaldue')");
        if (!mysqli_query($con,$put)) 
            die('Error: ' . mysqli_error($con));
        echo 'succsess';  
    }   
?>

2 个答案:

答案 0 :(得分:1)

<?php
$resulttt = mysqli_query($con,"SELECT invoice_number FROM invoices ORDER BY invoice_number DESC LIMIT 1");
while($row = mysqli_fetch_array($resulttt))
{ 
    $addone = "1";
    $invoicenewnumber = $addone + $row [invoice_number];
    $invoice_number = $invoicenewnumber; 
    $put = mysqli_query($con,"INSERT INTO invoices (item, description, item_total, id, paidstatus, duedate, invoicedate, invoice_number, total_due)VALUES('$item', '$itemdescription', '$itemprice', '$id', '$paidstatus', '$invoiceduedate', '$invoicedate', '$invoice_number', '$totaldue')");
}                          
?>

答案 1 :(得分:0)

尝试在while循环中插入第二个查询。

并在答案

中阅读评论

注意:整页只需连接一次。

<?php
if(isset($_POST['bill1']))
{mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
require ('dbconnect.php'); You need the connection only once
// Check connection
if (mysqli_connect_errno()) {
 echo "Failed to connect to MySQL: " . mysqli_connect_error();
}}
$invoicedate= $_POST['invoicedate'];
$invoiceduedate= $_POST['invoiceduedate'];

echo 'post is good';

    //require ('dbconnect.php'); Dont need here

   // echo 'db connect'; Dont need here                
    //if (mysqli_connect_errno()) {
   // echo "Failed to connect to MySQL: " . mysqli_connect_error();
   // }
     $result = mysqli_query($con,"SELECT * FROM customer WHERE terms = 1");
while($row = mysqli_fetch_array($result)) {

echo 'array good';
$item = $row['inputItem'];
$itemdescription = $row['description1'];
$itemprice = $row['itemprice1'];
$id = $row['id'];
$paidstatus = 5;
$totaldue = $itemprice;
require ('dbconnect.php');
echo $item; 
echo $itemdescription; 
echo $itemprice; 
echo $id; 
echo $paidstatus;
echo $invoicedate; 
echo $invoiceduedate;                                

$resulttt = mysqli_query($con,"SELECT invoice_number FROM invoices ORDER BY invoice_number DESC LIMIT 1");
while($row = mysqli_fetch_array($resulttt)){ 
$addone=$addone+1;//If you want to add one to the invoice number you have to use this. 
$invoicenewnumber = $addone + $row ['invoice_number'];//}//remove the closing while loop from here,
//Added quete to the Invoice_number
echo $invoicenewnumber;
                                 //echo $row [invoice_number];                                        
$invoice_number = $invoicenewnumber; 
require ('dbconnect.php');
$put = mysqli_query($con,"INSERT INTO invoices (item, description, item_total, id, paidstatus, duedate, invoicedate, invoice_number, total_due)VALUES('$item', '$itemdescription', '$itemprice', '$id', '$paidstatus', '$invoiceduedate', '$invoicedate', '$invoice_number', '$totaldue')");
}
if (!mysqli_query($con,$put)) 
die('Error: ' . mysqli_error($con));
echo 'succsess';

}

?>