2017-06-03 14 views
0

データベースから情報を取得しようとしていますが、クエリは最初の行でのみ実行されます。 私は多くのことを試みましたが、うまくいきませんでした。どうしてか分かりません。 getメソッドは、データベースによって満たされているテーブルの上にある初めてPDOクエリを実行する

私は'SELECT CouID FROM CoursesC'にクエリを変更した場合、それは正常に動作'SELECT CouID FROM CoursesC WHERE StuID = :ID ' 問題は、最初のクエリであります!

私はモーダル

フォームコード

<form action="<?php $_SERVER['PHP_SELF']?>" method="GET" id="contact"> 

<table id="studenttable"> 

    <tr> 
    <th></th> 
    <th>Student ID</th> 
    <th>Student Name</th> 
    <th>Student Passed Credits</th> 
    <th>Action</th> 
    </tr> 
    <?php 

    require('check.php'); 
$query = $conn->prepare('SELECT * FROM student WHERE AdvID=:id'); 
$query->bindParam(":id",$_SESSION['userid']); 
$query->execute(); 
$row = $query->fetch(); 

while($row = $query->fetch(PDO::FETCH_ASSOC)){ 
?> 
    <tr> 
    <td> <input type ="checkbox" name="checked[]" value="<?php echo $row['StuId'];?>"> </td> 
    <td><?php echo $row['StuId']; ?></td> 
    <td><?php echo $row['Name']; ?></td> 
    <td> </td> 
    <td> 

    <button type="submit" name="submit" value="<?php echo $row['StuId'];?>" class="btn icon-btn btn-info" ><span class="glyphicon glyphicon-info-sign"></span>More Information</button> 
    </td> 
    </tr>  
<?php 
} 
     do { 
    while ($query->fetch()) 
     ; 
    if (!$query->nextRowset()) 
     break; 
} while (true); 
    $conn=null; 
    $query->closeCursor(); 
?> 

</table> 

</form> 




<?php 
if (isset($_GET['submit'])){ 
    global $CC; 
    $count=1; 
    global $data; 
    $T=$_GET['submit']; 
?> 
<script> 
    $('#CC').html(""); 
    $('#CC1').html(""); 
</script> 
<?php 
    require('check.php'); 
    $q= $conn->prepare('SELECT CouID FROM CoursesC WHERE StuID = :ID '); 
    $q->bindValue(':ID', $_GET['submit']); 
    $q->execute(); 
    $data = $q->fetch(); 
    while($data = $q->fetch(PDO::FETCH_ASSOC)){ 
     $CC=$data['CouID']; 
?> 
<script> 
    $('#CC').append("<option><? echo $count++; echo "- "; echo $CC;?></option>"); 
</script> 
<?php 
    } 
    $q->closeCursor(); 
    $A=$CC; 
    /*echo "<script> alert('<?php $T ?>')";*/ 

    $q1= $conn->prepare('SELECT CouID FROM Courses'); 
    $q1->execute(); 
    $data1 = $q1->fetch(); 
    while($data1 = $q1->fetch(PDO::FETCH_ASSOC)){ 
     if($CC!=$data1['CouID']){ 
?> 
<script> 
    $('#CC1').append("<option><? echo $count++; echo "- "; echo $data1['CouID'];?></option>"); 
</script> 
<?php 
     } 
    } 
    $q1->closeCursor(); 
?> 
<script> 
    $(window).load(function(){ 
     $('#myModal').modal('show'); 
    }); 
</script> 
<? 
} 
?> 
<?php 
    if (isset($_GET['submit'])){ 
     global $CC; 
     $count=1; 
     global $data; 
     $T=$_GET['submit']; 
?> 
<script> 
    $('#CC').html(""); 
    $('#CC1').html(""); 
</script> 
<?php 
     require('check.php'); 
     $q= $conn->prepare('SELECT CouID FROM CoursesC WHERE StuID = :ID '); 
     $q->bindValue(':ID', $_GET['submit']); 
     $q->execute(); 
     $data = $q->fetch(); 
     while($data = $q->fetch(PDO::FETCH_ASSOC)){ 
      $CC=$data['CouID']; 
?> 
<script> 
    $('#CC').append("<option><? echo $count++; echo "- "; echo $CC;?></option>"); 
</script> 
<?php 
     } 
     $q->closeCursor(); 
     $A=$CC; 
     /*echo "<script> alert('<?php $T ?>')";*/ 

     $q1= $conn->prepare('SELECT CouID FROM Courses'); 
     $q1->bindParam(":id", $_GET['submit']); 
     $q1->execute(); 
     $data1 = $q1->fetch(); 
     while($data1 = $q1->fetch(PDO::FETCH_ASSOC)){ 
      if($CC!=$data1['CouID']){ 
?> 
<script> 
    $('#CC1').append("<option><? echo $count++; echo "- "; echo $data1['CouID'];?></option>"); 
</script> 
<?php 
      } 
     } 
     $q1->closeCursor(); 
?> 
<script> 
    $(window).load(function(){ 
     $('#myModal').modal('show'); 
    }); 
</script> 
<? 
    } 
?> 
<?php 
    if (isset($_GET['submit'])){ 
     global $CC; 
     $count=1; 
     global $data; 
     $T=$_GET['submit']; 
    ?> 
    <script> 
    $('#CC').html(""); 
    $('#CC1').html(""); 
    </script> 
    <?php 
    require('check.php'); 
    $q= $conn->prepare('SELECT CouID FROM CoursesC WHERE StuID = :ID '); 
    $q->bindValue(':ID', $_GET['submit']); 
    $q->execute(); 
    $data = $q->fetch(); 
    while($data = $q->fetch(PDO::FETCH_ASSOC)){ 
     $CC=$data['CouID']; 
?> 
<script> 
    $('#CC').append("<option><? echo $count++; echo "- "; echo $CC;?></option>"); 
</script> 
<?php 
    } 
    $q->closeCursor(); 
    $A=$CC; 
    /*echo "<script> alert('<?php $T ?>')";*/ 

    $q1= $conn->prepare('SELECT CouID FROM Courses'); 
    $q1->bindParam(":id", $_GET['submit']); 
    $q1->execute(); 
    $data1 = $q1->fetch(); 
    while($data1 = $q1->fetch(PDO::FETCH_ASSOC)){ 
     if($CC!=$data1['CouID']){ 
?> 
<script> 
    $('#CC1').append("<option><? echo $count++; echo "- "; echo $data1['CouID'];?></option>"); 
</script> 
<?php 
     } 
    } 
    $q1->closeCursor(); 
?> 
<script> 
    $(window).load(function(){ 
     $('#myModal').modal('show'); 
    }); 
</script> 
<? 
} 
?> 
+0

こんにちはあなたの質問は非常に広いですが、あなたは "クエリ"と言うときは、あなたのコード内に多くのクエリがある特定のクエリが必要です。あなたが非常に具体的であれば、より簡単にあなたを助けます。 –

+0

@PabloCesarCordovaMorales申し訳ありませんが私の最初のクエリを私のコメントを更新していたと私は$ q-> bindValueの問題だと思うので、私はそれを仕事を削除しますが、私はそれをユーザーによって値を取得する必要がある –

+0

':ID'と':id' 2つの異なる動物ですが、 '$ q1 = $ conn-> prepare( 'SELECT Couid FROM Courses')で何もしていません。 $ q1-> bindParam( ":id"、$ _GET ['submit']); 'はバインドされていないため、なぜサブミットを参照として使用しているのか分かりません。 –

答えて

0

このライン変更してみてください内<select>にデータを提示しています:

$q= $conn->prepare('SELECT CouID FROM CoursesC WHERE StuID IN(:ID) '); 
$q->bindValue(':ID', implode(",",$_GET['checked'])); 
0123に

$q= $conn->prepare('SELECT CouID FROM CoursesC WHERE StuID = :ID '); 
$q->bindValue(':ID', $_GET['submit']); 

あなたのフォームはIDの配列を返すので、 '='の代わりに 'IN'を使用する必要があります。

また、<?php $_SERVER['PHP_SELF']?>を使用しないでください。これをプロジェクトの外部に展開する場合は、ページの名前を使用してください。

+0

私はあなたが "チェックされた"チェックボックスを使わなかったと思います。私はその値を送信するボタンを送信しますTHNX –

+0

はい、それは間違っています。 $ _GET変数はフォームの要素の配列を返します。あなたがチェックされたIDを取得しようとしていると仮定しています。そのため、これらの要素に与えた名前である "checked"という別の配列が内部にあります。チェック配列内の各要素はID値です。 Implode関数は、それらをSQL文で読める文字列に変換します。 –

+0

申し訳ありませんが、ここで論理を理解していると思います...ユーザーがボタンをクリックすると、1つのユーザーIDが送信されます。だから私はあなたのクエリがリストを返す理由を取得していない場合、あなたは1つのユーザーIDをフィルタリングしています... –

関連する問題