Jump to content

[SOLVED] Inserting an array into an SQL table


_DarkLink_

Recommended Posts

Hello, I would really appreciate if you guys would have a look at this piece of code.

 

<?php
if(isset($_POST['add'])) {

   $self = $_SERVER['PHP_SELF']; //the $self variable equals this file
   $ipaddress = ("$_SERVER[REMOTE_ADDR]"); //the $ipaddress var equals users IP

   //connect
   $connect = mysql_connect($host,$username,$password) or die('<p class="error">Unable to connect to the database server at this time.</p>');
   mysql_select_db($database,$connect) or die('<p class="error">Unable to connect to the database at this time.</p>');

   //fetch data
   $data = htmlspecialchars($_POST['list']);
   $comment =  mysql_real_escape_string($_POST['comment']);

   $data_lines = explode( "\r\n", $data );
   $comment_lines = explode("\r\n", $comment);

   for($i=0;$i<count($data_lines);$i++)
   {

      $data_fields = explode( ",", $data_lines[$i]);

      $time = time();
      $queryb = "INSERT INTO coords SET
        tag='{$data_fields[0]}',
        guild='{$data_fields[1]}',
        name='{$data_fields[2]}',
        base='{$data_fields[3]}',
        econ='{$data_fields[5]}',
        maxecon='{$data_fields[6]}',
        location='{$data_fields[4]}',
        comment='{$comment_lines[$i]}',
        ipaddress='$ipaddress' ,
        date='$time';";

      // if it succeeds, display message
      if (mysql_query($queryb))
      {
         echo('<p class="success">Successful posting of ['.$data_fields[3].']!</p>');
      }
      else
      {
         echo('<p class="error">Error could not post ['.$data_fields[3].'] to database!</p>');
      }
   }//end for loop
}//end if $_POST['add'] statement

?>

 

As you can see, it gets data received from a form's submission and explodes them into lines.

 

For $data, it explodes it again for each comma.

It then inserts everything for each comma, in a new column and for each line, on a new row.

 

Now for $comment, it should be inserting it on a new row for each line, which isn't doing it, it just inserts the whole comment into one single row.

Been looking and testing at it for a few days now.

 

The comment column is a varchar of 100 of length.

 

So basically, it does everything i need it to do except inserting $comment on a new row for every line.

 

Any help is appreciated.

Thank you in advance.

Link to comment
Share on other sites

$comment_lines = explode("\r\n", $comment);

 

insert a var_dump($comment_lines); after the line above.

 

What do you see? Does the explode work alright? It could be that the linebreak is different in the $comment... only \r only \n - quite a few things possible

Link to comment
Share on other sites

the mysql_real_escape_string breaks it, since it adds backslashes.

 

Try this:

 

$comment_lines = explode("\\r\\n", $comment);

 

if this won't work come back and I'll have a different solution too, but this one is easiest and most efficient.

 

 

 

Link to comment
Share on other sites

Oh my, it worked! I can't believe it, I have been wasting too much time on this little part of my project.

 

I don't know how I may thank you enough for this.

 

[EDIT]How do I thank someone?[EDIT]

 

Thank you for putting your time in this and helping me.

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.