2010-03-03 117 views
0

我有一个HTML文件,有发票的详细信息选择数字并插入数据库?

我想知道有没有办法,我可以检索只发票号码,并将其单独存储在我的SQL数据库使用PHP?

<p>Invoice ID: 0201</p> 
<p>MID : Q987</p> 
<p>Desciption: Solid Concrete Blocks</p> 
<p>Qty: 7478 Blocks </p> 
<p>&nbsp;</p> 
<p>Invoice ID: 0324</p> 
<p>MID : Q443</p> 
<p>Desciption: Window Slides with Chrome </p> 
<p>Qty: 33 Units </p> 
+0

向我们展示了发票号码在html中的样子。建议使用像http://simplehtmldom.sourceforge.net/这样的HTML解析工作。 – codaddict 2010-03-03 09:34:06

+0

请为受访者提供一些示例HTML。 – 2010-03-03 09:34:09

+0

非常非常。请参阅http://www.tuxradar.com/practicalphp – Gordon 2010-03-03 09:36:12

回答

1

你可以尝试这样的事情提取所有发票编号:

<?php 

$input = "<body> 
<p>Invoice ID: 0201</p> 
<p>MID : Q987</p> 
<p>Desciption: Solid Concrete Blocks</p> 
<p>Qty: 7478 Blocks </p> 

<p> </p> 
<p>Invoice ID: 0324</p> 
<p>MID : Q443</p> 
<p>Desciption: Window Slides with Chrome </p> 
<p>Qty: 33 Units </p> 
</body>"; 

$invoice_ids = array(); 
if(preg_match_all('{<p>Invoice ID:\s*(\d+)</p>}',$input,$matches)) { 
    $invoice_ids = $matches[1]; 
} 

var_dump($invoice_ids); 

?> 

输出:

array(2) { 
    [0]=> 
    string(4) "0201" 
    [1]=> 
    string(4) "0324" 
} 

一旦你已经提取的所有发票号码,你可以在它们插入数据库表使用类似:

<?php 
$con = mysql_connect("localhost","USRNAME","PASSWD"); 
if (!$con) { 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("DB_NAME", $con); 

foreach($invoice_ids as $id) { 

    $query = "INSERT INTO YOUR_TABLE_NAME(invoice_num) VALUES $id"; 

    if(!mysql_query($query,$con)) { 
     die('Error: ' . mysql_error()); 
    } 

} 
mysql_close($con) 
?> 
+0

谢谢..它是相当有用的 – LiveEn 2010-03-03 10:42:47

0

这里有几个步骤:

1:创建一个与您的数据匹配的数据库模式。模式是数据库表格的布局。

2:解析HTML文档,并使用codaddict

3建议的方法让您的数据:遍历数据一次一个记录,并用INSERT把它放到你的餐桌。

没有关于这方面的更多具体信息,我们可以告诉你的不多。