php グーグルAPIでグラフ SQLからデータ入れる

$prefSeisanpper[] = ‘[‘.”‘”.$row[“month”].”‘”.’,’.$row[‘seisanpy’].’,’.$row[‘seisanp’].’,100]’;//生産計画対比率

こんな感じで配列に入れる。三つのデータグラフなのです。先頭の月はx軸ラベル、一番最後の100は100%を意味する(達成値)ライン用

array_unshift($prefSeisanpper, “[”,’年次計画対比’,’修正計画対比’,’達成率100%’]”);
$histSeisanpper = join(‘,’, $prefSeisanpper);

これでグラフに表示するデータ、ラベル、汎用が完成。

グラフ表示コードのこの部分。

function drawChart() {
          var data = google.visualization.arrayToDataTable([<?php echo $histSeisanpper;?>]);

これで生産の達成ラインが100%で、計画対比率がグラフ化されます。

php グーグルAPIで簡単グラフ

ネットに繋がってなくても「jsapi.js」これを手に入れればグラフが表示されるはず。

普通の折れ線グラフ

<td style=width:650px;>
<script type=”text/javascript” src=”/db_management/js/jsapi.js”></script>
<script type=”text/javascript”>
    google.load(“visualization”, “1”, {packages:[“corechart”]});
    google.setOnLoadCallback(drawChart);
      function drawChart() {
          var data = google.visualization.arrayToDataTable([<?php echo $histClaim;?>]);
          var chart = new google.visualization.LineChart(document.getElementById(‘graph_Claim’));
          var options = { title: “<?php echo $Year;?>年度–<?php echo $prefName;?>–苦情”,
                          legend:{
                              position:’top’
                          },
                          pointSize: 6,
                          hAxis: {
                              title: “月”,
                              titleTextStyle: {
                              fontSize: 12
                              },
                              slantedText:false
                          },
                          vAxis: {
                              title: “件数”,
                              titleTextStyle: {
                              fontSize: 12
                                 },
                          },
 
                        }
          chart.draw(data, options);
      }
</script>
    <div id=”graph_Claim” style=”width:650px; height: 300px;”></div>
</td>

棒グラフ二つに折れ線1本

<td style=width:650px;>
<script type=”text/javascript” src=”/db_management/js/jsapi.js”></script>
<script type=”text/javascript”>
    google.load(“visualization”, “1”, {packages:[“corechart”]});
    google.setOnLoadCallback(drawChart);
      function drawChart() {
          var data = google.visualization.arrayToDataTable([<?php echo $histSeisanpper;?>]);
          var chart = new google.visualization.ComboChart(document.getElementById(‘graph_Seisanpper’));
          var options = { title: “<?php echo $Year;?>年度–<?php echo $prefName;?>–生産達成率”,
                          legend:{
                              position:’top’
                          },
                          pointSize: 6,
                          hAxis: {
                              title: “月”,
                              titleTextStyle: {
                              fontSize: 12
                              },
                              slantedText:false
                          },
                          vAxis: {
                              title: “率”,
                              titleTextStyle: {
                              fontSize: 12
                                 },
                          },
                          seriesType: “bars”,
                          series: {2: {type: “line”}}
                          };
          chart.draw(data, options);
      }
</script>
    <div id=”graph_Seisanpper” style=”width:650px; height: 300px;”></div>
</td>

php グラフ比較 小窓で別のグラフ開く

開く操作ファイル

<input name=”openWin” type=”button” value=”生産” onClick=”window.open(‘./Graph_seisan.php?year=<?= $Year;?>&keyword=<?= $prefSite;?>’,”,’scrollbars=yes,width=600,height=650,’);”>

これはGETでデータを渡しています。また、開く小窓の大きさも指定しています。

Graph_seisan.php(小窓ファイル)

GETでデータ受取ってあとは普通にコード記述するだけ。

下記記述すると開くと同時に一回リロードします。

<script Language=”JavaScript”>
    window.opener.location.reload();
</script>

下記記述すると小窓から親に戻ります。ここでもGETしてます。

<a href=”Graph_seisan.php?prefClose=<?= $prefUserid ?>”>ルームから出る</a>

これだけでは不足です、小窓を閉じるために、

if(@$_GET[‘prefClose’] <> “”){
    @$prefUserid = $_GET[‘prefClose’];
     print “<script language=’javascript’ type=’text/javascript’>self.close();</script>”;
    exit;
}

コード上段にこれを記述しておきます。

php SQLデーター無い場合の処理

}else{
    echo “<div id=\”containermid\”>”;//カラム幅制御
    echo “<div id=\”category1\”>”;//カラム幅制御
    print “<html>”;
         print “<head><title>エラー</title></head>”;
         print “<body>”;
         print “<br>”;
         print “<br>”;
         print “<br>”;
         print “<br>”;
         print “<br>”;
         print “ID取得エラー”;
         print “<table style=\”border:0;\”>”;
         print “<form action=\”share_top.php\” method=\”post\”>”;
         print “<input type=\”hidden\” name=\”searchdo\” value=\”view\”>”;
         print “<input type=\”hidden\” name=\”year\” value='”.$Yearput.”‘>”;
         print “<input type=\”hidden\” name=\”monthsale\” value='”.$prefMonth.”‘>”;
         print “<td style=\”border:0;\”>”;
         print “<h4><input type=\”submit\” name=\”submit\” value=\”戻る売上比率\”></h4>”;
         print “</td>”;
         print “</form>”;
         print “</table>”;
         print “</body>”;
         print “</html>”;
         exit;
  }
mysql_free_result($resultb);

php SQLでデーターが無い場合の処理

}else{
         print “<html>”;
         print “<head><title>エラー</title></head>”;
         print “<body>”;
         print “ID取得エラー”;
         print “<a href=\”./calibinside.php\”>戻る</a>”;
         print “</body>”;
         print “</html>”;
         exit;
  }
  mysql_free_result($result);

php javascript テキストクリックすると入力領域が開く

<script type=”text/javascript” src=”/calibration/js/jquery.min.js”></script>

SQLに下記を入れておかないと何も入力されていない時入力領域が開けない

if(@$row[“state”] == ”){
               @$prefstate = ‘空欄です’;
           }else{
               @$prefstate = $row[“state”];
           }

<td style=”width:550px;”>
               <div id=”divtext”><?= @$prefstate ?></div>
               <textarea name=”state” id=”areatext” style=”display:none;” cols=70 rows=8><?= @$prefstate ?></textarea>
               <script type=”text/javascript”>
                   $(‘#divtext’).click(function() {
                   $(‘#divtext’).css(‘display’, ‘none’);
                   $(‘#areatext’)
                          .val($(‘#divtext’).text())
                          .css(‘display’, ”)
                          .focus();
                   });
                   $(‘#areatext’).blur(function() {
                   $(‘#areatext’).css(‘display’, ‘none’);
                   $(‘#divtext’)
                   .text($(‘#areatext’).val())
                   .css(‘display’, ”);
                   });
                </script>
 </td>

php 日付 ゼロ付き月とゼロ無し月を操作する

$tdate = date(“Y/m/d”);
$Y = date(‘Y’, strtotime($tdate));
$M = date(‘m’, strtotime($tdate));//04タイプ
$D = date(‘d’, strtotime($tdate));

$N = date(‘n’, strtotime($tdate));//4タイプ

$YMD1 = date(“$Y/$M/1”);
$YMD2 = date(“$Y/$M/31”);
$YMD3 = date(“$Y/$N/1”);
$YMD4 = date(“$Y/$N/31”);

こんな時も↓

@$Month = $_POST[‘month’];//04タイプでポストされる
   
$tdate = date(“Y/m/d”);
$Y = date(‘Y’, strtotime($tdate));
$M = $Month;//04タイプ
$D = date(‘d’, strtotime($tdate));

$N = $Month + 0;//04に0足して4にする

$YMD1 = date(“$Y/$M/1”);
$YMD2 = date(“$Y/$M/31”);
$YMD3 = date(“$Y/$N/1”);
$YMD4 = date(“$Y/$N/31”);

php 日付の計算

$Date = date(“Y/m/d”,strtotime(“$prefEnd”));//最後の校正年月日、文字列を日付にする
$NextTest = date(‘Y/m/d’, strtotime(date(“$Date”).’ +’.$prefcycle.’ month’));//校正周期から次の校正日計算
$NearTest = date(‘Y/m/d’, strtotime(date(“$NextTest”).’ -1 month’));//計算された年月日から1ヶ月前
$tdate = date(“Y/m/d”);//今日の日付
                    if(strtotime($tdate) > strtotime($NextTest)){
                        echo “<input type=\”text\” style=\”background-color:#ff0000\” size=\”10\” name=\”nexttest\” value=”.@$NextTest.”>”;
                    }else if(strtotime($tdate) > strtotime($NearTest)){
                        echo “<input type=\”text\” style=\”background-color:#cece31\” size=\”10\” name=\”nexttest\” value=”.@$NextTest.”>”;
                    }else{
                        echo “<input type=\”text\” size=\”10\” name=\”nexttest\” value=”.@$NextTest.”>”;
                    }

php 文字列を日付にする

$Date = date(“Y/m/d”,strtotime(“$prefEnd”));//最後の校正年月日、文字列を日付にする
$NextTest = date(‘Y/m/d’, strtotime(date(“$Date”).’ +’.$prefcycle.’ month’));//校正周期から次の校正日計算
$NearTest = date(‘Y/m/d’, strtotime(date(“$NextTest”).’ -1 month’));//計算された年月日から1ヶ月前
$tdate = date(“Y/m/d”);//今日の日付
                    if(strtotime($tdate) > strtotime($NextTest)){
                        echo “<input type=\”text\” style=\”background-color:#ff0000\” size=\”10\” name=\”nexttest\” value=”.@$NextTest.”>”;
                    }else if(strtotime($tdate) > strtotime($NearTest)){
                        echo “<input type=\”text\” style=\”background-color:#cece31\” size=\”10\” name=\”nexttest\” value=”.@$NextTest.”>”;
                    }else{
                        echo “<input type=\”text\” size=\”10\” name=\”nexttest\” value=”.@$NextTest.”>”;
                    }

php html Link

■ リンクを貼るタグ <a href="URL">~</a>
<a href="http://www.yahoo.co.jp/" target="_self">Yahoo!JAPAN</a>
--------------------------------------------------------------------------------
Yahoo!JAPAN
 
 
■ オンマウスで説明文
<a aref="http://www.yahoo.co.jp/" Title="説明文">Yahoo!JAPAN</A>
--------------------------------------------------------------------------------
Yahoo!JAPAN  ←マウスを乗せてみて下さい。
 
 
■ 別窓でリンク <a href="URL" target="_blank">~</a>
<a href="http://www.yahoo.co.jp/" target="_blank">Yahoo!JAPAN</a>
 
 
■ ターゲットの種類
•target="_blank"・・・・別枠を開いたリンク
•target="_top"・・・・全てのフレームを取り払うリンク
•target="_self"・・・・同じ枠でリンク
•target="_parent"・・・・一番外のフレームは残す。
•target="フレーム名"・・・・フレームから別フレームへのリンク

php 日付形式のデータからmaxとmin さらに年だけ抽出

$sqla = “SELECT *,min(date) FROM mcrunstop”;

$resulta = executeQuery($sqla);

$rowa = mysql_fetch_array($resulta);

$MinDate = $rowa[‘min(date)’];

$MinYear = date(‘Y’, strtotime($MinDate));// 年を取り出す

$sqlb = “SELECT *,max(date) FROM mcrunstop”;

$resultb = executeQuery($sqlb);

$rowb = mysql_fetch_array($resultb);

$MaxDate = $rowb[‘max(date)’];

$MaxYear = date(‘Y’, strtotime($MaxDate));// 年を取り出す

php ページ全体を拡大/縮小

<h3>ページ全体を拡大/縮小</h3>
<select onchange=”document.body.style.zoom=this.options[this.selectedIndex].value”>
<option value=”80%”>80%</option>
<option value=”83%”>83%</option>
<option value=”85%”>85%</option>
<option value=”90%”>90%</option>
<option value=”95%”>95%</option>
<option selected=”selected” value=”100%”>100%</option>
<option value=”120%”>120%</option>
</select>
<p><br /> ページ全体の倍率を変更できます</p>

php関数 四捨五入

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.60);      // 4
echo round(1.955832);  // 1.96
echo round(1241757, –3); // 1242000
echo round(5.0452);    // 5.05
echo round(5.0552);    // 5.06
?>

javascript セレクトボックスだけどテキスト入力もする Ⅱ

シンプルなの見つけました。参考にさせていただいたサイト様ありがとうございます。

URL不明になってしまいました^^;。

実践的なコードを載せます。

 

<td>

            <?php

                 $sql = “SELECT * from lotnumber”;

                 $result = executeQuery($sql);

                 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){

                 @$Selectbox .= “<option value=\””.$row[“lotnumber”].”\”>”.””.$row[“lotnumber”].”</option>”;

                 }

             ?>

            <select style=”width:120px; clip:rect(0px,120px,22px,100px); position:absolute;” onchange=”select(this);”>

            <?= $Selectbox ?>

            </select>

            <input id=”t1″ name=”mlot” type=”text” style=”width:100px;margin-right:20px;” value=<?= $prefMlot ?>>

            <script language=”javascript”>

               function select(obj){

               document.getElementById(“t1”).value=obj.options[obj.selectedIndex].text;

               }

            </script>

</td>

複数の場合は、(自分はちょっとはまりました^^;)

<td>
          <?php
                 $sql = “SELECT * from salesratio”;
                 $result = executeQuery($sql);
                 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
                 @$Selectbox .= “<option value=\””.$row[“customer”].”\”>”.””.$row[“customer”].”</option>”;
                 }
           ?>
            <select style=”width:120px; clip:rect(0px,120px,22px,100px); position:absolute;” onchange=”select(this);”>
            <?= $Selectbox ?>
            </select>
            <input id=”t1″ name=”customer” type=”text” style=”width:100px;margin-right:20px;” value=”>
            <script language=”javascript”>
               function select(obj){
               document.getElementById(“t1”).value=obj.options[obj.selectedIndex].text;
               }
            </script>
     </td>
     <td>
          <?php
                 $sqla = “SELECT * from salesratio”;
                 $resulta = executeQuery($sqla);
                 while ($rowa = mysql_fetch_array($resulta, MYSQL_ASSOC)){
                 @$Selectboxa .= “<option value=\””.$rowa[“classification”].”\”>”.””.$rowa[“classification”].”</option>”;
                 }
           ?>
            <select style=”width:120px; clip:rect(0px,120px,22px,100px); position:absolute;” onchange=”selc(this);”>
            <?= $Selectboxa ?>
            </select>
            <input id=”t2″ name=”classification” type=”text” style=”width:100px;margin-right:20px;” value=”>
            <script language=”javascript”>
               function selc(obj){
               document.getElementById(“t2”).value=obj.options[obj.selectedIndex].text;
               }
            </script>
     </td>

<p>解説しなくても分かると思いますが、 onchangeとfunctionのところ。</p>

php 平凡なセレクトボックス

<select name=”abcde”>
                <option>選択してください</option>
                <option value=”A”>A</option>
                <option value=”B”>B</option>
                <option value=”C”>C</option>
                <option value=”D”>D</option>
                <option value=”E”>E</option>
                <option value=”F”>F</option>
                <option value=”G”>G</option>
                <option value=”H”>H</option>
                <option value=”J”>J</option>
                <option value=”K”>K</option>
                <option value=”L”>L</option>
                <option value=”M”>M</option>
                <option value=”N”>N</option>
                <option value=”P”>P</option>
                <option value=”Q”>Q</option>
                <option value=”R”>R</option>
                <option value=”S”>S</option>
                <option value=”T”>T</option>
                <option value=”V”>V</option>
                <option value=”X”>X</option>
                <option value=”Y”>Y</option>
                <option value=”Z”>Z</option>
  </select>

php 日付年月日セレクト 初期値指定

<?php

$tdate = date(“Y/m/d”);      

$Ytoday = date(‘Y’, strtotime($tdate));  // 年を取り出す

 $Ytodayo = $Ytoday – 2;

/////////////////////////////////////////////////////

//////////////////前回日付セレクトホールド///////////////

/////////////////////////////////////////////////////

                              $sqlf = “SELECT id,dateh FROM holddate where id = ‘1’”;

                              $resultf= executeQuery($sqlf);

                              $rowf = mysql_fetch_array($resultf);

                              $Todayf = $rowf[“dateh”];

                              $Todayfy = date(‘Y’, strtotime($Todayf));

                              $Todayfm = date(‘m’, strtotime($Todayf));

                              $Todayfd = date(‘d’, strtotime($Todayf));

                              $sqle = “SELECT id,dateh FROM holddate where id = ‘2’”;

                              $resulte= executeQuery($sqle);

                              $rowe = mysql_fetch_array($resulte);

                              $Todaye = $rowe[“dateh”];

                              $Todayey = date(‘Y’, strtotime($Todaye));

                              $Todayem = date(‘m’, strtotime($Todaye));

                              $Todayed = date(‘d’, strtotime($Todaye));

/////////////////////////////////////////////////////

//////////////////前回日付セレクトホールド///////////////

/////////////////////////////////////////////////////

;?>

<?php
      //セレクトオプションのループ設定
      function optionLoop($start, $end, $value = null){
            for($i = $start; $i <= $end; $i++){
              if(isset($value) &&  $value == $i){
                  echo “<option value=\”{$i}\” selected=\”selected\”>{$i}</option>”;
            }else{
                 echo “<option value=\”{$i}\”>{$i}</option>”;
         }
        }
       }
?>

     <select name=”year”>

        <?php optionLoop($Ytodayo, $Ytoday, $Ytoday);?>

        <option selected = true value = <?= $Todayfy ?>><?= $Todayfy ?></option>

         </select>年

       <select name=”month”>

        <?php optionLoop(‘1′, ’12’, ‘1’);?>

        <option selected = true value = <?= $Todayfm ?>><?= $Todayfm ?></option>

         </select>月

        <select name=”day”>

        <?php optionLoop(‘1′, ’31’, ‘1’);?>

        <option selected = true value = <?= $Todayfd ?>><?= $Todayfd ?></option>      

</select>日~

         <select name=”year2″>

        <?php optionLoop($Ytodayo, $Ytoday, $Ytoday);?>

        <option selected = true value = <?= $Todayey ?>><?= $Todayey ?></option>

         </select>年

       <select name=”month2″>

       <?php optionLoop(‘1′, ’12’, ‘1’);?>

       <option selected = true value = <?= $Todayem ?>><?= $Todayem ?></option>

        </select>月

    <select name=”day2″>

       <?php optionLoop(‘1′, ’31’, ‘1’);?>

       <option selected = true value = <?= $Todayed ?>><?= $Todayed ?></option>

       </select>まで

<input type=”submit” name=”submit” value=”実行”>  

php 年度セレクトボックス 2

 <?php
                      $yold = date(“Y”)-5;//今年から5年前まで表示
                      
                      // 年のプルダウン
                      echo “<select name=’created’>”;
                      for ($y=$yold;$y<date(Y)+1;$y++) {
                             echo “<OPTION value=” . $y . ” >” . $y . “</OPTION>\n”;
                      }
                      echo “</SELECT>年&nbsp&nbsp&nbsp&nbsp;”;
                     // 月のプルダウン
                     //$a = array(“1月”, “2月”, “3月”, “4月”, “5月”, “6月”,
                                  //”7月”, “8月”, “9月”, “10月”, “11月”, “12月”);
                     //echo “<select name=’month’>”;
                     //foreach ($a as $key => $value) {
                     //$b = $key + 1;
                     //echo “<OPTION value=” . $b . ” >” . $value . “</OPTION>\n”;
                     //}
                     //echo “</SELECT>”;
                  ?>