2015-04-23 9 views
6

Próbuję wybrać wartości, gdzie inne wartości POST są tablicą, nie wiem, co jest nie tak z moim zapytaniem, podając mi ten błąd. Próbuję wiedzieć, jakie kursy są właśnie dodawane do tabeli. Mam pięć wejść w formularzu.Jak wybrać wartości, gdzie inną wartością jest tablica?

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

Oto mój kod

<?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

i która linia kodu to 262? – Misunderstood

+0

Właśnie zauważyłem, że muszę edytować $ both do "$ both" w zapytaniu. Nie znasz żadnych błędów, ale nie dajesz mi żadnych rezultatów? –

+0

Twoje zapytanie się nie udaje. Na pierwszy rzut oka '$ both' zawiera spację -' $ both = $ code [$ x]. ' ". $ coursecode [$ x]; ', więc musi być zawijany w cudzysłów -' ... where course_code = '$ both' ... '. – Sean

Odpowiedz

0

Po pierwsze, zbudować tablicę kodów przedmiotów, które chcesz odzyskać; Wyjeżdżam poza kontrole graniczne dla uproszczenia:

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

Następnie należy przygotować sprawozdanie będzie użyć:

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

Obserwowani przez pętli głównej:

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

    $res = $stmt->get_result(); 
    while ($row = $res->fetch_assoc()) { 
     // ... 
    } 
} 
Powiązane problemy