2013-04-23 6 views
0

좋아, PHP를 처음 사용하고 MySQL 데이터베이스에서 모든 데이터를 가져 와서 주가가 상승했는지 확인하는 스크립트를 만들려고합니다. 시간외 거래 중 가격 (하루의 마감 가격을 다음 날의 공개 가격과 비교). 나는이 스크립트가 작동하도록 약간의 스크립트를 만들었지 만, 어떤 이유로이 스크립트는 SQL 데이터베이스에 데이터를 복사하지 않고, 왜 내가 왜 에코 문을 설정했는지 완전히 왜곡되지 않았다. 내 코드는 어디에서나 실행되고 있지만 데이터는 전송되지 않습니다. 어떤 도움이라도 대단히 감사합니다.PHP가 mysql 데이터베이스로 전송되지 않음

<?php 
include("../includes/connect.php"); 

function masterLoop(){ 
$mainTickerFile = fopen("../tickerMaster.txt","r"); 
while (!feof($mainTickerFile)){ 
    $companyTicker = fgets($mainTickerFile); 
    $companyTicker = trim($companyTicker); 

    $nextDayIncrease = 0; 
    $nextDayDecrease = 0; 
    $nextDayNoChange = 0; 
    $total = 0; 
    $overnight_change = 0; 
    $overnight_change_pct = 0; 

    $sumOfIncreases = 0; 
    $sumOfDecreases = 0; 

    $sql = "SELECT date, open, close, percent_change FROM $companyTicker"; 
    $result = mysql_query($sql); 


    if($result){ 
     while($row = mysql_fetch_array($result)){ 
      $date = $row['date']; 
      $percent_change = $row['percent_change']; 
      $open = $row['open']; 
      $close = $row['close']; 
      $sql2 = "SELECT date, open, close, percent_change FROM $companyTicker WHERE date > '$date' ORDER BY date ASC LIMIT 1"; 
      $result2 = mysql_query($sql2); 
      $numberOfRows = mysql_num_rows($result2); 


      if($numberOfRows==1){ 
       $row2 = mysql_fetch_row($result2); 
       $tom_date= $row2[0]; 
       $tom_open= $row2[1]; 
       $tom_close= $row2[2]; 
       $tom_percent_change= $row2[3]; 
       if ($close == 0){ 
        $close = $tom_open; 
        } 
       $overnight_change = $tom_open - $close; 
       $overnight_change_pct = ($overnight_change/$close)*100; 


       if($overnight_change_pct > 0){ 
        $nextDayIncrease++; 
        $sumOfIncreases += $tom_percent_change; 
        $total++; 

       }else if($overnight_change_pct < 0){ 
        $nextDayDecrease++; 
        $sumOfDecreases += $tom_percent_change; 
        $total++; 
       }else{ 
        $nextDayNoChange++; 
        $total++; 
       } 

      }else if ($numberOfRows==0){ 
       $total = 1; 
       $nextDayIncrease = 1; 
       $nextDayDecrease = 1; 
      }else{ 
       echo "You have an error in analysis_c3"; 
      } 
     } 
    }else{ 
     echo "unable to select $companyTicker <br />"; 
    } 
    $nextDayIncreasePercent = ($nextDayIncrease/$total) * 100; 
    $nextDayDecreasePercent = ($nextDayDecrease/$total) * 100; 
    $averageIncreasePercentage = $sumOfIncreases/$nextDayIncrease; 
    $averageDecreasePercentage = $sumOfDecreases/$nextDayDecrease; 
    insertIntoResultTable($companyTicker, $nextDayIncrease, $nextDayIncreasePercent, $averageIncreasePercentage, $nextDayDecrease, $nextDayDecreasePercent, $averageDecreasePercentage); 
} 
} 


function insertIntoResultTable($companyTicker, $nextDayIncrease, $nextDayIncreasePercent,  $averageIncreasePercentage, $nextDayDecrease, $nextDayDecreasePercent, $averageDecreasePercentage){ 

$buyValue = $nextDayIncreasePercent * $averageIncreasePercentage; 
$sellValue = $nextDayDecreasePercent * $averageDecreasePercentage; 
    $trueValue = $buyValue + $sellValue; 

$query="SELECT * FROM analysisOvernightGain5 WHERE ticker='$companyTicker' "; 
$result=mysql_query($query); 
$numberOfRows = mysql_num_rows($result); 

if($numberOfRows==1){ 
    $sql = "UPDATE analysisOvernightGain5 SET ticker='$companyTicker',daysInc='$nextDayIncrease',pctOfDaysInc='$nextDayIncreasePercent',avgIncPct='$averageIncreasePercentage',daysDec='$nextDayDecrease',pctOfDaysDec='$nextDayDecreasePercent',avgDecPct='$averageDecreasePercentage',buyValue='$buyValue',sellValue='$sellValue'trueValue='$trueValue' WHERE ticker='$companyTicker' "; 
    mysql_query($sql); 
}else{ 
    $sql="INSERT INTO analysisOvernightGain5 (ticker,daysInc,pctOfDaysInc,avgIncPct,daysDec,pctOfDaysDec,avgDecPct,buyValue,sellValue,trueValue) VALUES ('$companyTicker', '$nextDayIncrease', '$nextDayIncreasePercent', '$averageIncreasePercentage', '$nextDayDecrease', '$nextDayDecreasePercent', '$averageDecreasePercentage', '$buyValue', '$sellValue','$trueValue')"; 
    mysql_query($sql); 
} 
} 

masterLoop(); 
?> 
+0

당신이'INSERT' /'UPDATE'에 대한'mysql_error' 봤어 그것이 있어야 ,sellValue='$sellValue'trueValue='$trueValue' 에서 ,을 놓친? –

+0

모든 mysql_query ($ sql) 문을 mysql_query ($ sql) 또는 die (mysql_error())로 변경하여 오류가 발생했는지 확인하십시오. – Barmar

+0

이것은 내가 얻는 오류이지만 그것을 만들기 위해 무엇을해야하는지 정말로 모르겠습니다. "SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 매뉴얼을 확인하여 올바른 구문을 찾으십시오. 'trueValue ='1.92496358566 'where ticker ='A"at line 1 " –

답변

0

당신은 ,sellValue='$sellValue',trueValue='$trueValue'

+0

감사합니다. 속임수! 스크립트를 템플릿으로 복사하고 붙여 넣기 때문에 약간 혼란 스럽지만 다른 스크립트에서 템플릿을 붙여 넣기 때문에 쉼표가 없어지지 만 스크립트는 여전히 작동합니다. –

+0

나에게 이상한 점은 ... 어쩌면 스크립트가 구문 오류를 표시하는 특정 명령문에 도달하지 못했을 수도 있습니다. 나는 확실히 모르지만 어쩌면 mysql 문을 구문 오류 PHP에서, 런타임에 찾는 – Amir

관련 문제