Jump to content

Variable Not Adding Values to Database?


Modernvox

Recommended Posts

The Variable is adding a blank value into database row sale_items?

I am using a regular expression to copy the email address to be stored in DB, But it inputs a blank value instead of the address?

 

 <?php

    function curlURL($url) { 
        $curl = curl_init(); 
        curl_setopt($curl, CURLOPT_URL, $url); 
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
        curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2'); 
        $output = curl_exec($curl); 
            return $output; 
    } 
     
   $curlResults = curlURL("http://southcoast.craigslist.org/sss/"); 
   $pattern = '#<a href="(/[a-z]{3}/\d{10}\.html)">#';
   preg_match_all( $pattern, $curlResults, $matches);

echo "<pre>\n";
echo "Links:\n\n";
foreach ($matches[1] as $link):
   echo "\t" . '<a href="' . $link . '" target="_BLANK">' . $link . '</a>' . "\n";
endforeach;
echo '</pre>';


echo file_get_contents("http://southcoast.craigslist.org".$link);
$pattern = '#<sale-\K[a-z0-9]+-\d+@craigslist\.org(?=>)#';  //This is the attempted match for the email
preg_match_all( $pattern, $link, $matches);
foreach ($matches[0] as $address):

$dbx= mysql_connect("localhost", "root", "");   //include before any database implematation
if (!$dbx)
{
die('Could not connect: ' . mysql_error());
}

mysql_SELECT_db("Craigslist", $dbx);
mysql_Query("INSERT INTO addresses (sale_items)
VALUES ('$address')");



mysql_close($dbx);
endforeach;
?> 

Link to comment
https://forums.phpfreaks.com/topic/179893-variable-not-adding-values-to-database/
Share on other sites

Well, not really an array.  My eyes are boggled from looking at this screen for too long.

 

Replace this:

 

foreach ($matches[0] as $address):

$dbx= mysql_connect("localhost", "root", "");   //include before any database implematation
if (!$dbx)
{
die('Could not connect: ' . mysql_error());
}

mysql_SELECT_db("Craigslist", $dbx);
mysql_Query("INSERT INTO addresses (sale_items)
VALUES ('$address')");



mysql_close($dbx);
endforeach;

 

with this for testing:

 

foreach ($matches[0] as $address):
echo $address . "<br>";

//$dbx= mysql_connect("localhost", "root", "");   //include before any database implematation
//if (!$dbx)
//{
//die('Could not connect: ' . mysql_error());
//}

//mysql_SELECT_db("Craigslist", $dbx);
//mysql_Query("INSERT INTO addresses (sale_items)
//VALUES ('$address')");



//mysql_close($dbx);
endforeach;

 

What I have provide will place the output to your screen.  Let me know if you see anything.

Well, not really an array.  My eyes are boggled from looking at this screen for too long.

 

Replace this:

 

foreach ($matches[0] as $address):

$dbx= mysql_connect("localhost", "root", "");   //include before any database implematation
if (!$dbx)
{
die('Could not connect: ' . mysql_error());
}

mysql_SELECT_db("Craigslist", $dbx);
mysql_Query("INSERT INTO addresses (sale_items)
VALUES ('$address')");



mysql_close($dbx);
endforeach;

 

with this for testing:

 

foreach ($matches[0] as $address):
echo $address . "<br>";

//$dbx= mysql_connect("localhost", "root", "");   //include before any database implematation
//if (!$dbx)
//{
//die('Could not connect: ' . mysql_error());
//}

//mysql_SELECT_db("Craigslist", $dbx);
//mysql_Query("INSERT INTO addresses (sale_items)
//VALUES ('$address')");



//mysql_close($dbx);
endforeach;

 

What I have provide will place the output to your screen.  Let me know if you see anything.

 

It displays the same exact results as before. It shows the links at the top and it shows the open page with the email address I want to copy into DB, But when I go to DB it just shows a blank row instead of the email address

Ya I got that too, I ran it locally.

 

Maybe it is just PHP being picky.  Try this:

 

foreach ($matches[0] as $address):
$dbx= mysql_connect("localhost", "root", "");   //include before any database implematation
if (!$dbx)
{
	die('Could not connect: ' . mysql_error());
}

mysql_select_db("Craigslist", $dbx);
mysql_query("INSERT INTO `addresses` (`sale_items`) VALUES ('$address')");

mysql_close($dbx);
endforeach;

 

I added some quotations to your query.  Also, speaking of something simple...double check your table name is correct as well as the column name.

Let's see if there is any errors.

 

Change this:

 

mysql_query("INSERT INTO `addresses` (`sale_items`) VALUES ('$address')");

 

to:

 

mysql_query("INSERT INTO `addresses` (`sale_items`) VALUES ('$address')") or mysql_error();

 

Let me know if there is an error.

Let's see if there is any errors.

 

Change this:

 

mysql_query("INSERT INTO `addresses` (`sale_items`) VALUES ('$address')");

 

to:

 

mysql_query("INSERT INTO `addresses` (`sale_items`) VALUES ('$address')") or mysql_error();

 

Let me know if there is an error.

 

Yeah Parse error: syntax error, unexpected T_ENDFOREACH in C:\xampp\htdocs\test5.php on line 38

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.