light87 Posted January 6, 2010 Share Posted January 6, 2010 Hello: I am trying to use a search form to search a Database. When I click on the submit button, I get the following error message: Parse error: syntax error, unexpected T_VARIABLE, expecting T_CASE or T_DEFAULT or '}' in /home/content/PRIVATE/html/riskyjobs_riskybusiness_Database_TableSetup_riskyjobs_Table_Chapter9_Page546_search_final.php on line 71 The php coding is as follows: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Risky Jobs - Search</title> <link rel="stylesheet" type="text/css" href="style_Page546_final.css" /> </head> <body> <img src="riskyjobs_title.gif" alt="Risky Jobs" /> <img src="riskyjobs_fireman.jpg" alt="Risky Jobs" style="float:right" /> <h3>Risky Jobs - Search Results</h3> <?php // 1,5,10 // Filename:C:,HeadFirst_PHP_MYSQL,Chapter9, // riskyjobs_riskybusiness_Database_TableSetup_riskyjobs_Table_Chapter9_Page546_search_final.php // This function builds a search query from the search keywords and sort setting function build_query($user_search, $sort) { $search_query = "SELECT * FROM riskyjobs"; // Extract the search keywords into an array $clean_search = str_replace(',', ' ', $user_search); $search_words = explode(' ', $clean_search); $final_search_words = array(); if (count($search_words) > 0) { foreach ($search_words as $word) { if (!empty($word)) { $final_search_words[] = $word; } } } // Generate a WHERE clause using all of the search keywords $where_list = array(); if (count($final_search_words) > 0) { foreach($final_search_words as $word) { $where_list[] = "description LIKE '%$word%'"; } } $where_clause = implode(' OR ', $where_list); // Add the keyword WHERE clause to the search query if (!empty($where_clause)) { $search_query .= " WHERE $where_clause"; } // Sort the search query using the sort setting switch ($sort) { // Ascending by job title case 1: $search_query .= " ORDER BY title"; break; // Descending by job title case 2: $search_query .= " ORDER BY title DESC"; break; // Ascending by state case 3: $search_query .= " ORDER BY state"; break; // Descending by state case 4: $search_query .= " ORDER BY state DESC"; break; // Ascending by date posted (oldest first) case 5: $search_query .= " ORDER BY date_posted"; break; // Descending by date posted (newest first) case 6: $search_query .= " ORDER BY date_posted DESC"; break; default: // No sort setting provided, so don't sort the query } return $search_query; } // INTERIM INTERIM INTERIM INTERIM // This function builds heading links based on the specified sort setting function generate_sort_links($user_search, $sort) { $sort_links = ''; switch ($sort) { case 1: $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=2">Job Title</a></td><td>Description</td>'; $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=3">State</a></td>'; $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=5">Date Posted</a></td>'; break; case 3: $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=1">Job Title</a></td><td>Description</td>'; $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=4">State</a></td>'; $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=5">Date Posted</a></td>'; break; case 5: $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=1">Job Title</a></td><td>Description</td>'; $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=3">State</a></td>'; $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=6">Date Posted</a></td>'; break; default: $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=1">Job Title</a></td><td>Description</td>'; $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=3">State</a></td>'; $sort_links .= '<td><a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=5">Date Posted</a></td>'; } return $sort_links; } // NEW STUFF PART 1 NEW STUFF PART 1 // Grab the sort setting and search keywords from the URL using GET $sort = $_GET['sort']; $user_search = $_GET['usersearch']; // Start generating the table of results echo '<table border="0" cellpadding="2">'; // Generate the search result headings echo '<tr class="heading">'; echo generate_sort_links($user_search, $sort); echo '</tr>'; // Connect to the database require_once('riskyjobs_riskybusiness_Database_TableSetup_riskyjobs_Table_Chapter9_Page546_connectvars_final.php'); $dbc = mysqli_connect('PRIVATE', 'PRIVATE', 'PRIVATE', 'PRIVATE'); // Query to get the total results $query = build_query($user_search, $sort); $result = mysqli_query($dbc, $query); // NEW STUFF PART 2 NEW STUFF PART 2 while ($row = mysqli_fetch_array($result)) { echo '<tr class="results">'; echo '<td valign="top" width="20%">' . $row['title'] . '</td>'; // changed $row['description'] . ' in the next line to substr($row['description'],0,100) . ' ... // on 12,31,09 echo '<td valign="top" width="50%">' . substr($row['description'],0,100) . ' ...</td>'; echo '<td valign="top" width="10%">' . $row['state'] . '</td>'; // changed $row['date_posted'] in the next line to substr($row['date_posted'],0,10) // on 12,31,09 echo '<td valign="top" width="20%">' . substr($row['date_posted'],0,10) . '</td>'; echo '</tr>'; } echo '</table>'; mysqli_close($dbc); ?> </body> </html> I would appreciate your help. Link to comment https://forums.phpfreaks.com/topic/187371-php-search-form-help/ Share on other sites More sharing options...
mrbuter Posted January 6, 2010 Share Posted January 6, 2010 Your cases are commented so php is getting confused Lines like " // Ascending by date posted (oldest first) case 5: " need to become // Ascending by date posted (oldest first) case 5: Link to comment https://forums.phpfreaks.com/topic/187371-php-search-form-help/#findComment-989436 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.