2017-11-11 4 views
0

私はページを更新せずに自分のウェブサイトのページングを構築しようとしています。 私はその目的のためにajax、php、およびmysqlを使用しています。PHP連結が正しく機能しない

現時点では、私は特にforeachと連結を使用してPHPに固執しています。ここで

は私のforeachループです:HERESに機能

function uritused($conn, $id, $algus, $mitu){ 
try{ 
    $uritused = $conn->prepare("SELECT COUNT(*) FROM loosid WHERE usr_id='$id'"); 
    $uritused->execute(); 
}catch(PDOException $e){ 
    echo $e->getMessage(); 
} 
$uritus_arr = []; 
$count = $uritused->fetchColumn(); 
if($count > 0){ 
    try{ 
    $urituseds = $conn->prepare("SELECT * FROM loosid WHERE usr_id='176237127636' ORDER BY loosiAeg DESC LIMIT 1, 5"); 
    $urituseds->execute(); 
    }catch(PDOException $e){ 
    echo $e->getMessage(); 
    } 
    $uritus = $urituseds->fetchAll(); 
    for ($z=0;$z<$count;$z++) { 
     $uritus_arr[$z] = array(
     'eventi_nimi' => $uritus[$z]['eventi_nimi'], 
     'loosiAeg' => $uritus[$z]['loosiAeg'], 
     'tingimused' => array(
      'postitus' => $uritus[$z]['post'], 
      'osalus' => $uritus[$z]['osalus'] 
     ), 
     'sec' => $uritus[$z]['sec'], 
     'staatus' => $uritus[$z]['staatus'], 
     'attendiloos' => $uritus[$z]['attendiloos'] 
    ); 
     $auhinnad = explode(',', $uritus[$z]['auhinnad']); 
     if($uritus[$z]['auhinnad'] != '-'){ 
     foreach ($auhinnad as $key) { 
      $auhind = explode('-', $key); 
      $auhinna_arr[] = array(
       'auhind' => $auhind[0], 
       'voitjad' => $auhind[1] 
      ); 
     } 
     $uritus_arr[$z]['auhinnad'] = $auhinna_arr; 
     }else{ 
     $uritus_arr[$z]['auhinnad'] = $uritus[$z]['auhinnad']; 
     } 

     $valista = explode(',', $uritus[$z]['valista']); 
     if($uritus[$z]['valista'] != '-'){ 
     foreach ($valista as $keys) { 
      $valistad = explode('-', $keys); 
      $valista_arr[] = array(
       'nimi' => $valistad[0], 
       'id' => $valistad[1] 
      ); 
     } 
     $uritus_arr[$z]['valista'] = $valista_arr; 
     }else{ 
     $uritus_arr[$z]['valista'] = $uritus[$z]['valista']; 
     } 

     $valista_arr = []; 
     $auhinna_arr = []; 
    } 

} 
return $uritus_arr; 
} 

私はことを知っているが、これは今、OFFSET UNDEFINED MEを与える:

if (isset($_POST['page'])) { 
    $algus = $_POST['page']; 
    $loos = ''; 
    $mitu = 5; 
    $msg = []; 

    foreach (uritused($conn, $id, $algus, $mitu) as $key => $vals) { 
     $loos .= "<tr class='tr-data'>"; 
     $loos .= '<td>'.$vals['eventi_nimi'].'<br><span class="owner" data-id="'.$vals['owner-id'].'">'.$vals['owner'].'</span></td>'; 
     $loos .= '<td data-loosiaeg="'.$vals['loosiAeg'].'">'.$vals['loosiAeg'].'</td>'; 
     $loos .= '<td>'.$vals['attendiloos'].'</td>'; 
     $loos .= '<td>'; 
     if (is_array($vals['auhinnad'])) { 
      foreach($vals['auhinnad'] as $keys => $val){ 
       $loos .= $val['auhind'].'<br>'; 
      } 
     } else { 
      $loos .= $vals['auhinnad']; 
     } 
     $loos .= '</td>'; 
     $loos .= '<td>Postitus: '.$vals['tingimused']['postitus'].'<br>Osalus: '.$vals['tingimused']['osalus'].'</td>'; 
     $loos .= '<td>'; 
     if (is_array($vals['valista'])) { 
      foreach($vals['valista'] as $keys => $val){ 
       $loos .= $val['nimi'].'<br>'; 
      } 
     } else { 
      $loos .= $vals['valista']; 
     } 
     $loos .= '</td>'; 
     $loos .= '<td data-sec='.$vals['sec'].' class="tr-icons"> 
    <i class="material-icons staatus ' . $vals['staatus'] . '" data-staatus="'.$vals['staatus'].'" data-toggle="tooltip" data-placement="bottom" data-class="stopped" data-eltext="radio_button_checked" data-text="radio_button_unchecked" title="Peata loosimine">radio_button_checked</i></td>'; 
     $loos .= "</tr>"; 
    } 
    $msg['data'] = $loos; 
    $msg['success'] = true; 

    echo json_encode($msg); 
} 

ここに私のAJAX呼び出し

var page = 1; 
$.ajax({ 
    type: "POST", 
    url: "pages/php/loosid_data.php", 
    cache: false, 
    dataType: 'json', 
    data: {'page': page}, 
    success: function(msg){ 
    console.log(msg); 
    if(msg['success']){ 
     $('.tr-data').remove(); 
     $('.m-loosid table').append(msg['data']); 
    } 
    }, 
    error: function(msg){ 
    console.log(msg); 
} 
}); 

EDITですその情報はDBにあります。 何らかの理由により、データは常に空です。 enter image description here

私はこのコードをajaxなしで直接ページ内で実行しようとすると、すべてが正常に動作します。

多分あなたたちはこれを修正する方法について何か提案していますか?私はすでにここに同じ種類の記事があることを知っていますが、私はまだ私の答えを見つけていません。

+0

uritused関数のコードを表示 –

+1

'dataType: 'json'、'がありますが、応答として 'html'を送信しています。 – RamRaider

+0

' uritused'が何かを返すのですか? –

答えて

0

@Ginoペイン

申し訳ありませんが実際にはそうではありません。私は私の質問で新人ミスをしたようです。データベースには1つのインスタンスしかありませんが、制限は1,5に設定されていますが、0,5に設定してください。

基本的に私のクエリは、それはデータベースにデータがないように思えた理由です。

私はまた、私はその時にデータベースに1つ以上のインスタンスのデータを持っていたので、ページ上で直接foreachをエコーすると言いました。

あなたの時間を無駄にして申し訳ありません。

+0

時間がかかりません。あなたが最終的にそれを解決する人であっても、他の目を問題にすることはそれを解決する素晴らしい方法です。私たちはすべて、他の人にそれを説明した後、私たち自身の問題を解決しました。 –

関連する問題