Jump to content

Archived

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

JAnders1410

Help! I'm stuck!

Recommended Posts

Hi everyone! Below is a script that I have written to allow a user to imput song information into a database, but something is wrong with it. I'm new to PHP and this script is borrowed from a textbook that I've been using to teach myself. I have modified the script to fit my needs. Basically I think one of my data tests is not working since that is the error message I keep getting but I can't figure out how to resolve it. Any help that you can provide would be greatly appreciated! If you would like to see the script in action the address is [a href=\"http://www.college-rock.com/redhail/conrol/add_song.php\" target=\"_blank\"]www.college-rock.com/redhail/control/add_song.php[/a]

[code]1<?php # Script 12. 5 - add_song.php
2    // This page allows users to add URLs to the database.
3    
4    //Set the page title and include the HTML header.
5    $page_title = 'Add a Song';
6    include ('./includes/header.html');
7    
8    require_once('./php/mysql_connect.php'); //Connect to the database.
9    
10    if (isset($_POST['submitted'])) { // Handle the form
11    
12        // Check for Genre
13        if (isset($_POST['genre']) && (is_array($_POST['genre']))) {
14            $genre = TRUE;
15        } else {
16            $genre = FALSE;
17            echo '<p><font color="red">Please select at least one genre!</font></p>';
18        }
19        
20        // Check for a Composer Name.
21        if (!empty($_POST['composer'])) {
22            $c = escape_data($_POST['composer']);
23        } else {
24            $c = FALSE;
25            echo '<p><font color="red">Please enter the composer´s name!</font></p>';
26        }
27        
28        // Check for a Artist Name.
29        if (!empty($_POST['artist'])) {
30            $a = escape_data($_POST['artist']);
31        } else {
32            $a = FALSE;
33            echo '<p><font color="red">Please enter an artist´s name!</font></p>';
34        }
35        
36        // Check for a Album Name.
37        if (!empty($_POST['album'])) {
38            $r = escape_data($_POST['album']);
39        } else {
40            $r = FALSE;
41            echo '<p><font color="red">Please enter the album name or list as "Self Titled"!</font></p>';
42        }
43        
44        // Check for Song Title.
45        if (!empty($_POST['song'])) {
46            $s = escape_data($_POST['song']);
47        } else {
48            $s = FALSE;
49            echo '<p><font color="red">Please enter the title of the song!</font></p>';
50        }
51        
52        // Check for a BPM.
53        if (isset($_POST['BPM']) && (is_array($_POST['BPM']))) {
54            $BPM = TRUE;
55        } else {
56            $BPM = FALSE;
57            echo '<p><font color="red">Please select one BPM category!</font></p>';
58        }
59        
60        // Check for lyrics.
61        if (!empty($_POST['lyrics'])) {
62            $l = escape_data($_POST['lyrics']);
63        } else {
64            $l = FALSE;
65            echo '<p><font color="red">Please enter the lyrics of the song! If there are no lyrics please write "Instrumental".</font></p>';
66        }
67        
68        // Check for keywords.
69        if (!empty($_POST['keywords'])) {
70            $k = escape_data($_POST['keywords']);
71        } else {
72            $k = FALSE;
73            echo '<p><font color="red">Please enter the searchable keywords for the song! This will assist in more efficient searching for our customers.</font></p>';
74        }
75        
76        // Check for image.
77        if (!empty($_POST['image'])) {
78            $i = escape_data($_POST['image']);
79        } else {
80            $i = FALSE;
81            echo '<p><font color="red">Please enter the image file path of the song! All images should be uploaded seperately to the /art/ folder.</font></p>';
82        }
83        
84        // Check for Song File.
85        if (!empty($_POST['sound'])) {
86            $sound = escape_data($_POST['sound']);
87        } else {
88            $sound = FALSE;
89            echo '<p><font color="red">Please enter the song file path of the song! All song files should be uploaded sperately to the /sound/ folder.</font></p>';
90        }
91        if ($genre && $c && $a && $r && $s && $BMP && $l && $k && $i && $sound) { // If everything is Okay...
92        
93            // Add the Song to the Song table.
94            $query = "INSERT INTO song (genre, composer, artist, album, song, BPM, lyrics, keywords, image, sound) VALUES ('$genre', '$c', '$a', '$r', '$s', '$BMP', '$l', '$k', '$i', '$sound')";
95            $result = @mysql_query ($query);  // Run the query.
96            $uid = @mysql_insert_id(); // Get the song ID.
97            
98            if($uid > 0) { //New Song has been added.
99            
100                // Make the Song associations.
101                
102                // Build the query
103                $query = 'INSERT INTO song_associations (song_id, song_category_id, approved) VALUES ';
104                foreach ($_POST['types'] as $v) {
105                    $query .= "($uid, $v, 'Y'), ";
106                }
107                $query = substr ($query, 0, -2); //Chop off the last comma and space.
108                
109                $result = @mysql_query ($query); //Run the query
110                
111                if (mysql_affected_rows() == count($_POST['types'])) { //Query ran OK
112                
113                    echo '<p><b>This song has been successfully added!</p></b>';
114                    $_POST = array(); // Reset values
115                    
116                } else { // If second query did not run OK
117                
118                    echo '<p><font color="red">Your submission could not be processed due to a system error.  We apologize for any inconvenience. Either try again or contact John with the following error:</font></p>'; //Public message
119                    echo '<p><font color="red">' .mysql_error() . '<br /><br />Query: ' .$query .'</font></p>'; // Debugging Message
120            
121                    // Delete the URL from the urls table.
122                    $query = "DELETE FROM song WHERE song_id=$uid";
123                    @mysql_query ($query); //Run the query
124                    
125                } // End of mysql_affected_rows() If.
126                
127            } else { //If first query did not run OK
128                echo '<p><font color="red">Your submission could not be processed to a system error. We apologize for any inconvenience.</font></p>'; //Public Message
129                echo '<p><font color="red">' .mysql_error() . '<br /><br />Query: ' .$query . '</font></p>'; // Debugging message
130            }
131            
132        } else { // If one of the data tests failed.
133            echo '<p><font color="red">Please try again. A data test failed!</font></p>';
134        }
135        
136    } //End of the main submitted conditional.
137    // ---------------- DISPLAY THE FORM -------------------
138    ?>
139<style type="text/css">
140<!--
141.style1 {
142    font-size: medium;
143    font-weight: bold;
144}
145-->
146</style>
147
148
149
150    <form action="add_song.php" method="post">
151        <fieldset>
152        <legend class="style1">Add a song to Redhail Media Database:</legend>
153        <p><b>Genre:</b><br>
154                               
155          <select name="genre[]" multiple="multiple" size="5">
156           <?php // Create the pull-down menu information
157        $query = "SELECT * FROM genre ORDER BY genre ASC";
158        $result = @mysql_query ($query);
159        while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
160            echo "<option value=\"$row[0]\"";
161            // Make sticky, if necessary.
162            if (isset($_POST['types']) && (in_array($row[0], $_POST['types']))) {
163                echo ' selected="selected"';
164            }
165            echo ">$row[1]</option>\n";
166        }
167        ?>
168          </select>
169          <br>
170          <br>
171          <b>Composer Name(s): </b>
172          <input type="text" name="composer" size="60" maxlength="60" value="<?php if (isset($_POST['composer'])) echo $_POST['composer']; ?>" />
173        </p>
174        <p><b>Artist's Name:       </b>
175          <input type="text" name="artist" size="60" maxlength="60" value="<?php if (isset($_POST['artist'])) echo $_POST['artist']; ?>" />
176          <br />
177          <br>
178             <b>Album Name:        </b>             <input type="text" name="album" size="60" maxlength="60" value="<?php if (isset($_POST['album'])) echo $_POST['album']; ?>" />
179          <br>
180          <em>For albums with no name please list as "Self Titled" </em></p>
181        <p><b>Song Title:             </b>
182          <input type="text" name="song" size="60" maxlength="60" value="<?php if (isset($_POST['song'])) echo $_POST['song']; ?>" />
183        </p>
184        <p><b>BPM:                     </b>
185          <select name="BPM[]" size="2" multiple="multiple" id="BPM[]">
186            <?php // Create the pull-down menu information
187        $query = "SELECT * FROM BPM ORDER BY BPM ASC";
188        $result = @mysql_query ($query);
189        while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
190            echo "<option value=\"$row[0]\"";
191            // Make sticky, if necessary.
192            if (isset($_POST['types']) && (in_array($row[0], $_POST['types']))) {
193                echo ' selected="selected"';
194            }
195            echo ">$row[1]</option>\n";
196        }
197        ?>
198          </select>
199</p>
200        <b>Lyrics:                   </b>
201          <textarea name="lyrics" cols="40" rows="5"><?PHP if (isset($_POST['lyrics'])) echo $_POST ['lyrics']; ?>
202          </textarea>
203<br>
204        <em>For songs without lyrics please write "Instrumental"
205        </em>
206        <p><b>Keywords/Mood:  </b>          
207          <textarea type="text" name="keywords" cols="40" rows="5"><?PHP if (isset($_POST['keywords'])) echo $_POST ['keywords']; ?>
208          </textarea>
209        </p>
210        <p><b>HTML Image Path:  </b>
211              <input type="text" name="image" size="60" maxlength="60" value="<?php if (isset($_POST['image'])) echo $_POST['image']; ?>" />
212        
213          <br>
214              <em>Format like "/art/{Album Name Here}"
215</em></p>
216        <p><b>HTML Song Path:  </b>
217          <input type="text" name="sound" size="60" maxlength="60" value="<?php if (isset($_POST['sound'])) echo $_POST['sound']; ?>" />
218          <br>
219          <em>Format like "/sound/{Song Title Here}" </em>
220        </p>
221        </fieldset>
222        <input type="hidden" name="submitted" value="TRUE" />
223        
224        <div align="center"><input type="submit" name="submit" value="Submit" /></div>
225        
226</form>
227        <?php
228        mysql_close(); //Close the database connection.
229        include ('./includes/footer.html');
230        ?>[/code]

Share this post


Link to post
Share on other sites

×

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.