【问题标题】:select numbers and insert to database?选择数字并插入数据库?
【发布时间】:2010-03-03 09:28:17
【问题描述】:

我有一个包含发票详细信息的 html 文件

我想知道有没有一种方法可以只检索发票号码并使用 php 将其单独存储在我的 sql 数据库中?

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

【问题讨论】:

  • 向我们展示发票编号在 html 中的样子。对于此类工作,建议使用像 simplehtmldom.sourceforge.net 这样的 HTML 解析。
  • 请提供一些示例 HTML 供受访者使用。
  • 非常如此。请参阅tuxradar.com/practicalphp中有关数组、Xml、表单和数据库的章节
  • 请使用代码块将示例 HTML 添加到您的问题中。
  • 这里是一个小清单

    发票 ID:0201

    MID : Q987

    描述:实心混凝土块

    p>

    数量:7478 块

     

    发票ID:0324

    MID:Q443

    说明:窗口幻灯片使用 Chrome

    数量:33 个单位

    这是我获取列表的格式

标签: php html match pcre


【解决方案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)
?>

【讨论】:

    【解决方案2】:

    这里有几个步骤:

    1:创建与您的数据匹配的数据库架构。架构是数据库表的布局。

    2:使用codaddict建议的方法解析html doc并获取数据

    3:一次循环遍历一条记录并使用 INSERT 将其放入表中。

    没有更多关于此的具体信息,我们无法告诉您更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-17
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      • 2015-09-22
      • 1970-01-01
      相关资源
      最近更新 更多