2015-04-23 17 views
6

Başka bir POST değerinin bir dizi olduğu değerleri seçmeye çalışıyorum, sorgumda neyin yanlış olduğunu bilmiyorum, bana bu hatayı veriyor. Tabloya hangi derslerin eklendiğini anlamaya çalışıyorum. Formda beş girdim var. İşte Başka bir değerin bir dizi olduğu değerler nasıl seçilir?

Notice: Trying to get property of non-object in C:\Apache\htdocs\xxx\addcourse.php on line 262 

kodum

<?php 
    if(isset($_POST['Submit'])) { 

     $code= isset($_POST['code']) ? $_POST['code'] : ''; 
     $coursecode = isset($_POST['coursecode']) ? $_POST['coursecode'] : ''; 
     $both=$code[$x] .' '. $coursecode[$x]; 

     $sqlcourses = "SELECT * FROM courses where course_code='$both' ORDER BY course_id DESC LIMIT 5 "; 
     $resultcourses = $mysqli->query($sqlcourses); 


     if ($resultcourses->num_rows > 0) { 


      while($row = $resultcourses->fetch_assoc()) { 

       ?> 
       </p> 
       <p>&nbsp;</p> 
       <p>&nbsp; </p> 
       <table width="415" border="0"> 
       <tr> 
       <?php 
       $courses=$row["course_code"]; 
       echo $courses; 
       ?> 
        </div> 
       </tr> 
        </table> 
       <?php 
      } 
     } 
    } 
?> 
+0

Ve hangi satır: Ana döngü Ardından

$stmt = $mysqli->prepare("SELECT * FROM courses WHERE course_code = ? ORDER BY course_id DESC LIMIT 5"); 

kod 262 mi? – Misunderstood

+0

Sorguda her ikisini de 'her ikisini de' olarak değiştirmem gerektiğini fark ettim. Hata tanıma, ama bana bir sonuç vermeyecek misin? –

+0

Sorgunuz başarısız. İlk bakışta, "her ikisi de" bir boşluk içeriyor - "$ $ = $ code [$ x]." '. $ coursecode [$ x]; ', bu yüzden tırnaklara sarılması gerekiyor -' ... course_code = 'her ikisi de' ... '. – Sean

cevap

0

İlk, sen almak istediğiniz ders kodlarının bir dizi oluşturmak; Ben basitlik için sınır kontrollerini tamamen bırakıyorum:

$codes = []; 
foreach ($_POST['code'] as $k => $code) { 
    $codes[] = $code . ' ' . $_POST['coursecode'][$k]; 
} 

Sonra kullanacağınız deyimi hazırlamak:

foreach ($codes as $code) { 
    $stmt->bind_param('s', $code); 
    assert($stmt->execute()); 

    $res = $stmt->get_result(); 
    while ($row = $res->fetch_assoc()) { 
     // ... 
    } 
} 
İlgili konular