RHS 7 Raportează post Postat Septembrie 13, 2014 (editat) Salutari tuturor! Am urmatoarea problema: Trebuie sa fac o paginatie cu niste id-uri importate din database(mysql). Problema este ca id-urile nu sunt 1, 2, 3, 4, 5 si asa mai departe, ci 2, 4, 7, 10, etc. Am ajuns pana aici dupa care m-am blocat ... Cod: <?php $query = "SELECT * FROM gallery WHERE category = '$value'"; $result = mysqli_query($connect, $query); if (mysqli_num_rows($result) >= 1) { while($row = mysqli_fetch_array($result)) { $pag[] = $row['id']; } } $count = 1; $items = ''; $first = reset($pag); $last = end($pag); if ($_GET['language'] == 'en') { $lang = 'en/'; } else { $lang = 'de/'; } $current = decode($_GET['id']); $prev = $current - 1; $next = $current + 1; foreach($pag as $value) { echo '<a href="/preview/'.$lang.encode($value).'/'.encode($category).'/" title="'.$titleen.'">'.$count.'</a>'; $count++; $vl[] = $value; } if ($prev >= $first) { echo '<a href="/preview/'.$lang.encode($value).'/'.encode($category).'/" title="'.$titleen.'"><< '.$value.'</a>'; } if ($next <= $last) { echo '<a href="/preview/'.$lang.encode($value).'/'.encode($category).'/" title="'.$titleen.'">>> '.$value.'</a>'; } ?> Acest echo "echo '<a href="/preview/'.$lang.encode($value).'/'.encode($category).'/" title="'.$titleen.'">'.$count.'</a>';" imi arata toate id-urile numerotate 1 = 2, 2 = 4, 3 = 7, etc. Daca las acest link vizibil nu este nici o problema dar daca vreau sa adaug buton de prev si next atunci apare problema. Va multumesc pentru ajutor. Editat Septembrie 13, 2014 de RHS Partajează acest post Link spre post Distribuie pe alte site-uri
King1 8296 Raportează post Postat Septembrie 13, 2014 Nu e tot scriptul asta, nu? Ai verificat tabelul din baza de date? Poate acolo sunt gresit numerotate id-urile Partajează acest post Link spre post Distribuie pe alte site-uri
RHS 7 Raportează post Postat Septembrie 13, 2014 (editat) Salut King1, nu sunt gresite. Anumite id-uri sunt vizibile in alte pagini unde "category" este diferit ($query = "SELECT * FROM gallery WHERE category = '$value'";) $value se schimba in baza paginii vizualizate. Eu vreau sa fac un next - prev functional cu id casual... Editat Septembrie 13, 2014 de RHS Partajează acest post Link spre post Distribuie pe alte site-uri
King1 8296 Raportează post Postat Septembrie 14, 2014 Aaaa, pai asta e chestia atunci. De fapt tu vrei o noua numerotare a id-urilor pe fiecare pagina, nu? Daca schimbi asta if ($prev >= $first) { echo '<a href="/preview/'.$lang.encode($value).'/'.encode($category).'/" title="'.$titleen.'"><< '.$value.'</a>'; } if ($next <= $last) { echo '<a href="/preview/'.$lang.encode($value).'/'.encode($category).'/" title="'.$titleen.'">>> '.$value.'</a>'; } in asta if ($prev >= $first) { echo '<a href="/preview/'.$lang.encode($value).'/'.encode($category).'/" title="'.$titleen.'"><< '.$count.'</a>'; } if ($next <= $last) { echo '<a href="/preview/'.$lang.encode($value).'/'.encode($category).'/" title="'.$titleen.'">>> '.$count.'</a>'; } ? Poti incerca. Nu imi dau seama de unde vine $value in primul query acolo. Lipseste ceva. ($query = "SELECT * FROM gallery WHERE category = '$value'";) Partajează acest post Link spre post Distribuie pe alte site-uri
RHS 7 Raportează post Postat Septembrie 14, 2014 Am 3 coloane in baza de date: id name category 1 Andrei 1 2 Dragos 1 3 Cristian 2 4 Daniel 1 URL-ul cu care "merg" pe pagina respectiva este http://localhost/preview/en/Mg/MQ/ 2 (codat in base64) = Mg 1 (codat in base64) = MQ $value = decode($_GET["value"]); (unde in htaccess RewriteRule ^preview/(.*)/(.*)/(.*)/$ details.php?language=$1&id=$2&value=$3) asta inseamna ca $value = 1 $query = "SELECT * FROM gallery WHERE category = '$value'"; $result = mysqli_query($connect, $query); while($row = mysqli_fetch_array($result)) { $pag[] = $row['id']; } treaba asta imi arata id-urile 1, 2 si 4 cu urmatorul cod creez o numerotare ordonata: $count = 1; foreach($pag as $val) { echo '<a href="/preview/'.$lang.encode($val).'/'.encode($category).'/" title="'.$titleen.'">'.$count.'</a>'; $count++; } codul de deasupra imi arata urmatoarele pagini: <a href="......../encode(1 unde 1 este id)/">1</a> | <a href="......../encode(2 unde 2 este id)/">2</a> | <a href="......../encode(4 unde 4 este id)/">3</a> ATENTIE! id 4 este numerotat 3! deci cum sar eu de la id 2 la id 4 prin metoda NEXT - PREV? Nu vreau sa vad 1, 2, 3, 4, 5 si sa dau click pe numele care vreau sa il vad ci vreau sa fie 2 sageti < si > E cam complicat de explicat ... scris ... Sper ca ai inteles ceva Partajează acest post Link spre post Distribuie pe alte site-uri
RHS 7 Raportează post Postat Septembrie 14, 2014 Imi pare rau pentru dublu post dar am rezolvat singur. Mai jos adaug codul, poate cineva o sa aiba nevoie. $query = "SELECT * FROM gallery WHERE category = '$category'"; $result = mysqli_query($connect, $query); if (mysqli_num_rows($result) >= 1) { while($row = mysqli_fetch_array($result)) { $arr[] = $row['id']; } } $id = $_GET['id']; $arrsearch = array_search($id, $arr); $next = $arrsearch + 1; $prev = $arrsearch - 1; if ($prev >= 0) { echo '<a href="/preview/'.$arr[$prev].'/"><< </a>'; } if ($next < count($arr)) { echo '<a href="/preview/'.$arr[$next].'/">>></a>'; } Partajează acest post Link spre post Distribuie pe alte site-uri
King1 8296 Raportează post Postat Septembrie 14, 2014 Felicitari! :) Partajează acest post Link spre post Distribuie pe alte site-uri