Jump to content

Grabbing post values, then modifiying them


artfuldrone

Recommended Posts

Here's my situation: I am building a lyrics database for a project. I'm now working on a page where I can add albums. Firsty, I enter how many tracks are in the album, and from there I enter the songs.

What my problem is, is that I somehow need to grab all post values (eg. tracks) from the form, and modify them and insert the values into a MySQL query.

So if the album only had 4 songs, the query would look like this:

insert into albums_table (track1, track2, track3, track4) values('$_POST['track1']', '$_POST['track2']', '$_POST['track3']', '$_POST['track4']')

Of course if the next album had 12 songs the query would need to change.

I'd also like to add a few functions to the values like 'trim' and 'ucwords'.

As much help as possible will be greatly appreciated.
Link to comment
Share on other sites

There's always a better way, but this is how I would do it.

[code=php:0]
$query="INSERT INTO `albums_table` (";
do {
    $query.="`".key($_POST)."`,";
} while(next($_POST));
$query=substr($query,0,-1);
reset($_POST);
$query.=") VALUES (";
do {
    $query.="'".current($_POST)."',";
} while(next($_POST));
$query=substr($query,0,-1);
$query.=")";
mysql_query($query);
[/code]
Link to comment
Share on other sites

Well I would do it sloppy but the easy way, and much easier to read and debug, though significantly SLOWER. Put each track into an array.
[code]
for($i = 0; $i < count($tracks_array); $i++)
{
    $sql = "INSERT into albums_table (track" . $i . ") VALUES ('$track_array[$i]')";
    mysql_query($sql) OR die("Fatal Error: " . mysql_error() . "");
}
[/code]

Hopefully you see the slowdown here, I am doing a query for every track, which in your case probably should'nt matter, looping through this 15 or 20 times inst a big deal. Now a few hundred or thousand, I would'nt do the code I wrote above. For me though, the easy nature and easy reading makes the above my choice.
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.