выбрать номера и вставить в базу данных? - PullRequest
0 голосов
/ 03 марта 2010

У меня есть 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>

Ответы [ 2 ]

1 голос
/ 03 марта 2010

Вы можете попробовать что-то вроде этого, чтобы извлечь все номера счетов:

<?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 голосов
/ 03 марта 2010

Здесь есть несколько шагов:

1: создайте схему базы данных, соответствующую вашим данным. Схема - это макет таблицы базы данных.

2: проанализируйте документ html и получите ваши данные, используя метод, предложенный codaddict

3: просматривайте данные по одной записи за раз и используйте INSERT, чтобы поместить их в таблицу.

Без какой-либо более конкретной информации об этом мы не сможем вам рассказать больше.

...