habsfan93 Posted March 8, 2008 Share Posted March 8, 2008 Hi there everybody! I am having a problem with php and I was referred here by a friend who uses this forum often so hopefully someone can help me fix my problem. Ok, so I am trying to use PHP to comb through an html file, grab the data, and put it into a mysql database. Here is the page I am trying to have put into a database: http://cmhl.freehostia.com/CMHL4TeamScoring.html This is basically a page of hockey statistics. I am able to get most of the data into mysql. My problem is encountered when a player has played for more than one team. Because when the page is generated, it displays the stats that that player has earned on each team along with a Total line. I have successfully programmed something that can lift off the first line of stats for the players current team. But I don't want those, I want the stats that are on the Total line. Here is the code I have. This work was actually initially done by someone else and I have now taken it over, and whatever it is that they did to account for the Total line does not work so now I am trying to fix it. The part that doesn't work is in between the ------ lines. When I first received the file, there were absolutely no comments, so whatever comments you see are things I put in to help myself remember what certain lines do. <?php include_once("lib.php"); $url = $info[scoring];#Gets URL for processing $player_names = player_names(); $fp = fopen ($url, "r");#Opens URL, read only. if (!$fp) { echo "ERROR: $errstr ($errno)<br>\n";#Can't load the file - error message } else { while($buffer=fgets($fp,512)) {#fgets reads the file line by line and stores the info into $buffer...loop progresses as long as there is data to read. $buffer = strip_tags($buffer);#Strips HTML and PHP tags from file foreach($player_names as $key => $value) {#Iterative loop that goes over array. Assigns unique keys to $key for each unique $value if(strstr($buffer,$key)) #strstr finds first occurence of a string..in this case, returns strings $buffer starting at $key { $buffer=str_replace($key,$value,$buffer); }#str_replace — Replace all occurrences of the search string with the replacement string. For every line (buffer) replaces key with value. } $buffer = preg_replace("([\s]+)", " ", $buffer); #Looks for any amount of whitespace and replaces it with one whitespace. $buffer = str_replace(",", ".", $buffer); #Replaces all commas with points. #---------------------------------------------------------------------- if(substr($buffer, 0, 3)=="TOT") { #If string starts with TOT $stats = preg_replace("([\s]+)", " ", $buffer); #Looks for any amount of whitespace and replaces it with one whitespace. $stats = addslashes($stats);# Allows any special characters like ' to be included in entry list($foo, $gp, $g, $a, $p, $plusminus, $pim, $pp, $sh, $gw, $gt, $ht, $s, $pctg, $gs, $ps) = split(' ', $stats); #splits line into individual array components where space occurs and assigns them to variables. #Not sure how this works or helps. if(!strstr($a,".")) { $sql_del = strrpos($sql, "("); $sql = substr($sql, 0, $sql_del); $sql .= "('', '$pos', '$num', '$fname', '$lname', '$team', '$gp', '$g', '$a', '$p', '$plusminus', '$pim', '$pp', '$sh', '$gw', '$gt', '$ht', '$s', '$pctg', '$gs', '$ps', '$rookie')"; } } #----------------------------------------------------------------------- $fchar = trim(substr($buffer, 0, 2)); #trim strips whitespace from beginning and end of string if($fchar=="F"||$fchar=="C"||$fchar=="L"||$fchar=="R"||$fchar=="D"||$fchar=="G") { # if fchar is equal to this OR that OR this, etc. $stats = preg_replace("([\s]+)", " ", $buffer); #See above $stats = addslashes($stats); list($pos, $num, $fname, $lname, $team, $gp, $g, $a, $p, $plusminus, $pim, $pp, $sh, $gw, $gt, $ht, $s, $pctg, $gs, $ps) = split(' ', $stats); if(substr($fname, 0, 1)=='*') {#Determines if player is a rookie $rookie = 1;#Assigns player rookie status $fname = str_replace("*", "", $fname);#Eliminates star } else { $rookie = 0; } if($sql) $sql .= ", \n"; #add comma and line break to $sql $sql .= "('', '$pos', '$num', '$fname', '$lname', '$team', '$gp', '$g', '$a', '$p', '$plusminus', '$pim', '$pp', '$sh', '$gw', '$gt', '$ht', '$s', '$pctg', '$gs', '$ps', '$rookie')"; #add all this on each new line } } } if($sql) $sql2 = "INSERT INTO sorter_stats (id, pos, num, fname, lname, team, gp, g, a, p, plusminus, pim, pp, sh, gw, gt, ht, s, pctg, gs, ps, rookie) VALUES ".$sql; if($sql2) { db_execute("DELETE FROM sorter_stats") or die("del error!"); db_execute($sql2) or die("error! $sql2 ".mysql_error()); } ?> I basically need a way to check whether or not a TOT line exists for the player, and then if it does, I need to replace the data from the first line with the data from the TOT line for inputting into the database. Any help would be greatly appreciated as I have been working on this for a while now and can't seem to figure out how to achieve what I want to achieve. Link to comment https://forums.phpfreaks.com/topic/95076-combing-html-file-uploading-data-to-mysql-need-help/ Share on other sites More sharing options...
habsfan93 Posted March 9, 2008 Author Share Posted March 9, 2008 Any help would be appreciated Link to comment https://forums.phpfreaks.com/topic/95076-combing-html-file-uploading-data-to-mysql-need-help/#findComment-487740 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.