PHPでかけ算ができない?

このQ&Aのポイント
  • PHPを使ってかけ算の表を作成しようとしていますが、何かが間違っているようです。
  • 表の一部が正しく表示されず、かけ算が正しく計算されていないようです。
  • PHPのコードを見直しても問題が見つからず、お助けいただける方がいれば教えてください。
回答を見る
  • ベストアンサー

PHP かけ算

PHPを使い下記の表を作ろうとしております。 ぱっと見た所あと少しで出来そうな気もするのですが、 なにかが間違っています。 誰かお分かりになるかたが今したらお伺いできますでしょうか。 | 1 2 3 4 5 6 7 8 9 -------------------------------- 1| * 2 * 4 * 6 * 8 * 2| 2 * 6 * 10 * 14 * 18 3| * 6 * 12 * 18 * 24 * 4| 4 * 12 * 20 * 28 * 36 5| * 10 * 20 * 30 * 40 * 6| 6 * 18 * 30 * 42 * 54 7| * 14 * 28 * 42 * 56 * 8| 8 * 24 * 40 * 56 * 72 9| * 18 * 36 * 54 * 72 * <table border ="1"> <?php for($i = 0; $i <=9; $i++){ echo'<tr>'; if($i == 0){ echo '<td>&nbsp;</td>'; } else { echo'<td>'.$i.'</td>'; } for($j = 1; $j<=9; $j++){ if($i == 0){ echo'<td>'.$j.'</td>'; continue; } if($i*$j % 2 == 0) { echo '<td>'. $i * $j.'</td>'; } else { echo '<td>*</td>'; } } echo '</tr>'; } ?> </table>

noname#130289
noname#130289
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

惜しいですね if($i*$j % 2 == 0) { のif文を if(($i+$j) % 2 == 1) { に変更してみて下さい $iが0の時はこのif文は読まれないので関係ないとし、 それ以外ではこの $i と $j の和の関係が奇数の時だけ答えを表示、 そうではなかったら(偶数の時)は * となるのがあなたの表です

noname#130289
質問者

お礼

あー そういうことなんですね。 眺めすぎて混乱しておりました。 丁寧にご説明して頂きどうもありがとうございます。 大変助かりました。

関連するQ&A

  • PHPでの九九の表示につきまして

    簡単な質問で大変失礼致します。 ■やりたいこと PHPで九九の表を出したい。 ■問題点 下記のPHPで表示されると思うのですが、 表記されません。 色々と、間違いを探しましたが、 現状、どこが悪いのかがわかりません。 恐れ入りますが、どのようにしたら、動くのか 教えていただけませんでしょうか。 <?php print "<table border=1>"; for ($i=1; $i <=9; $i++) { print "<tr><td>". $i ."の段</td>"; for ($j=1; $j <=10; $j++) { if ($j=10) { continue 2; } $x =$i * $j; print "<td>" . $i . "*" . $j . "=" . $x . "</td>"; } print "</tr>"; } print "</table>"; ?>

    • ベストアンサー
    • PHP
  • PHP 九九表

    PHPで九九の表を作っているのですが、 どうしてもここまでしか出来ませんでした。 <tr>,<td>を消してみると 数字が横に一列に表示されており、かけ算にはなっているのですが、 表にはどうしてもなりません。 なにかが違うのは分かっているのですが、ないが違うのか分かりません。 誰かお分かりになるかたがいましたらお伺いできませんでしょうか。 <?php echo '<table>'; echo '<tr>'; for ($i = 1; $i <= 9; $i++ ) { for ($j = 1; $j <= 9; $j++ ) echo '<td>' $i * $j'</td>'; echo '</tr>'; } echo '</table>'; ?>

    • ベストアンサー
    • PHP
  • PHP 九九表 変化版

    PHPで九九の変化版を作成しているのですが、下記の表をつくりたいのですが、どうしてもうまくいきません。 どのたかお分かりになる方で間違い点などをお教えて頂けませんでしょうか。宜しくお願い致します。  | 1 2 3 4 5 6 7 8 9 ------------------------------- 1| 1 * * * * * * * * 2| 2 4 * * * * * * * 3| 3 6 9 * * * * * * 4| 4 8 12 16 * * * * * 5| 5 10 15 20 25 * * * * 6| 6 12 18 24 30 36 * * * 7| 7 14 21 28 35 42 49 * * 8| 8 16 24 32 40 48 56 64 * 9| 9 18 27 36 45 54 63 72 81 <?php for($i = 1; $i <=9; $i++){ echo "*"; echo '<tr>'; for($j = 1; $j <=9; $j++) if( $i == 0){ echo "*"; } else { echo "'<td>'. $i * $j.'</td>'; echo '</tr>'; } } ?>

    • ベストアンサー
    • PHP
  • PHPとCSSを使用して九九表作成について

    PHPとCSS(スタイルシート)を使用して、九九表を作成しているのですが、うまくいきません。 うまくいかない事象としましては、表がきれいにくっつかなく表と表の間に変な間隔ができてしまって困っております。 何かアドバイスを頂けたら助かりますのでよろしくお願い致します。 ※CSSは外部ファイルとして作成しました。 〈PHPファイル〉 <html> <head> <link href="test.css" rel="stylesheet" type="text/css"> <title>九九演算表</title> </head> <body> <table> <?php for($i = 0; $i <=9; $i++) { echo '<tr>'; if ($i == 0) { echo '<td><q>'."".'</q></td>'; } else { echo '<td><q>'.$i.'</q></td>'; } for($j = 1; $j <=9; $j++) { if ($i == 0) { echo '<td><q>'.$j.'</q></td>'; continue; } echo '<td><p>'. $i * $j.'</p></td>'; } echo '</tr>'; } ?> </table> </body> </html> <CSSファイル> <style> table{ border-collapse: collapse; border: 2px solid #000000; } q{ font-weight: bold; width:40px; height:30px; text-align: center; border: 1px solid #000000; padding: 2px 8px; border-collapse: collapse; background-color: #ccccff; } p{ width:40px; height:30px; text-align: center; border: 1px solid #000000; padding: 2px 8px; border-collapse: collapse; } </style> 以上です。

    • 締切済み
    • PHP
  • おしえてください

    下記ソースを書きました。 AAAのところtextboxにして 値をほかのフォームに飛ばしたいのですが どのように書きなおせばできますか? <?php print "<table border=1>"; for ($i = 1;$i <= 9; $i++) { print "<tr><td>".$i."</td>"; for ($j = 1; $j <= 10; $j++) { if ($j == 10){ continue 2; } print "<td>".AAAA."</td>"; } print "</tr>" ; } print "</table>"; ?>

    • 締切済み
    • PHP
  • php文字化けについての質問

    <TABLE BORDER> 99表 <tr> <th> </th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th> </tr> <tr> <?php for ($i = 1; $i <= 9; $i++ ) { echo "<tr>\n"; echo '<th>'. $i ."</th>\n"; for ($j = 1; $j <= 9; $j++ ) echo '<td>'. $i * $j."</td>\n"; echo "</tr>\n"; } ?> </table> 表と言う文字が文字化けして???と表示されます phpの設定も何度も見直しているのですが 問題がが発見できません どなたかお教えください

    • ベストアンサー
    • PHP
  • PHPでカレンダーを作成する際の計算がわかりません

    PHPを勉強し始めた初心者です。 参考書を片手にカレンダーを作成しているのですが、 その参考書に記載されている計算の意味がわかりません。 ///////以下抜粋 <?php //年月日を取得する if ($_SERVER['REQUEST_METHOD'] = "POST") { $yyyy = $_POST["yyyy"]; $mm = $_POST["mm"]; } else { $yyyy = date("Y"); $mm = date("m"); } //年月選択リストを表示する echo "<form method=\"POST\" action=\"" . $_SERVER['PHP_SELF'] . "\">"; echo "<table><tr><td>"; //年 echo "<select name=\"yyyy\">"; for ($i = 2000; $i <= 2020; $i++) { echo "<option"; if ($i == $yyyy) { echo " selected "; } echo ">$i"; } echo "</select>年"; //月 echo "<select name=\"mm\">"; for ($i = 1; $i <= 12; $i++) { echo "<option"; if ($i == $mm) { echo " selected "; } echo ">$i"; } echo "</select>月"; echo "</td>"; echo "<td><input type=\"submit\" value=\"表示\" name=\"sub1\"></td>"; echo "</tr></table></form>"; //カレンダーを表示する echo"<table border=\"1\">\n <tr>\n <td>日</td>\n <td>月</td>\n <td>火</td>\n <td>水</td>\n <td>木</td>\n <td>金</td>\n <td>土</td> </tr>"; //1日の曜日を取得する $wd1 = date("w", mktime(0,0,0,$mm,1,$yyyy)); $d = 0; $lastd = date("d", mktime(0,0,0,$mm + 1, 0, $yyyy)); for ($i = 0; $i <= 5; $i++) { if ($d >= $lastd) {break;} echo "<tr>"; for ($j = 0; $j <= 6; $j++) { $d = $i * 7 + $j - $wd1 + 1; if ($d > $lastd or $d < 1) { echo "<td> </td>"; } else { echo "<td>$d</td>"; } } echo "</tr>"; } echo "</table>"; ?> /////////////////// 上記のソースの for ($i = 0; $i <= 5; $i++) { if ($d >= $lastd) {break;} echo "<tr>"; for ($j = 0; $j <= 6; $j++) { $d = $i * 7 + $j - $wd1 + 1; if ($d > $lastd or $d < 1) { echo "<td> </td>"; } else { echo "<td>$d</td>"; } } echo "</tr>"; } この部分で、なぜ5なのかとかなぜこういう計算式なのかとかがわかりません。 どなたかこのソースの意味をご教授願いませんでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpでのアンケート編集

    社員旅行のアンケート編集のphpです。 (???)のところがどうしてもわからなくて上手く動きません。 どなたか回答お願いします。 <?php session_start(); ?> <html> <head> <body> <font size=5><b>社員旅行アンケート集計</b></font><br><br> <?php $db = mysql_connect("localhost","",""); mysql_select_db("syain_db"); $query = "SELECT * FROM trvl_t"; $result = mysql_query($query); if(mysql_num_rows($result) == 0) print"<br>無し"; else{ for($i = 0;$i <4;$i++) $cnt[$i] = 0; while($row = mysql_fetch_array($result))(???) mysql_close($db); echo "<table border =1>"; echo "<tr><td>旅行先</td><td>希望者数</td></tr>"; for($i=0;$i<4;$i++){ echo "<tr align=center>"; if($i == 0) echo "<td>北海道</td>"; elseif($i == 1) echo"<td>沖縄</td>"; elseif($i == 2) echo"<td>韓国</td>"; elseif($i == 3) echo"<td>香港</td>"; echo "<td>".(???)."</td>"; echo"</tr>"; } echo "</table>"; } ?>

    • ベストアンサー
    • PHP
  • 【初歩】 for構文内におけるロジック

    echo "<table border='1'>"; for ($i = 0; $i < 100; $i++) {   echo "<tr><td>" $i "</td></tr>"; } echo "</table>"; この100行のテーブルを25行ずつ4つのテーブルに分割したいのですが、 わたしが考えた以下のロジックでうまくいきません。 何かいいアイデアがありましたら、ご教示下さい。 for ($i = 0; $i < 100; $i++) {   if ( i = 0 or ( i % 25 ) == 0 )  // iが0か25で割りきれる時     echo "<table border='1'>";   } echo "<tr><td>" $i "</td></tr>";   if ( i = 0 or ( i % 25 ) == 0 )     echo "</table>";   } }

    • ベストアンサー
    • PHP
  • CSVファイルを読み込んで表示するPHP

    <?php setlocale(LC_ALL, 'ja_JP'); if( $handle = fopen( 'data.csv', 'r' ) ){ echo '<table border=1 cellspacing=0 bordercolor=#ff6600 align=center>'; if( ( $data = fgetcsv( $handle ) ) !== FALSE ){ echo '<tr style="background-color:#FFCCFF">'; for( $i = 0; $i < count( $data ); $i ++ ){ if($i===0){ echo '<td align=center width=160px>' . $data[$i] . '</td>'; }else{ echo '<td align=center width=60px>' . $data[$i] . '</td>'; } } echo '</tr>'; } while( ( $data = fgetcsv( $handle ) ) !== FALSE ){ echo '<tr>'; for( $i = 0; $i < count( $data ); $i ++ ){ echo '<td align=center>' . $data[$i] . '</td>'; } echo '</tr>'; } echo '</table>'; } fclose($handle); ?> ■data.csvの内容 品名,数量,予備 AAA,1,1 BBB,1,1 CCC,1,1 上記のPHPは2列まで表示されるようになっています。 それを3列まで表示できるようにしたいのですが、 初心者なので、どう記述したらいいのか分かりません。 どうか、ご教授お願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう