This is a discussion on Inserting PHP multidimensional arrays into a mySQL database within the Coding Help forums, part of the Webmaster Help category; Well as the tilte describes I need to know how to insert a multidimensional arrays into a mySQL database, the ...
| |||||||
| Register | Forum Rules | FAQ | Donate | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Well as the tilte describes I need to know how to insert a multidimensional arrays into a mySQL database, the table I am inseting to has 14 columnes. So in every array there is 14 values which all need to be put into the right colunm. The multidimensional arrays has 58 arrays in it which means thats 58 rows of data to input into mysql. Yours Thankfully Ciaran Mc cann |
| |||||
| use a while statement PHP Code: |
| ||||
| ok right ya I still not to sure what I have to sub in there. could you do the example again using this array data.Note this isnt the actaull array. Kind Regards Ciaran Mc Cann Code: array(2) {
[0]=>
array(11) {
[0]=>
string(7) "05/2146"
[1]=>
string(1) "M
[2]=>
string(1) "P"
[3]=>
string(8) "08/09/05"
[4]=>
string(5) "house"
[5]=>
string(7) "Kildare"
[6]=>
string(8) "09/05/07"
[7]=>
string(3) "ONE"
[8]=>
string(0) ""
[9]=>
string(2) "NO"
[10]=>
string(2) "NO"
}
[1]=>
array(11) {
[0]=>
string(7) "05/2957"
[1]=>
string(11) "B"
[2]=>
string(10) "P"
[3]=>
string(8) "16/12/05"
[4]=>
string(3) "bun"
[5]=>
string(4) "wood"
[6]=>
string(8) "10/05/07"
[7]=>
string(3) "ONE"
[8]=>
string(0) ""
[9]=>
string(2) "NO"
[10]=>
string(2) "NO"
}
[2]=>
array(11) {
[0]=>
string(7) "05/2957"
[1]=>
string(11) "B"
[2]=>
string(10) "P"
[3]=>
string(8) "16/12/05"
[4]=>
string(3) "bun"
[5]=>
string(4) "wood"
[6]=>
string(8) "10/05/07"
[7]=>
string(3) "ONE"
[8]=>
string(0) ""
[9]=>
string(2) "NO"
[10]=>
string(2) "
|
| |||||
| where are those arrays coming from?
__________________ :. Web Design & Development Web Design Ireland :. Search Engines Optimization Search Engines Optimization :. Car Parts & Accessories Car Parts :. Cars Ireland Cars Ireland :. I Have 2 Find It Directory SEF Directory |
| ||||
| A data scraper which scraped the information from a table and now I am wishing to insert it into my mySQL database with the exact same col headings and that. if you would like to see the data scraper script I will post it? |
| ||||
| Quote:
I think your solution is a simple nested While loop (if i'm understanding it right.. maybe not - Im' crap at articulating these things.) You'd take each element from the "array(2) {..." array, then loop throught each value inserting it into the appropriate row. and so on. |
| ||||
| just to let yea know i didnt write this. Code: <?php
error_reporting(E_ALL);
//
// BIG FILE, we need some extra time to load it!
//
ini_set("max_execution_time", 120);
function getTable($url) {
//
// 1. Fetch content of page
//
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
curl_close($ch);
//
// 2. Process content of page
//
// Remove everything before the table
$temp = preg_split("/section.34.*?<table[^>]*>/si", $content);
$content = $temp[1];
// Remove everything after table
$content = preg_replace("/<\/table>.*$/si", "", $content);
// Spit rows
$rows = preg_split("/<\s*tr[^>]*>/i", $content);
// Remove the first element, which doesn't contain a row
// and the second element which contains the header
array_shift($rows);
array_shift($rows);
//
// Process each row
//
$data = array();
$rowcount = 0;
foreach ($rows as $row) {
$data[$rowcount] = array();
// Remove HTML comments
$row = preg_replace("/<!--.*?-->/s", "", $row);
// Convert to spaces
$row = preg_replace("/ /i", " ", $row);
// Split row to cells
$cells = preg_split("/<\s*td[^>]*>/i", $row);
// Remove first element, which doesn't contain a cell
array_shift($cells);
// Process each cell
$cellcount = 0;
foreach ($cells as $cell) {
// Convert <BR>'s to spaces
$cell = preg_replace("/<br>/i", " ", $cell);
// Remove HTML-tags
$cell = preg_replace("/<.*?>/s", "", $cell);
// Remove starting and trailing whitespace
$cell = ltrim(rtrim($cell));
// Remove multiple spaces
$cell = preg_replace('/\s\s+/', ' ', $cell);
// Store cell contents in $data[row][column]
$data[$rowcount][$cellcount] = $cell;
$cellcount++;
}
$rowcount++;
}
return $data;
}
// The URL of the page which contains the table to get the data from
$url = 'http://webiplan.kildarecoco.ie/publiciplan/Email/week.asp?SD=9/5/07&ED=16/5/07&AC=K';
// getTable($url) returns an array containing all data from the table:
// $data[row][column] (both start at zero)
//
// for example:
// $data[0][0] the data from the first cell from the first row
// $data[2][4] the fifth cell from the third row
//
// to get the last cell from the last row:
// $rows = count($data);
// $cols = count($data[0]);
// $lastcell = $data[$rows-1][$cols-1];
//
$data = getTable($url);
// Lets dump all the contents of $data to see what's in it
// Look at the source of the page!!!
var_dump($data);
?>
|
| |||||
| try this but change the field_name to suit your database and the insert statement plus you need to prepare the fields for the database. Just a rough example it will give something like this PHP Code: PHP Code: Last edited by louie; 10-06-2007 at 11:17 PM.. Reason: revised code |
| ||||
| Thank you so much, I did have to change the code abit to escape a few things and that but all works fine now. Your a life saver, I have about 5000+ records to log into the database and I will have 100 or so every week so I need a nice fast method to do so. Thanks a million. Yours Thankfully Ciaran Mc Cann |
| Tags |
| arrays, database, inserting, multidimensional, mysql, php |
| Thread Tools | |
| Display Modes | |
| |
| ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| calender script (php, mysql) | 7aken | Coding Help | 3 | 20-10-2006 06:57 AM |
| php, mysql & .asp from same laptop | alex | Server / Technical Administration Tips and Queries | 11 | 16-10-2006 06:01 PM |
| ||||
| | ![]() | |||
| | ||||