artfuldrone Posted October 3, 2006 Share Posted October 3, 2006 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. Quote Link to comment Share on other sites More sharing options...
michaellunsford Posted October 3, 2006 Share Posted October 3, 2006 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] Quote Link to comment Share on other sites More sharing options...
JustinK101 Posted October 3, 2006 Share Posted October 3, 2006 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. Quote Link to comment Share on other sites More sharing options...
JasonLewis Posted October 3, 2006 Share Posted October 3, 2006 you could just make a seperate table in sql for the tracks. then have say id, album_id, trackname.just another suggestion for you to ponder over... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.