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

Link to comment
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.

 

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.