PHP - Page Containing Php And Mysql Loading Slowly - Need Advice
Apologies if the title is quite vague, I suppose I am looking for some general advice on why some pages I write in PHP, which contain MySQL queries, might be running a bit slow. The following page takes up to 3 seconds to display:
<?php session_start(); include('admin/user.php'); $connection = mysql_connect("$host","$user","$password") or die(mysql_error()); mysql_select_db("$txt_db_name",$connection) or die(mysql_error()); $id = $_REQUEST['id']; // MATCH INFO $get_details = mysql_query(" SELECT MatchDateTime AS date, DATE_FORMAT(MatchDateTime, '%Y-%m-%d') AS formatdate FROM tplss_matches WHERE MatchID = '$id' LIMIT 1",$connection) or die(mysql_error()); $factsdata = mysql_fetch_array($get_details); mysql_free_result($get_details); $matchdate = $factsdata['date']; $matchdate2 = $factsdata['formatdate']; // -----------SHOW FACTS ABOUT THE STARTING LINEUP--------- echo" <h5>Appearances & Goals To Date</h5> <table width=100%>"; $get_starters = mysql_query(" SELECT P.PlayerID AS playerid, CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerNationID AS nation, P.PlayerPositionID as pos FROM tplss_players P, tplss_appearances A WHERE A.AppearancePlayerID = P.PlayerID AND A.AppearanceMatchID = '$id' ORDER BY P.PlayerPositionID ASC ",$connection) or die(mysql_error()); $get_subbies = mysql_query(" SELECT P.PlayerID AS playerid, CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerNationID AS nation, P.PlayerPositionID as pos FROM tplss_players P, tplss_substitutions S WHERE S.SubstitutionPlayerIDIn = P.PlayerID AND S.SubstitutionMatchID = '$id' ORDER BY P.PlayerPositionID ASC ",$connection) or die(mysql_error()); while($combstarters = mysql_fetch_array($get_starters)) { echo"<tr>"; echo"<td><a href=\"player.php?id=$combstarters[playerid]\">$combstarters[name]</a>"; if($combstarters['pos'] == 1) { echo" (GK)"; } echo"</td>"; $combpid = $combstarters['playerid']; echo" <td align=\"left\" style=\"vertical-align: middle;\"> <img src=\"images/flag_$combstarters[nation].jpg\" border=1> </td> "; $get_comb_apps = mysql_query("SELECT COUNT(A.AppearancePlayerID) AS apps FROM tplss_appearances A, tplss_matches M WHERE A.AppearancePlayerID = '$combpid' AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' ",$connection) or die(mysql_error()); $get_comb_ins = mysql_query("SELECT COUNT(S.SubstitutionPlayerIDIn) AS ins FROM tplss_substitutions S, tplss_matches M WHERE S.SubstitutionPlayerIDIn = '$combpid' AND S.SubstitutionMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' ",$connection) or die(mysql_error()); while($combdata = mysql_fetch_array($get_comb_apps)) { while($idata = mysql_fetch_array($get_comb_ins)) { $totalapps = $combdata['apps'] + $idata['ins']; if($totalapps == 1) { echo"<td>$totalapps app (debut)</td>"; } else { echo"<td>$totalapps apps</td>"; } } mysql_free_result($get_comb_ins); } mysql_free_result($get_comb_apps); $get_goals_all = mysql_query(" SELECT COUNT(G.GoalPlayerID) AS total_goals FROM tplss_goals G, tplss_matches M WHERE G.GoalPlayerID = '$combpid' AND G.GoalMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' AND G.GoalOwn != 1 GROUP BY G.GoalPlayerID ",$connection) or die(mysql_error()); if(mysql_num_rows($get_goals_all) == 0) { echo"<td> - </td>"; } while($combgoals = mysql_fetch_array($get_goals_all)) { if($combgoals['total_goals'] == 1) { echo"<td>$combgoals[total_goals] goal</td>"; } else { echo"<td>$combgoals[total_goals] goals</td>"; } } mysql_free_result($get_goals_all); echo"</tr>"; } while($combsubbies = mysql_fetch_array($get_subbies)) { echo"<tr>"; echo"<td><a href=\"player.php?id=$combsubbies[playerid]\">$combsubbies[name]</a> (sub)"; if($combsubbies['pos'] == 1) { echo" (GK)"; } echo"</td>"; $combpid = $combsubbies['playerid']; echo" <td align=\"left\" style=\"vertical-align: middle;\"> <img src=\"images/flag_$combsubbies[nation].jpg\" border=1> </td> "; $get_comb_apps = mysql_query("SELECT COUNT(A.AppearancePlayerID) AS apps FROM tplss_appearances A, tplss_matches M WHERE A.AppearancePlayerID = '$combpid' AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' ",$connection) or die(mysql_error()); $get_comb_ins = mysql_query("SELECT COUNT(S.SubstitutionPlayerIDIn) AS ins FROM tplss_substitutions S, tplss_matches M WHERE S.SubstitutionPlayerIDIn = '$combpid' AND S.SubstitutionMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' ",$connection) or die(mysql_error()); while($combdata = mysql_fetch_array($get_comb_apps)) { while($idata = mysql_fetch_array($get_comb_ins)) { $totalapps = $combdata['apps'] + $idata['ins']; if($totalapps == 1) { echo"<td>$totalapps app (debut)</td>"; } else { echo"<td>$totalapps apps</td>"; } } mysql_free_result($get_comb_ins); } mysql_free_result($get_comb_apps); $get_goals_all = mysql_query(" SELECT COUNT(G.GoalPlayerID) AS total_goals FROM tplss_goals G, tplss_matches M WHERE G.GoalPlayerID = '$combpid' AND G.GoalMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' AND G.GoalOwn != 1 GROUP BY G.GoalPlayerID ",$connection) or die(mysql_error()); if(mysql_num_rows($get_goals_all) == 0) { echo"<td> - </td>"; } while($combgoals = mysql_fetch_array($get_goals_all)) { if($combgoals['total_goals'] == 1) { echo"<td>$combgoals[total_goals] goal</td>"; } else { echo"<td>$combgoals[total_goals] goals</td>"; } } mysql_free_result($get_goals_all); echo"</tr>"; } echo"</table>"; // -----------SHOW FACTS ABOUT THE STARTING LINEUP--------- echo"<br> <h5>Starting Lineup</h5> <table width=100%>"; // GET YOUNGEST PLAYER IN STARTING LINEUP $get_youngest_player = mysql_query(" SELECT P.PlayerDOB AS dob, DATE_FORMAT(P.PlayerDOB, '%d/%m/%Y') AS birth, CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerID AS id FROM tplss_players P, tplss_appearances A, tplss_matches M WHERE P.PlayerID = A.AppearancePlayerID AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime = '$matchdate' ORDER BY dob DESC LIMIT 0,1 ",$connection) or die(mysql_error()); while($youngest = mysql_fetch_array($get_youngest_player)) { echo"<tr>"; $dob = $youngest['dob']; echo"<td width=30%>Youngest Player:</td><td width=70%><a href=\"player.php?id=$youngest[id]\">$youngest[name]</a> ("; $now = strtotime("$matchdate"); $your_date = strtotime("$dob"); $datediff_days = $now - $your_date; $datediff_years = ($now - $your_date) / 365; $days = floor($datediff_days/(60*60*24)); $years = floor($datediff_years/(60*60*24)); $remainder = floor($datediff_days/(60*60*24)) - (floor($datediff_years/(60*60*24)) * 365); echo"$years years $remainder days)</td> </tr> "; } mysql_free_result($get_youngest_player); // GET OLDEST PLAYER IN STARTING LINEUP $get_oldest_player = mysql_query(" SELECT P.PlayerDOB AS dob, DATE_FORMAT(P.PlayerDOB, '%d/%m/%Y') AS birth, CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerID AS id FROM tplss_players P, tplss_appearances A, tplss_matches M WHERE P.PlayerID = A.AppearancePlayerID AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime = '$matchdate' ORDER BY dob ASC LIMIT 0,1 ",$connection) or die(mysql_error()); while($oldest = mysql_fetch_array($get_oldest_player)) { echo"<tr>"; $dob = $oldest['dob']; echo"<td width=30%>Oldest Player:</td><td width=70%><a href=\"player.php?id=$oldest[id]\">$oldest[name]</a> ("; $now = strtotime("$matchdate"); $your_date = strtotime("$dob"); $datediff_days = $now - $your_date; $datediff_years = ($now - $your_date) / 365; $days = floor($datediff_days/(60*60*24)); $years = floor($datediff_years/(60*60*24)); $remainder = floor($datediff_days/(60*60*24)) - (floor($datediff_years/(60*60*24)) * 365); echo"$years years $remainder days)</td>"; echo"</tr>"; } mysql_free_result($get_oldest_player); // GET AVERAGE DOB OF STARTING XI $get_average_dob = mysql_query(" SELECT FROM_DAYS(AVG(TO_DAYS(P.PlayerDOB))) AS dob FROM tplss_players P, tplss_appearances A, tplss_matches M WHERE P.PlayerID = A.AppearancePlayerID AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime = '$matchdate' ",$connection) or die(mysql_error()); while($average = mysql_fetch_array($get_average_dob)) { echo"<tr>"; $dob = $average['dob']; $now = strtotime("$matchdate"); $your_date = strtotime("$dob"); $datediff_days = $now - $your_date; $datediff_years = $datediff_days / 365; $days = floor($datediff_days/(60*60*24)); $years = floor($datediff_years/(60*60*24)); $remainder = floor($datediff_days/(60*60*24)) - (floor($datediff_years/(60*60*24)) * 365); echo"<td width=30%>Average Player Age:</td><td width=70%>$years years $remainder days</td>"; echo"</tr>"; } mysql_free_result($get_average_dob); $get_players = mysql_query(" SELECT COUNT(P.PlayerID) AS players FROM tplss_players P, tplss_appearances A, tplss_matches M WHERE P.PlayerID = A.AppearancePlayerID AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime = '$matchdate' GROUP BY M.MatchID ",$connection) or die(mysql_error()); $get_scots = mysql_query(" SELECT COUNT(P.PlayerID) AS scots FROM tplss_players P, tplss_appearances A, tplss_matches M WHERE P.PlayerID = A.AppearancePlayerID AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime = '$matchdate' AND P.PlayerNationID = 1 GROUP BY M.MatchID ",$connection) or die(mysql_error()); while($players = mysql_fetch_array($get_players)) { echo"<tr>"; while($scots = mysql_fetch_array($get_scots)) { $average = ($scots['scots'] / $players['players']) * 100; $average = number_format((float)$average, 2, '.', ''); echo"<td width=30%>Domestic Players:</td><td width=70%>$scots[scots] ($average % of starting eleven)</td>"; } echo"</tr>"; } mysql_free_result($get_players); echo"</table>"; ?> <? // -----------SHOW FACTS ABOUT THE MATCHDAY SQUAD-------------- echo"<br> <h5>Matchday Squad</h5> <table width=100%> "; // GET YOUNGEST PLAYER IN SQUAD $get_youngest_player_all = mysql_query(" SELECT P.PlayerDOB AS dob, CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerID AS id FROM tplss_players P INNER JOIN ( SELECT AppearancePlayerID as PlayerID , AppearanceMatchID as MatchID FROM tplss_appearances UNION SELECT SubstitutePlayerID as PlayerID , SubstituteMatchID as MatchID FROM tplss_substitutes ) as total USING (PlayerID) INNER JOIN tplss_matches M USING (MatchID) WHERE M.MatchDateTime = '$matchdate' ORDER BY dob DESC LIMIT 0,1 ",$connection) or die(mysql_error()); while($youngest_all = mysql_fetch_array($get_youngest_player_all)) { echo"<tr>"; $dob = $youngest_all['dob']; echo"<td width=30%>Youngest Player:</td><td width=70%><a href=\"player.php?id=$youngest_all[id]\">$youngest_all[name]</a> ("; $now = strtotime("$matchdate"); $your_date = strtotime("$dob"); $datediff_days = $now - $your_date; $datediff_years = ($now - $your_date) / 365; $days = floor($datediff_days/(60*60*24)); $years = floor($datediff_years/(60*60*24)); $remainder = floor($datediff_days/(60*60*24)) - (floor($datediff_years/(60*60*24)) * 365); echo"$years years $remainder days)</td>"; echo"</tr>"; } // GET OLDEST PLAYER IN SQUAD $get_oldest_player_all = mysql_query(" SELECT P.PlayerDOB AS dob, CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerID AS id FROM tplss_players P INNER JOIN ( SELECT AppearancePlayerID as PlayerID , AppearanceMatchID as MatchID FROM tplss_appearances UNION SELECT SubstitutePlayerID as PlayerID , SubstituteMatchID as MatchID FROM tplss_substitutes ) as total USING (PlayerID) INNER JOIN tplss_matches M USING (MatchID) WHERE M.MatchDateTime = '$matchdate' ORDER BY dob ASC LIMIT 0,1 ",$connection) or die(mysql_error()); while($oldest_all = mysql_fetch_array($get_oldest_player_all)) { echo"<tr>"; $dob = $oldest_all['dob']; echo"<td width=30%>Oldest Player:</td><td width=70%><a href=\"player.php?id=$oldest_all[id]\">$oldest_all[name]</a> ("; $now = strtotime("$matchdate"); $your_date = strtotime("$dob"); $datediff_days = $now - $your_date; $datediff_years = ($now - $your_date) / 365; $days = floor($datediff_days/(60*60*24)); $years = floor($datediff_years/(60*60*24)); $remainder = floor($datediff_days/(60*60*24)) - (floor($datediff_years/(60*60*24)) * 365); echo"$years years $remainder days)</td>"; echo"</tr>"; } // GET AVERAGE DOB OF WHOLE SQUAD $get_average_dob_all = mysql_query(" SELECT FROM_DAYS(AVG(TO_DAYS(P.PlayerDOB))) AS dob FROM tplss_players P INNER JOIN ( SELECT AppearancePlayerID as PlayerID , AppearanceMatchID as MatchID FROM tplss_appearances UNION SELECT SubstitutePlayerID as PlayerID , SubstituteMatchID as MatchID FROM tplss_substitutes ) as total USING (PlayerID) INNER JOIN tplss_matches M USING (MatchID) WHERE M.MatchDateTime = '$matchdate' ",$connection) or die(mysql_error()); while($average_all = mysql_fetch_array($get_average_dob_all)) { echo"<tr>"; $dob = $average_all['dob']; $now = strtotime("$matchdate"); $your_date = strtotime("$dob"); $datediff_days = $now - $your_date; $datediff_years = ($now - $your_date) / 365; $days = floor($datediff_days/(60*60*24)); $years = floor($datediff_years/(60*60*24)); $remainder = floor($datediff_days/(60*60*24)) - (floor($datediff_years/(60*60*24)) * 365); echo"<td width=30%>Average Player Age:</td><td width=70%>$years years $remainder days</td>"; echo"</tr>"; } $get_players_all = mysql_query(" SELECT COUNT(P.PlayerID) AS allplayers FROM tplss_players P INNER JOIN ( SELECT AppearancePlayerID as PlayerID , AppearanceMatchID as MatchID FROM tplss_appearances UNION SELECT SubstitutePlayerID as PlayerID , SubstituteMatchID as MatchID FROM tplss_substitutes ) as total USING (PlayerID) INNER JOIN tplss_matches M USING (MatchID) WHERE M.MatchDateTime = '$matchdate' GROUP BY M.MatchID ",$connection) or die(mysql_error()); $get_scots_all = mysql_query(" SELECT COUNT(P.PlayerID) AS scots FROM tplss_players P INNER JOIN ( SELECT AppearancePlayerID as PlayerID , AppearanceMatchID as MatchID FROM tplss_appearances UNION SELECT SubstitutePlayerID as PlayerID , SubstituteMatchID as MatchID FROM tplss_substitutes ) as total USING (PlayerID) INNER JOIN tplss_matches M USING (MatchID) WHERE M.MatchDateTime = '$matchdate' AND P.PlayerNationID = 1 GROUP BY M.MatchID ",$connection) or die(mysql_error()); while($players_all = mysql_fetch_array($get_players_all)) { while($scots_all = mysql_fetch_array($get_scots_all)) { echo"<tr>"; $average = ($scots_all['scots'] / $players_all['allplayers']) * 100; $average = number_format((float)$average, 2, '.', ''); echo"<td width=30%>Domestic Players:</td><td width=70%>$scots_all[scots] ($average % of matchday squad)</td>"; echo"</tr>"; } } echo"</table>"; ?> <? //--------------CHECK FOR ANY DEBUTS---------------- // GET STARTING XI FOR DEBUTS $get_debuts = mysql_query(" SELECT CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerID AS id, DATE_FORMAT(P.PlayerSigned, '%M %D, %Y') AS signed FROM tplss_players P, tplss_appearances A WHERE A.AppearanceMatchID = '$id' AND P.PlayerID = A.AppearancePlayerID ORDER BY name",$connection); // GET SUBS FOR DEBUTS $get_sub_debuts = mysql_query(" SELECT CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerID AS id, DATE_FORMAT(P.PlayerSigned, '%M %D, %Y') AS signed FROM tplss_players P, tplss_substitutions S WHERE S.SubstitutionMatchID = '$id' AND P.PlayerID = S.SubstitutionPlayerIDIn ORDER BY name",$connection); echo"<br><h5>First Team Debuts</h5> <table width=100%>"; // SHOW ANY DEBUTS FOR PLAYERS IN STARTING XI while($appdata = mysql_fetch_array($get_debuts)) { $appplayerid = $appdata['id']; $get_starts = mysql_query(" SELECT COUNT(A.AppearancePlayerID) AS total FROM tplss_appearances A, tplss_matches M WHERE A.AppearancePlayerID = $appplayerid AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' GROUP BY A.AppearancePlayerID ",$connection) or die(mysql_error()); $starts = mysql_fetch_array($get_starts); $get_subst = mysql_query(" SELECT COUNT(S.SubstitutionPlayerIDIn) AS total FROM tplss_substitutions S, tplss_matches M WHERE S.SubstitutionPlayerIDIn = $appplayerid AND S.SubstitutionMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' GROUP BY S.SubstitutionPlayerIDIn ",$connection) or die(mysql_error()); $subst = mysql_fetch_array($get_subst); $total_apps = $starts['total'] + $subst['total']; $head_url = "images/heads/" . $appplayerid . ".jpg"; if($total_apps == 1) { echo"<tr> <td width=20%> <img src=\""; if(file_exists($head_url)) { echo"images/heads/$appplayerid.jpg"; } else { echo"images/heads/none.jpg"; } echo"\" width=\"50\" style=\"border:0px solid; border-radius:25px;\"> </td> <td width=40%><a href=\"player.php?id=$appplayerid\">$appdata[name]</a></td><td width=40%>(Signed $appdata[signed])</td>"; } else { echo""; } } mysql_free_result($get_debuts); // SHOW ANY DEBUTS FOR PLAYERS COMING OFF BENCH while($appdatas = mysql_fetch_array($get_sub_debuts)) { $appplayerid = $appdatas['id']; $get_starts = mysql_query(" SELECT COUNT(A.AppearancePlayerID) AS total FROM tplss_appearances A, tplss_matches M WHERE A.AppearancePlayerID = $appplayerid AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' GROUP BY A.AppearancePlayerID ",$connection) or die(mysql_error()); $starts = mysql_fetch_array($get_starts); $get_subst = mysql_query(" SELECT COUNT(S.SubstitutionPlayerIDIn) AS total FROM tplss_substitutions S, tplss_matches M WHERE S.SubstitutionPlayerIDIn = $appplayerid AND S.SubstitutionMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' GROUP BY S.SubstitutionPlayerIDIn ",$connection) or die(mysql_error()); $subst = mysql_fetch_array($get_subst); $total_apps = $starts['total'] + $subst['total']; $head_url = "images/heads/" . $appplayerid . ".jpg"; if($total_apps == 1) { echo"<tr> <td width=20%> <img src=\""; if(file_exists($head_url)) { echo"images/heads/$appplayerid.jpg"; } else { echo"images/heads/none.jpg"; } echo"\" width=\"50\" style=\"border:0px solid; border-radius:25px;\"> </td> <td width=40%><a href=\"player.php?id=$appplayerid\">$appdatas[name]</a></td><td width=40%>(Signed $appdatas[signed])</td>"; } else { echo""; } } mysql_free_result($get_sub_debuts); echo"</table>"; ?> <?php // --------------------CHECK FOR ANY MILESTONES---------------- // GET STARTING XI FOR MILESTONES $get_milestones = mysql_query(" SELECT CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerID AS id FROM tplss_players P, tplss_appearances A WHERE A.AppearanceMatchID = '$id' AND P.PlayerID = A.AppearancePlayerID ORDER BY name",$connection); // GET SUBS FOR MILESTONES $get_sub_milestones = mysql_query(" SELECT CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerID AS id FROM tplss_players P, tplss_substitutions S WHERE S.SubstitutionMatchID = '$id' AND P.PlayerID = S.SubstitutionPlayerIDIn ORDER BY name",$connection); // GET SCORERS FOR GOAL CHECKS $get_goals = mysql_query(" SELECT CONCAT(P.PlayerFirstName, ' ', P.PlayerLastName) AS name, P.PlayerID AS id FROM tplss_players P, tplss_goals G WHERE G.GoalMatchID = '$id' AND P.PlayerID = G.GoalPlayerID AND G.GoalOwn != 1 ORDER BY name",$connection); echo"<Br><h5>Milestones</h5> <table width=100%>"; // SHOW MILESTONES FOR STARTING XI while($appdatam = mysql_fetch_array($get_milestones)) { $appplayerid = $appdatam['id']; $get_starts = mysql_query(" SELECT COUNT(A.AppearancePlayerID) AS total FROM tplss_appearances A, tplss_matches M WHERE A.AppearancePlayerID = $appplayerid AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' GROUP BY A.AppearancePlayerID ",$connection) or die(mysql_error()); $starts = mysql_fetch_array($get_starts); $get_subst = mysql_query(" SELECT COUNT(S.SubstitutionPlayerIDIn) AS total FROM tplss_substitutions S, tplss_matches M WHERE S.SubstitutionPlayerIDIn = $appplayerid AND S.SubstitutionMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' GROUP BY S.SubstitutionPlayerIDIn ",$connection) or die(mysql_error()); $subst = mysql_fetch_array($get_subst); $total_apps = $starts['total'] + $subst['total']; echo""; if($total_apps == '50') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatam[name]</a> played his 50th major competitive game for the Club.</td></tr>"; } elseif($total_apps == '100') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatam[name]</a> played his 100th major competitive game for the Club.</td></tr>"; } elseif($total_apps == '200') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatam[name]</a> made his 200th competitive appearance for the Club.</td></tr>"; } elseif($total_apps == '250') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatam[name]</a> played his 250th major competitive game for the Club.</td></tr>"; } elseif($total_apps == '300') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatam[name]</a> made his 300th competitive appearance for the Club.</td></tr>"; } elseif($total_apps == '400') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatam[name]</a> played his 400th major competitive game for the Club.</td></tr>"; } elseif($total_apps == '500') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatam[name]</a> made his 500th competitive appearance for the Club.</td></tr>"; } else { echo""; } echo""; } mysql_free_result($get_milestones); // SHOW MILESTONES FOR SUBS while($appdatams = mysql_fetch_array($get_sub_milestones)) { $appplayerid = $appdatams['id']; $get_starts = mysql_query(" SELECT COUNT(A.AppearancePlayerID) AS total FROM tplss_appearances A, tplss_matches M WHERE A.AppearancePlayerID = $appplayerid AND A.AppearanceMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' GROUP BY A.AppearancePlayerID ",$connection) or die(mysql_error()); $starts = mysql_fetch_array($get_starts); $get_subst = mysql_query(" SELECT COUNT(S.SubstitutionPlayerIDIn) AS total FROM tplss_substitutions S, tplss_matches M WHERE S.SubstitutionPlayerIDIn = $appplayerid AND S.SubstitutionMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' GROUP BY S.SubstitutionPlayerIDIn ",$connection) or die(mysql_error()); $subst = mysql_fetch_array($get_subst); $total_apps = $starts['total'] + $subst['total']; if($total_apps == '50') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatams[name]</a> played his 50th major competitive game for the Club.</td></tr>"; } elseif($total_apps == '100') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatams[name]</a> played his 100th major competitive game for the Club.</td></tr>"; } elseif($total_apps == '200') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatams[name]</a> made his 200th competitive appearance for the Club.</td></tr>"; } elseif($total_apps == '250') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatams[name]</a> played his 250th major competitive game for the Club.</td></tr>"; } elseif($total_apps == '300') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatams[name]</a> made his 300th competitive appearance for the Club.</td></tr>"; } elseif($total_apps == '400') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatams[name]</a> played his 400th major competitive game for the Club.</td></tr>"; } elseif($total_apps == '500') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$appdatams[name]</a> made his 500th competitive appearance for the Club.</td></tr>"; } else { echo""; } } mysql_free_result($get_sub_milestones); // SHOW MILESTONES FOR STARTING XI while($goaldata = mysql_fetch_array($get_goals)) { $appplayerid = $goaldata['id']; $get_goal_totals = mysql_query(" SELECT COUNT(G.GoalPlayerID) AS total FROM tplss_goals G, tplss_matches M WHERE G.GoalPlayerID = $appplayerid AND G.GoalMatchID = M.MatchID AND M.MatchDateTime <= '$matchdate' GROUP BY G.GoalPlayerID ",$connection) or die(mysql_error()); $goals = mysql_fetch_array($get_goal_totals); $total_goals = $goals['total']; if($total_goals == '1') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$goaldata[name]</a> scored his first goal for the Club.</td></tr>"; } elseif($total_goals == '10') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$goaldata[name]</a> reached 10 goals for the Club.</td></tr>"; } elseif($total_goals == '25') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$goaldata[name]</a> scored for the 25th time for the Club.</td></tr>"; } elseif($total_goals == '30') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$goaldata[name]</a> reached 30 goals for the Club.</td></tr>"; } elseif($total_goals == '50') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$goaldata[name]</a> scored his 50th goal for the Club.</td></tr>"; } elseif($total_goals == '75') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$goaldata[name]</a> reached 75 goals for the Club.</td></tr>"; } elseif($total_goals == '100') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$goaldata[name]</a> scored his 100th goal for the Club.</td></tr>"; } elseif($total_goals == '200') { echo"<tr><td width=100%><a href=\"player.php?id=$appplayerid\">$goaldata[name]</a> scored his 200th goal for the Club.</td></tr>"; } else { echo""; } } echo"</table>"; mysql_free_result($get_goals); ?> <hr>Any suggestions or general advice would be greatly appreciated. Similar TutorialsI have a php tutorial that I followed for creating, inserting, selecting and updating a MySQL database with php. Everything works fine so I wanted to put it into Wordpress. I took the code and placed it into the wordpress page and everything worked just fine except the update function. Here is the tutorial I used. http://www.phpsimple.net/mysql_insert_record.html It is also the part I am having trouble with. I am able to create a record and I am also able to select a record but when I choose "update" the form doesn't load the data. It will outside the website but not inside wordpress. I am hoping this is not vague but because of my inexperience I am not sure what else to say. I will be more than happy to provide any other information you need. For obvious reasons, I wouldn't want any links to these sites or resources in this thread. I'd like some advice on where to find *modern* hacking techniques used against php and mysql. I'd prefer some info on PM so that not everybody is exposed to such sites - even suggested queries for google because I'm having a hard time finding reliable information. Also, does anybody have any advice on security books for say network (apache), php, mysql? I doubt I'll get a pm so if I do, I'll donate $20 to charity today! lol I am creating a site to display some products. For ease of updating I want it to run off a MySQL database. I have created the database and php scripts to output and input data etc. I know want to show that data in my web pages. My question is.... Is it best to insert HTML into the php output script to display the information and make the site look how I want....OR ....... should I create a template of the site in HTML and then somehow call the php output script (and the particular row of the database...) Basically... should I put the html code into the php - OR - put the php into the HTML?? I hope this make sense...... thanks Hi there I have a problem here, I think I may know what it is but just wanted some guidance on this issue. I took the logic from a previous help from the people on this forum and here is my landing page: <?php // ini_set("display_errors", 1); // randomly starts a session! session_name("jeremyBasicLogin"); session_start(); if(isset($_SESSION['username'])) { // display whatever when the user is logged in: echo <<<ADDENTRY <html> <head> <title>User is now signed in:<title> </head> <body> <h1>You are now signed in!</h1> <p>You can do now what you want to do!</p> </body> </html> ADDENTRY; } else { // If anything else dont allow access and send back to original page! header("location: signin.php"); } ?> This is where the user goes to when they go to this system (not a functional system, ie it doesnt actually do anything its more for my own theory. As you wont have a session on the first turn to this page it goes to: signin.php which contains: <?php // ini_set("display_errors", 1); require_once('func.db.connect.php'); if(array_key_exists('submit',$_POST)) { dbConnect(); // connect to database anyways! // Do a procedure to log the user in: // Santize User Inputs $username = trim(stripslashes(mysql_real_escape_string($_POST['username']))); // cleans up with PHP first! $password = trim(stripslashes(mysql_real_escape_string(md5($_POST['password'])))); // cleans up with PHP first! $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'"; $result = mysql_query($sql); if(mysql_num_rows($result) == 1) { session_name("jeremyBasicLogin"); session_start(); $_SESSION['is_logged_in'] = true; $_SESSION['username'] = $username; //print_r($_SESSION); // debug purposes only! $_SESSION['time_loggedin'] = time(); // this is adding to the array (have seen the output in the SESSION vars! // call function to update the time stamp in MySQL? header("location: index.php"); } else if(mysql_num_rows($result) != 1) { $message = "You typed the wrong password or Username Please retry!"; } } else { $message = ""; } // displays the login page: echo <<<LOGIN <html> <body> <h1>Example Login</h1> <form id="login" name="login" action="{$_SERVER['PHP_SELF']}" method="post"> <label for="username">Username: </label><input type="text" id="username" name="username" value="" /><br> <label for="password">Password: </label><input type="text" id="password" name="password" value="" /><br> <input type="submit" id="submit" name="submit" value="Login" /> </form> LOGIN; echo "<p>" . $message . "</p>"; echo <<<LOGIN <p>Please Login to View and Edit Your Entries</p> <p><a href="register.php">Click Here To Signup</a><p> </body> </html> LOGIN; ?> This checks through user inputs and hopefully logs them in, when Ive inserted the data into the database itself it works, if I try and login but if a user fills in this form: signup.php: <?php //ini_set("display_errors", 1); $message =''; require_once('func.db.connect.php'); if(array_key_exists('submit',$_POST)) { dbConnect(); // connect to database anyways! // do some safe protecting of the users variables, apply it to all details! $username = trim(stripslashes(mysql_real_escape_string($_POST['username']))); // cleans up with PHP first! $email = trim(stripslashes(mysql_real_escape_string($_POST['email']))); // cleans up with PHP first! $password = trim(stripslashes(mysql_real_escape_string(md5($_POST['password'])))); // does as above but also encrypts it using the md5 function! $password2 = trim(stripslashes(mysql_real_escape_string(md5($_POST['password2'])))); // does as above but also encrypts it using the md5 function! if($username != '' && $email != '' && $password != '' && $password2 != '') { // do whatever when not = to nothing/empty fields! if($password === $password2) { // do database stuff to enter users details $sql = "INSERT INTO `test`.`users` (`id` ,`username` ,`password`) VALUES ('' , '$username', MD5( '$password' ));"; $result = mysql_query($sql); if($result) { $message = 'You may now login by clicking <a href="index.php">here</a>'; } } else { // echo out a user message says they got their 2 passwords incorrectly typed: $message = 'Pleae re enter your password'; } } else { // they where obviously where empty $message = 'You missed out some required fields, please try again'; } } echo <<<REGISTER <html> <body> <h1>Register Form</h1> <p>Please fill in this form to register</p> <form id="register" name="register" action="{$_SERVER['PHP_SELF']}" method="post"> <table> <tr> <td><label for="username">Username: </label></td> <td><input type="text" id="username" name="username" value="" /></td> </tr> <tr> <td><label for="email">Email: </label></td> <td><input type="text" id="email" name="email" value="" /></td> </tr> <tr> <td><label for="password">Password: </label></td> <td><input type="text" id="password" name="password" value="" /></td> </tr> <tr> <td><label for="password">Confirm Password: </label></td> <td><input type="text" id="password2" name="password2" value="" /></td> </tr> <tr> <td><input type="submit" id="submit" name="submit" value="Register" /></td> </tr> <table> REGISTER; echo "<p>" . $message . "</p>"; echo <<<REGISTER </form> </body> </html> REGISTER; ?> As I said when the user signs up when submitting the above form, it doesnt work, keeps coming up with a different value for the password, so I am about 99% certain its the password, but I have been maticulous about copying in the sanitize function for SQL injections and it just doesnt still work, really puzzled now. Any helps appreciated, Jeremy. well I know the standard way of retrieving mysql data was through the following codes: Code: [Select] $query = "SELECT * FROM {$tablename} WHERE columnmame = '{$var}'"; $result = mysql_query($query); $row = mysql_fetch_array($result); This will return all properties inside a table row by an associative array indexed by column names. I am, however, wondering if there is an easier way to retrieve database info from more than one table. For now, what I am doing is: Code: [Select] $result = mysql_query( "SELECT * FROM {$tablename} WHERE columnmame = '{$var}'"); $row = mysql_fetch_array($result); $result2 = mysql_query( "SELECT * FROM {$tablename2} WHERE columnmame2 = '{$var2}'"); $row2 = mysql_fetch_array($result2); which is a bit tedious and can cause problems when two or more coders work on the same project(it will be difficult to tell what is $row1, $row2 and $row3...). Is there away to write a simpler code than the one above? I mean, if it is possible to run mysql_fetch_array only once and retrieve database info from multiple tables? I seem to have a problem with a PHP page I made. When executed on the server, it loads with a filesize 0 and for some browsers, says it does not exist. I believe that the cause is because it is not parsing due to a syntax error. I've busted my @$$ over this code, trying to find the issue, but cannot find it. Here is the whole page's code on pastie: http://pastie.org/1064160 Hey Guys, Here is my issue. I have a MySQL database with a table of products. I use this table to generate a mutliselect form element that is used int a larger form. The larger form contains other information relevant to an issue that we are having with that product (such as an outage). Anyway, the form works fine and the form validation works fine and I write it to the database fine. The issue I'm having is how to save the mutliselect options most efficiently. This is my current process: 1. User creates a new entry from the form and clicks save 2. The form is validated 3. All entries are written to the database in a table called "incidents" (content inclues, timestamps, description of the problem, the impact, who to contact, etc) 4. Because the products list can vary from 1 product to all (~30) products I broke it out into a separate table called "impacted_products". I then loop through each of the selected products and write one row for each product using the id from the row in the "incidents" table to define the tables relationship. Example of DB results: "incidents" +-----------------+------+----------+---------------------+---------+---------+ | notification_id | what | impact | time_start | summary | contact | +-----------------+------+----------+---------------------+---------+---------+ | 235235 | Test | None.... | 2011-02-08 13:41:00 | Test | 3 | +-----------------+------+----------+---------------------+---------+---------+ "impacted_products" +-----+-----------------+------------+---------------------+---------+ | id | notification_id | product_id | timestamp | deleted | +-----+-----------------+------------+---------------------+---------+ | 202 | 235235 | 7 | 2011-02-10 14:30:42 | 0 | | 203 | 235235 | 37 | 2011-02-10 14:30:42 | 0 | | 204 | 235235 | 23 | 2011-02-10 14:30:42 | 0 | +-----+-----------------+------------+---------------------+---------+ 5. Now the users wants to go back and make some updates. 6. They click the edit button from the menu on screen and the form is brought back up and all options/fields are filled out from that which is stored in the database. 7. They make their edits and save again. 8. Now this time it simple updates the "incidents" table but for the products table I do a: "UPDATE impacted_products SET deleted=1 WHERE notification_id='$ID'" and "delete" all the old impacted_products for this particular incident and then loop through all the products that the user still had selected and write them to the database again. 9. And repeat So as you can see this could end up with a lot of "useless" entries in the database since my scripts only pay attention to those "impacted_products" whose deleted value is set to 0. Example: +-----+-----------------+------------+---------------------+---------+ | id | notification_id | product_id | timestamp | deleted | +-----+-----------------+------------+---------------------+---------+ | 176 | 235235 | 37 | 2011-02-08 15:26:25 | 1 | | 177 | 235235 | 43 | 2011-02-08 15:26:25 | 1 | | 178 | 235235 | 37 | 2011-02-08 15:37:58 | 1 | | 179 | 235235 | 43 | 2011-02-08 15:37:58 | 1 | | 180 | 235235 | 1 | 2011-02-08 15:39:49 | 1 | | 181 | 235235 | 7 | 2011-02-08 15:39:49 | 1 | | 182 | 235235 | 37 | 2011-02-08 15:39:49 | 1 | | 183 | 235235 | 43 | 2011-02-08 15:39:49 | 1 | | 184 | 235235 | 1 | 2011-02-08 15:40:53 | 1 | | 185 | 235235 | 7 | 2011-02-08 15:40:53 | 1 | | 186 | 235235 | 37 | 2011-02-08 15:40:53 | 1 | | 187 | 235235 | 43 | 2011-02-08 15:40:53 | 1 | | 188 | 235235 | 37 | 2011-02-10 10:00:47 | 1 | | 189 | 235235 | 1 | 2011-02-10 12:17:05 | 1 | | 190 | 235235 | 7 | 2011-02-10 12:17:05 | 1 | | 191 | 235235 | 13 | 2011-02-10 12:17:05 | 1 | | 192 | 235235 | 37 | 2011-02-10 12:17:05 | 1 | | 193 | 235235 | 23 | 2011-02-10 12:17:05 | 1 | | 194 | 235235 | 1 | 2011-02-10 12:21:52 | 1 | | 195 | 235235 | 7 | 2011-02-10 12:21:52 | 1 | | 196 | 235235 | 13 | 2011-02-10 12:21:52 | 1 | | 197 | 235235 | 37 | 2011-02-10 12:21:52 | 1 | | 198 | 235235 | 23 | 2011-02-10 12:21:52 | 1 | | 199 | 235235 | 7 | 2011-02-10 12:22:26 | 1 | | 200 | 235235 | 37 | 2011-02-10 12:22:26 | 1 | | 201 | 235235 | 23 | 2011-02-10 12:22:26 | 1 | | 202 | 235235 | 7 | 2011-02-10 14:30:42 | 0 | | 203 | 235235 | 37 | 2011-02-10 14:30:42 | 0 | | 204 | 235235 | 23 | 2011-02-10 14:30:42 | 0 | +-----+-----------------+------------+---------------------+---------+ I did it this way beacuase it seems the easiest and fastest way. Otherwise I would have to lookup all the impacted_products from the table that match that notification_id and check 1) Was there a new product selected? If so, add it. 2) Was a product that was selected no longer selected? If so, delete it. 3) Was a product that was selected before still selected now? If so, leave it alone. This seemed like a lot of extra looping and a lot of extra DB queries to essentially end up at the same place. However, I feel that there has still got to be a more efficient way of doing this where I won't have all the extra entries in the impacted_products table. Any ideas? Thanks in advance! I have a PHP Page. It is doing a lot of site crawling, throughout a lot of loops. Basically it's getting a massive array together and it's huge. However, it's so big that PHP times out beyond belief. I mean there is no error or nothing. Google throws a major error about page not found, IE shows an internet connection error. It really times out big time. Even though it's not really "A LOT". Any advice on what to do in that situation. I can't show the site/code because of NDA, but was curious if someone had ever done that much work on a PHP page before to have it do that? I have some issue with the website just created specifically http://ecolandscaping.co/index.php?m=3 and hosted on the 000webhosting.com. It loads the page slowly. Things what i have consideredto trie to improve better performance: * optimized CSS files * optimized MySQL queries with specifying the rows wanted (SELECT ID, IMAGE.....) * avoid to select an image saved as blob if not necessary etc. * made different image retrieving php files P.S. the website is small of size approx 700KB for loading. Problem is that not all the images (saved in MYSQL BLOB) are loaded successfully. Could anyone have a look and advice what else could cause the performance issue. P.S.S. I do take in account that this isthe free hosting and may cause some problems I have a script which registers people to a database, however it doing something very strange. Whenever I place it into even a single CSS div it adds the registration to the dabase but stops loading the next page (index.php) I find this totally bizarre as I haven't seen anything like this behave before. With CSS affecting how PHP works. Especially when the CSS is not inside the <php> of <form> tags. Code: [Select] <?php include("connect.php"); if($_POST['submit']) { $username = mysql_real_escape_string(trim($_POST['username'])); $password = trim($_POST['password']); $password2 = trim($_POST['password2']); $email = mysql_real_escape_string(trim($_POST['email'])); $error = false; if(!isset($username) || empty($username)) { $error = "You need to enter a username."; } $query = mysql_query("SELECT id FROM users WHERE username = '".$username."' LIMIT 1"); if(mysql_num_rows($query) > 0 && !$error) { $error = "Sorry, that username is already taken!"; } if((!isset($password) || empty($password)) && !$error) { $error = "You need to enter a password."; } if((!isset($password2) || empty($password2)) && !$error) { $error = "You need to enter your password twice."; } if($password != $password2 && !$error) { $error = "The passwords you entered did not match."; } if((!isset($email) || empty($email)) && !$error) { $error = "You need to enter an email."; } if(preg_match("/[a-zA-Z0-9-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/", $email) == 0 && !$error) { $error = "The email you entered is not valid."; } $query = mysql_query("SELECT id FROM users WHERE email = '".$email."' LIMIT 1"); if(mysql_num_rows($query) > 0 && !$error) { $error = "Sorry, that email is already in use!"; } if(!$error) { $query = mysql_query("INSERT INTO users (username, password, email) VALUES ('".$username."', '".mysql_real_escape_string(md5($password))."', '".$email."')"); if($query) { $message = "Hello ".$_POST['username'].",\r\n\r\nThanks for registering! We hope you enjoy your stay.\r\n\r\nThanks,\r\nJohn Doe"; $headers = "From: ".$website['name']." <".$website['email'].">\r\n"; mail($_POST['email'], "Welcome", $message, $headers); setcookie("user", mysql_insert_id(), $time); setcookie("pass", mysql_real_escape_string(md5($password)), $time); header("Location: index.php"); } else { $error = "There was a problem with the registration. Please try again."; } } } ?><html> <head> <title>Register</title> </head> <body> <form action="" method="post"> <?php if($error) echo "<span style=\"color:#ff0000;\">".$error."</span><br /><br />"; ?> <label for="username">Username: </label> <input type="text" name="username" value="<?php if($_POST['username']) echo $_POST['username']; ?>" /><br /> <label for="password">Password: </label> <input type="password" name="password" value="<?php if($_POST['password']) echo $_POST['password']; ?>" /><br /> <label for="password2">Retype Password: </label> <input type="password" name="password2" value="<?php if($_POST['password2']) echo $_POST['password2']; ?>" /><br /> <label for="email">Email: </label> <input type="text" name="email" value="<?php if($_POST['email']) echo $_POST['email']; ?>" /><br /><br /> <input type="submit" name="submit" value="Register" /> </form> </body> What I'm trying to do is get a php file with content to load into my basic page template based on the page id, however it's not loading anything, however there are no errors coming up. I've looked everywhere I could find, and tried everything I could think of. I really could use some help on this. Below is the page template code and the code I'm trying to use to get the content to load up. page_templ.php Code: [Select] <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > <link rel="stylesheet" type="text/css" href="templates/content/style.css" > <!--This is the css used for IE because we need to correct some things for it.--> <!--[if IE]> <style type="text/css"> @import 'templates/content/styleIE.css'; </style> <![endif]--> </head> <body> <?php //We need to load our language files with our common text varibles require("content/langeng.php"); ?> <div id="header"> <? //Lets show the header. I use html where I can so smartphones load as little advanced code as possible require_once("header.php"); ?> </div> <div id="menu"> <?//Now our menu. require_once("menu.php"); ?> </div> <div id="mbody"> <?//Now the primary site content. //Load up our postvars.php file require_once("content/postvars.php"); ?> </div> </body> </html> postvars.php Code: [Select] <?php $id = $_POST["id"]; if ( $id == "home" ) { include 'main_c.php'; } elseif ( $id == "guides" ) { include 'guides_c.php'; } elseif ( $id == "trips" ) { include 'trips_c.php'; } ?> This should be an easy one but I'm looking for a bit of help. I'm using a php framework and using includes to bring different pieces of a website togethor onto the page. The top of the page uses a flash banner, then there are some simple text sections below. The banner is in it's own php file as well. Wondering if it's possible to have the banner NOT replay after each page load? I'm not sure if this is something I need to setup in the flash file, or if there is a way to do it in the php files? Basically, the banner is the same for all of the pages, and I want it (once loaded) to stay on the page while the details on the bottom change, WITHOUT going through the entire animation again. Make sense? here's the page as it stands now so you can get a better idea what I'm trying to do. http://www.getmoreimpact.com/index.php again not sure if this needs to be done in the flash side, or the php? Any ideas are better than what I've got! Thanks in advance Hi, I'm new. I have been searching for this, but couldn't find my answer ... I've got a form on page A, with its 'action' attribute set to page B.php. Page B does nothing but process the form data & put it in a database. At the bottom of B.php there's a header redirect to page C. My problem is that page B shows up briefly in the browser, looking all blank and weird. Is there a sensible way around this? I just want it to do its stuff in the background. I realise I should be Ajaxing it all but, apart from the fact that I struggle with Ajax operations longer than a couple of lines, it's important that the site should work without javascript. I HOPE this is a really easy one! Thanks So long story short im trying to read a text file line by line and do a cpl db tests agains that one line my file size is about 1300 lines long so I cut it down to 600 and the page is stil stuck loading, can anyone tell me why, my code is below.: (it was working fine I must have just changed something without knowing it) Code: [Select] <?php include ("include/session.php"); $file_handle = fopen ( "To Do.txt", "rb" ); while ( ! feof ( $file_handle ) ) { $line_of_text = fgets ( $file_handle ); $parts = explode ( '=', $line_of_text ); //get the course infomation //Examples: //$Course_info[0] = GEOL //$Course_info[1] = 1002 //$title = Introduction To Geology $Course_info = explode ( ' ', $parts [0] ); $length = strlen ( $Course_info [0] ) + strlen ( $Course_info [1] ) + 2; $title = substr ( $parts [0], $length ); //check to see if this course is already in the database $sql = "SELECT * FROM courses WHERE course = '$Course_info[0]' AND code = '$Course_info[1]'"; $res = mysql_query ( $sql ) or die ( mysql_error () ); if (mysql_num_rows ( $res ) == 0) { //course doesnt exist //lets get the program ID for this course $id_sql = "SELECT id FROM catagories WHERE code = '$course_info[0]'"; $res = mysql_query($id_sql) or die (mysql_error()); $row = mysql_fetch_array ( $res ); echo $row ['code']; } else { //course is already in the database } exit (); } <?xml-stylesheet href="/player.xsl" type="text/xsl"?> <config> <auto_start>false</auto_start> <player_skin>/test.swf</player_skin> <main_title>Test</main_title> <playlist_title>PLAYLIST</playlist_title> <time_text>TOTAL TIME</time_text> <pan_labels>L,R</pan_labels> <scroller_speed>1</scroller_speed> <scroller_marquee_content>#TRACK_NAME#</scroller_marquee_content> <repeat_is_enabled>false</repeat_is_enabled> <shuffle_is_enabled>false</shuffle_is_enabled> <default_volume>75</default_volume> <default_pan>0</default_pan> <play_list> <item>test.mp3;Test Soundtrack</item> </play_list> </config>Hi, The above code is from an XML file and I added the <?xml line of code to the XML file, but doing so causes the whole page to no longer display the track information (just blank). Is there there a way I could modify that text to try and call it another way? Thanks Edited by hexcode, 16 July 2014 - 02:52 PM. Hello Coders, Iam in a confused situation. I made a php script & in that script i want to check how much time (in seconds) the page is taking to fetch the content from the server. If the time is greater than to i defined time then i want to show a error message to the users. Anybody can give me ideas ..................... ?? I've been trying to figure out how chat apps work all afternoon to do dynamic data in HTML loading. Can someone please tell me where I'm going wrong for the code flow in this script:
<script> function submitchat{ if (form1.uname.value=='' || form1.msg.value==''){ alert("fill out whole form"); return; } var uname=form1.uname.value; var msg=form1.msg.value; var xmlhttp= new XMLHttpRequest(); xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState==4 && xmlhttp.status=200){ document.getElementById('chatlogs').innerHTML=xmlhttp.responseText; alert("message sent"); } xmlhttp.open('GET', '?page=3.2&uname='+uname+'&msg='+msg, true); xmlhttp.send(); } </script> <form name="form1"> enter your chat name<input type="text" name="uname"> message: <textarea name="msg"></textarea> <br> <div id="chatlogs">Loading Chat Logs...</div> <a href="#" onclick="">send</a> </form> <?php $uname = $_REQUEST['uname']; $msg = $_REQUEST['msg']; if ($msg!='' && $uname!=''){ $chat=" INSERT INTO chat ( `uname` , `msg` ) VALUES ( '$uname', '$msg' )"; $result = mysql_query($chat, $con) or die (sql_death($chat)); } I am trying to implement lazy loading into a project with pagination already set up.
If I was to go to my website and after the .com, type in "api_courselist.php?page=1" I would receive the first 20 results of my query. If I was to change that to page=2, it would retrieve the next 20 and so on.
My issue is I have no idea how to implement that into my java script/ajax file. I have it set up so that when the user scrolls to the bottom of the page, a div will make its self visible with the new page populated inside of it and IT will keep on pulling pages in till There is no more content.
jQuery(function ($) { jQuery(document).ready(function() { var is_loaded = true; jQuery(window).scroll(function() { if(jQuery(window).scrollTop() == jQuery(document).height() - jQuery(window).height()) { jQuery('div#loadMore').show(); if(is_loaded){ is_loaded = false; jQuery.ajax({ url: "api_courselist.php?page=1", success: function(html) { is_loaded = true; if(html){ jQuery("#infiscroll").append(html); jQuery('div#loadMore').hide(); }else{ jQuery('div#loadMore').replaceWith("<center><h1 style='color:red'>End of Content !!!!!!!</h1></center>"); } } }); } } }); }); }); Hi, Is it possible to build a PHP Template page that selects and publishes a row of data from a MySQL Database when a linked is clicked? I would design: Template.php Text links (perhaps on homepage of navigation bar): ProductA, ProductB and ProductC If you click link ProductA Template.php would display data for ProductA and likewise for ProductB and ProductC. I would also like search engines for find ProductA, ProductB and ProductC PHP pages. (Not just my single Template.php) Any ideas as to how this could be done without designing individual PHP pages for each product? Kind regards, Matthew. |