2016-03-25 16 views
1

こんにちはみなさんこんにちは 質問がありますか?その前に私のコードがあります。ラジオボタンを使用してMySQLのデータを更新するには?

<html> 
    <center> 
    <font size="2" face = "century gothic"> 
    <?php 
    $con=mysqli_connect("localhost","root","","election2016"); 
    // Check connection 
    if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    $result = mysqli_query($con,"SELECT * FROM candidate_info"); 
    echo "<table border='1'> 
    <tr> 
    <th>Candidate Name</th> 
    <th>Position</th> 
    <th>Vote</th> 
    <th>Number of Votes</th> 
    </tr>"; 
    while ($row = mysqli_fetch_array($result)) { 
     echo "<tr>"; 

     echo "<td>" . $row['CandidateName'] . "</td>"; 
     echo "<td>" . $row['Position'] . "</td>"; 
     echo "<td><input type='radio' name='candidateid'/>"; 
     echo "<td>" . $row['NumberofVotes'] . "</td>"; 
    } 
    echo "</table>"; 
    mysqli_close($con); 
    ?> 

    <br> 
    <br> 
    <form method = "post" action = "<?php $_PHP_SELF ?>"> 
    <input name = "update" type = "submit" id = "update" value = "Update"> 
    </form> 
    </center> 
    </font> 
    </html> 
    <?php 
      if(isset($_POST['update'])) { 
       $dbhost = 'localhost'; 
       $dbuser = 'root'; 
       $dbpass = ''; 

       $conn = mysql_connect($dbhost, $dbuser, $dbpass); 

       if(! $conn) { 
        die('Could not connect: ' . mysql_error()); 
       } 

       $candidateid = $row['candidateid']; 


       $sql = "UPDATE candidate_info SET numberofvotes = '1' WHERE candidateid = $candidateid" ; 
       mysql_select_db('election2016'); 
       $retval = mysql_query($sql, $conn); 

       if(! $retval) { 
        die('Could not update data: ' . mysql_error()); 
       } 
       echo "Updated data successfully\n"; 

       mysql_close($conn); 
      } 
    ?> 

私のコードの出力ここでは候補、位置、ラジオボタンのリストを表示します。

ここで私のエラーは、ラジオボタンを選択してボタンの更新をクリックするとnumberofvotesフィールドに1を入れたいが、更新しないということです。私のコードで何が間違っていますか?

ご協力いただければ幸いです。 TYそんなに

答えて

0
<html> 
     <center> 
     <font size="2" face = "century gothic"> 
     <?php 
     $con=mysqli_connect("localhost","root","","election2016"); 
     // Check connection 
     if (mysqli_connect_errno()) 
     { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 
     $result = mysqli_query($con,"SELECT * FROM candidate_info"); 
     echo "<table border='1'> 
     <tr> 
     <th>Candidate Name</th> 
     <th>Position</th> 
     <th>Vote</th> 
     <th>Number of Votes</th> 
     </tr>"; 
     while ($row = mysqli_fetch_array($result)) { 
      echo "<tr>"; 

      echo "<td>" . $row['CandidateName'] . "</td>"; 
      echo "<td>" . $row['Position'] . "</td>"; 
      echo "<td><input type='radio' name='candidateid' value='".$row['candidateid']."' >"; 
      echo "<td>" . $row['NumberofVotes'] . "</td>"; 
    $candidateid=$row['candidateid']; 
     } 
     echo "</table>"; 
     mysqli_close($con); 
     ?> 

     <br> 
     <br> 
     <form method = "post" action = "<?php $_PHP_SELF ?>"> 
    <input type="hidden" name="candidateid" value="<?php echo $candidateid;?>"> 
     <input name = "update" type = "submit" id = "update" value = "update"> 
     </form> 
     </center> 
     </font> 
     </html> 
     <?php 
       if(isset($_POST['update'])) { 
        $dbhost = 'localhost'; 
        $dbuser = 'root'; 
        $dbpass = ''; 
$candidateid = $_POST['candidateid']; 
        $conn = mysql_connect($dbhost, $dbuser, $dbpass); 

        if(! $conn) { 
         die('Could not connect: ' . mysql_error()); 
        } 

        $candidateid = $_POST['candidateid']; 


        $sql = "UPDATE candidate_info SET numberofvotes = 1 WHERE candidateid = '$candidateid'" ; 
        mysql_select_db('election2016'); 
        $retval = mysql_query($sql, $conn); 

        if(! $retval) { 
         die('Could not update data: ' . mysql_error()); 
        } 
        echo "Updated data successfully\n"; 

        mysql_close($conn); 
       } 
     ?> 
+0

私はこのコードをチェックして動作しています。問題は、フォームを投稿するときに$ row配列がないことです。だから、あなたは隠されたフィールドを持つidをページに送る必要があります。私はあなたのコードの仕事を得るために何をしたのですか? – DevMan

+0

私はコードを試していますが、動作しません。私は未定義のインデックス –

+0

のエラーを取得します@AlexiusjoeCoronelあなたのデータベース構造を教えてくださいできますか?コードで使用するフィールド名に間違いがあり、コード内のフィールド名の1つ以上がデータベースのフィールド名と同一ではありません。このため、未定義のインデックスエラーが発生します。 – DevMan

関連する問題