2016-12-15 5 views
1

私の最初のPHPファイルでは、mysqlから結果を取得してテーブルに表示します。ある列のすべての行の値は、値が「はい」または「いいえ」でなければなりません。値が「いいえ」であるという新しい要求を追加するとき。 「いいえ」をクリックすると、別のPHP(zatvaranje_zadatka.php)を開き、id_zadatkaとbroj_zadatkaを新しいPHPファイルに送信して、リクエストの解決策を入力します。私はmysql table1のフラグを "Yes"に変更し、mysqlの別のテーブルに解決策を書きたいと思います。最初のPHPの短いノートに :私が持っているzatvaranje_zadatka.phpでPHPの値がmysqlテーブルを更新しない

while ($row = mysql_fetch_array($result)) 
{ 
    echo '<tr><td>' .$row["id_zadatka"] .'</td>'; 
    echo '<td><a href="zatvaranje_zadatka.php?id_zadatka='.$row["id_zadatka"].'">Zatvori</a></td>'; 
} 

:テーブルrjesenjeへ

$id_zadatak = isset($_GET['id_zadatka']) ? $_GET['id_zadatka'] : ''; 
$br_zht = isset($_GET['broj_zadatka']) ? $_GET['broj_zadatka'] : ''; 
if($id_zadatak != '') { 
    echo '<form action="zatvaranje_zadatka.php?go.php" method="POST" id="zatv_zad" name="zatv_zad">'; 
    echo '<fieldset>'; 
    echo ' Broj zadatka je:'; 
    echo '<legend>Rješenje zadatka</legend>'; 
    echo ' <textarea id= "rjesenje" name = "rjesenje" rows="4" cols="50"></textarea>'; 
    echo '</fieldset>'; 
    echo '<button type="submit" id="submit_zatv" name="submit_zatv"> Zatvori zadatak </button>'; 
    echo '</form>'; 

    $rjesenje = isset($_GET['rjesenje']) ? $_GET['rjesenje'] : ''; 

    $query2 = "INSERT INTO rjesenje(broj_zadatka, rjesenje_zadatka) VALUES ('$br_zht', '$rjesenje')"; 
    $result2 = mysql_query($query2) or die ("Nije uspio zapis u bazu" .mysql_error()); 
} 

出力は何もありません。

答えて

0

このすべてのコードは乱雑と疑問に見えますが、あなたは、このすべてが終わりに働いているかを把握するために、テストのためにこれを試してみてください。..

$id_zadatak = $_GET['id_zadatka']; // we set this via URL 
    //$br_zht = $_GET['id_zadatka']; // id i broj su ista stvar 
    $rjesenje = $_POST['rjesenje']; 


    if($id_zadatak != '') { 

      echo '<form action="zatvaranje_zadatka.php?id_zadatka='.$id_zadatak.'" method="POST" id="zatv_zad" name="zatv_zad">'; 
       echo '<fieldset>'; 
        echo ' Broj zadatka je:'; 
        echo '<legend>Rješenje zadatka</legend>'; 
        echo ' <textarea id= "rjesenje" name = "rjesenje" rows="4" cols="50"></textarea>'; 
       echo '</fieldset>'; 
       echo '<button type="submit" id="submit_zatv" name="submit_zatv"> Zatvori zadatak </button>'; 
      echo '</form>'; 




     if(isset($rjesenje)) 
{ 
       $query2 = "INSERT INTO rjesenje(broj_zadatka, rjesenje_zadatka) VALUES ('$id_zadatak', '$rjesenje')"; 
       $result2 = mysql_query($query2) or die ("Nije uspio zapis u bazu" .mysql_error()); 
} 

     } 
+0

これは(isset($ _ POST ['rjesenje'])に$ rjesenjeを少し変更して私の問題を解決しましたか?$ _POST ['rjesenje' ]: '');ありがとう! – MikeL

+0

@ JoeMay変数が空であるかどうかを判断する別の方法は、 'empty()'関数を使うことです。変数に値が含まれているかどうか、変数が設定されているかどうかをチェックします。 http://php.net/manual/en/function.empty.php –

0

おそらくタイプミスが原因です。テーブル名と行名の間にスペースを入れる必要があります。 (例:rjesenje_(broj_zadatka、rjesenje_zadatka))

しかし、あなたのデータベースはSQLインジェクションに対して脆弱です。あなたのフォームがmethod="POST"あるprepared statements

+1

"テーブル名と行名の間にスペースを入れてください。" ---これは間違っています。あなたはする必要はありません。テーブル名とカッコの間のスペースはオプションです。このような 'ユーザへの挿入(ID、ダウンロード)値(4,7)'のようなクエリを書くことさえでき、正しく挿入されます。エラーの可能性が高いのは '$ _GET ['rjesenje']'が設定されていないということです。フォームが投稿であり、リクエストのチェックが$ _GETである可能性があります。 –

0

を見て、あなたは$_GET変数をチェックしてください。したがって、エラーrjesenjeは空です。これにより、エラーが発生しているはずですが、$_GET['rjesenje']が設定されているかどうかを確認しました。そうではなかったので、変数の値は何も設定されていません。

$rjesenje = isset($_GET['rjesenje']) ? $_GET['rjesenje'] : ''; 

はfalseを返します=> $ rjesenje =何も

変更次の行:

$rjesenje = isset($_POST['rjesenje']) ? $_POST['rjesenje'] : ''; 

が問題を解決するには、フォームのリクエストメソッドを変更するには上記のようにmethod="get"に、代わりに$_POST個の変数をチェックしてください。これが本当であるならば、あなたはデバッグ中の変数をプリントアウトしてみてくださいチェックする

一つの方法:

print_r($_GET); 

または

print_r($_POST); 

しばらくの間にあなたのエラーを持っていることを確認しますデバッグ

error_reporting(E_ALL); 

は、続きを読む:How to get useful error messages in PHP?


また、私が代わりのMySQL mysqliのやPDOの機能を使用するために、あなたにアドバイスしたいと思います。 mysql関数はphp version 5.5以降で廃止され、php 7.0では完全に削除されたため、mysql関数は攻撃を受け易いためです。

http://php.net/manual/en/intro.mysql.php

+0

あなたの投稿から、私はいくつかの新しいことを学びました。どうも! – MikeL

+0

それは本当にSOの目的です、私はそれを聞いて嬉しい@MikeL :) –

関連する問題