My problem is: I want to add multi rows in database (every website with its pagerank on different rows not all in one rows as in the first picture)!
I don’t know how to do that, i tried with explode but works only at the printing of the table from browser but now for the links that goes in database! Please help me!
In my database:

In my browser:

My entire code:
<?php
error_reporting(E_ALL & ~E_NOTICE);
function StrToNum($Str, $Check, $Magic)
{
$Int32Unit = 4294967296; // 2^32
$length = strlen($Str);
for ($i = 0; $i < $length; $i++) {
$Check *= $Magic;
if ($Check >= $Int32Unit) {
$Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
$Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
}
$Check += ord($Str{$i});
}
return $Check;
}
function CheckHash($Hashnum)
{
$CheckByte = 0;
$Flag = 0;
$HashStr = sprintf('%u', $Hashnum) ;
$length = strlen($HashStr);
for ($i = $length - 1; $i >= 0; $i --) {
$Re = $HashStr{$i};
if (1 === ($Flag % 2)) {
$Re += $Re;
$Re = (int)($Re / 10) + ($Re % 10);
}
$CheckByte += $Re;
$Flag ++;
}
$CheckByte %= 10;
if (0 !== $CheckByte) {
$CheckByte = 10 - $CheckByte;
if (1 === ($Flag % 2) ) {
if (1 === ($CheckByte % 2)) {
$CheckByte += 9;
}
$CheckByte >>= 1;
}
}
return '7'.$CheckByte.$HashStr;
}
function HashURL($String)
{
$Check1 = StrToNum($String, 0x1505, 0x21);
$Check2 = StrToNum($String, 0, 0x1003F);
$Check1 >>= 2;
$Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
$Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
$Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);
$T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F );
$T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 );
return ($T1 | $T2);
}
function getpagerank($url) {
$query="http://toolbarqueries.google.com/tbr?client=navclient-auto&ch=".CheckHash(HashURL($url)). "&features=Rank&q=info:".$url;
set_time_limit(0);
$data=file_get_contents($query);
$pos = strpos($data, "Rank_");
if($pos === false){} else{
$pagerank = substr($data, $pos + 9);
return $pagerank;
}
}
if($_POST['urls'])
{
?><table border="1">
<th>URL</th>
<th>Pagerank</th>
<?
$urls=trim($_POST['urls']);
$url=explode("\n",$urls);
foreach($url as $url)
{
if($url)
{
$url=trim($url);
$pagerank=getpagerank($url);
?>
<tr><td><?php echo $url; ?></td><td><?php echo $pagerank; ?></td></tr>
<?
//mysql_query("INSERT INTO projects2 (googlePR, Link)
//VALUES ('".$pagerank."','".$urls."') ") or die(mysql_error());
flush();
}
}
?></table><?
}
else
{
?><form action="" method="post">
URLS:<br /><textarea name="urls" cols="50" rows="10">Introduceti lista de linkuri aici</textarea><br /><input type="submit" value="Check PR & insert values"/>
</form>
<?
}
?>
<?php
$urls=trim($_POST['urls']);
$url=explode("\n",$urls);
foreach($url as $url) {
if($url)
{
$url=trim($url);
$pagerank=getpagerank($url);
mysql_query("INSERT INTO projects2 (googlePR, Link)
VALUES ('".$pagerank."','".$urls."') ") or die(mysql_error());
}
}
?>
The problem is in your foreach statement yo uare writing:
That will overwrite your $url array with the first value of the array since the variable names are the same. Then at the end of your loop when it tries to iterate to the next row, it is iterating against a non-array object. Just maybe change the name of the array create from teh explode to
$url_arrayor something similar and do