Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Help...!!?? Buat Tampilkan Artikel per Kategori

Salam Master..
Saya sdh buat page artikel  untuk tampilkn sdh bisa ..
tapi untuk tampilkan per kategori bingung master...

Tabel Database nya..
id ----------------------int--------------------PK
tanggal-------------date
kategori------------varchar
judul-----------------varchar
singkat--------------tinnytext
content--------------text


<?php
$batas = 3;
$halaman = $_GET['halaman'];
if (!($halaman)) {
$posisi = 0;
$halaman = 1;
}
else{
$posisi=($halaman-1)*$batas;
}

$sql = "SELECT * FROM artikel ORDER BY kategori DESC LIMIT $posisi, $batas ";
$tampil = mysql_query($sql);
$no = $posisi+1;
while ($r = mysql_fetch_array($tampil)){
echo "

<b>$r[judul]</b>
$r[tanggal] | Kategori : $r[kategori]";

echo"
$r[singkat] <font size=\"1\" face=\"arial\" color=\"555555\"><a href=\"halaman.php?halaman=$no\" target=\"_blank\">Selengkapnya..</a> </td>
</tr>";
$no++;
}........................................Mohon penjelasannya Master..?? trima kasih..


Tanggapan

  • Ya Pake GET id kategori

    $sql = "SELECT * FROM artikel  where idkategori='$getidkategori' ORDER BY idkategori DESC LIMIT $posisi, $batas ";
  • sdh d coba master tp ngg jalan...
  • edited January 2013
    SELECT * FROM artikel WHERE kategori='$kategori' ORDER BY kategori DESC LIMIT $posisi, $batas
  • sdh di coba Master BOO ttp ngga jalan..???

    awlnya SQL nya
    $sql = "SELECT * FROM artikel ORDER BY tanggal DESC LIMIT $posisi, $batas ";
    lalu di ganti
    $sql = "SELECT * FROM artikel ORDER BY kategori DESC LIMIT $posisi, $batas ";
    hasilnya tetap sama ( semua artikel tampil )

    qu hnya pakai 1 tabel database ....????help

  • mana WHERE nya ?
    $kategori nya harus ada value nya, bisa lewat form, url atau fixed
  • sdh d coba tetap isi artikel ngga tampil....
    valuenya pada form
    jasa
    produk
    servis
    ....
    mohon koreksinya...??thank
  • kalo sampai artikel gak tampil, berarti $kategori gak ada valuenya

    soalnya pasti jadi : WHERE kategori=""

    $kategori sudah di set atau belum value nya ?
  • maksudnya di set pada formnya sdh..???
  • edited January 2013
    form pan di halaman html mas
    kalo $kategori kan di php nya

    kalo value $kategori berasal dari form, ya di assign kan dong value tsb
    supaya $kategori jadi ada isinya

    sama halnya situ meng-assign value utk $halaman, $batas, $posisi supaya variabel2 itu bisa dipake

  • ok master di coba dulu....thanks
  • edited January 2013
    Ok master BOO sdh jalan ...trima kasih atas penjelasan lengkapnya......

    <?php
    $batas = 3;
    $kategori = hiburan;
    $halaman = $_GET['halaman'];
    if (!($halaman)) {
    $posisi = 0;
    $halaman = 1;
    }
    else{
    $posisi=($halaman-1)*$batas;
    }
    SELECT * FROM artikel WHERE kategori='$kategori' ORDER BY kategori DESC LIMIT $posisi, $batas
    $tampil = mysql_query($sql);
    $no = $posisi+1;
    while ($r = mysql_fetch_array($tampil)){
    echo "
    $r[judul] $r[tanggal] | Kategori : $r[kategori]";
    echo"$r[singkat] <a href=\"halaman.php?halaman=$no\">Selengkapnya..</a> ";
    $no++;
    } ?>
    -------------------------------------------------------------------------
    Tapi Masalah yg baru muncul lgi ni master...

    Artikel per Kategori sudah tampil

    - judul----------sdh benar
    - kategori---------sdh benar
    -detail singkat-----------sdh benar
    -link content selengkapnya-  ( link ini klau d klick lari ke halaman lain ) mohon koreksinya lagi master...?

    -----------------------------------------------------------------------
    untuk script link halaman selengkapnya ( content )...

    <?php
        $halaman = $_GET['halaman'];
        $posisi=($halaman-1);
        $sql = "SELECT * FROM artikel ORDER BY kategori DESC LIMIT $posisi, 1";
        $tampil = mysql_query($sql);
        while ($r = mysql_fetch_array($tampil)){
        echo "<tr>
        <td>$r[judul] :$r[tanggal] | Kategori :$r[kategori]</td></tr>";
        echo"
    $r[content] ";}
        ?>


    apa harus di tambah juga
    $kategori = hiburan;
    WHERE kategori='$kategori'

    mohon koreksinya lagi master...?????
  • Ok master BOO sdh jalan semua...Terima Kasih Master..
    [-O<
    harus di tambah juga
    $kategori = hiburan;
    WHERE kategori='$kategori'
  • edited January 2013
    kalo string

    $kategori = 'hiburan'; // pake quote

    kategori itu asalnya dari mana sih ?
    apakah pilihan di form ?
    kalo dari form, ya mesti pake $_POST atau $_GET, tergantung method form nya

    $kategori = $_POST['kategori'] // kalo name field kategori di form 'kategori'



    kalo ke link selengkapnya, ya sama aja
    kalo kategori harus dimasukan mesti dikirim juga ke halaman selanjutnya
    biasanya kalo lewat link pake GET

    href="...?...&kategori=$kategori" // ... nya sesuaikan dengan kondisi awal

    lalu di script nya

    $kategori=$_GET['kategori']; // ambil dari GET



    kalo kategori ini ada kemungkinan berasal dari post atau get
    bisa pake $_REQUEST
  • ok master...Trima kasih...



    Minta contoh script artikel terkait per kategori



    sy sdh dpt contoh script tp masih ngga jalan...???

    <?php

    function artikelTerkait($id)
    {
    // batas threshold 40%
    $threshold = 40;
    $maksartikel = 3;
     
    $listBerita = Array();
    $query = "SELECT judul FROM artikel WHERE id = '$id'";
    $hasil = mysql_query($query);
    $data  = mysql_fetch_array($hasil);
    $kategori = $data['kategori'];
     
    $query = "SELECT id, kategori FROM berita WHERE id <> '$id'";
    $hasil = mysql_query($query);
    while ($data = mysql_fetch_array($hasil))
    {
    similar_text($judul, $data['kategori'], $percent);
    if ($percent >= $threshold)
    {
    if (count($listBerita) <= $maksBerita)
    {
    $listBerita[] = "<li><a href='index.php?id=".$data['id']."'>".$data['kategori']."</a></li>";
    }
    }

    if (count($listBerita) > 0)
    {
    echo "<ul>";
    for ($i=0; $i<=count($listBerita)-1; $i++)
    {
    echo $listBerita[$i];
    }
    echo "</ul>";
    }
    else echo "<p>Tidak ada artikel terkait</p>";
    }
    ?>
  • ...
    $query = "SELECT judul FROM artikel WHERE id = '$id'";
    ...
    ...
    $query = "SELECT id, kategori FROM berita WHERE id <> '$id'";
    ...

    kok table nya beda ?
  • hanya salah penulisan saja master...script udah jalan...
    tapi artikel terkaitnya hanya dibaca dari id, judul----maksud Q md baca dari kategori...
  • sama ... pake WHERE

    kalo lebih dari 1 kondisinya bisa pake AND atau OR tergantung butuh
    kondisi situ butuhnya AND
  • scriptnya artikel terkait perkategori udah jalan , tapi yg muncul hanya jenis value kategori....judulnya ngga tampil

    .......mohon koreksinya master
  • edited January 2013
    ya jelas judul kagak bakal ada, lha wong yg di SELECT cuma ini :

    SELECT id, kategori FROM ...
  • edited January 2013
    kalu sy tambahkan judul muncul pesan

    Warning: similar_text() expects at most 3 parameters, 5 given in C:\wamp\www\jasa\artikel\function.php on line 31

    Notice: Undefined variable: percent in C:\wamp\www\jasa\artikel\function.php on line 32
  • yg diubah kan cuma SELECT nya doang ...

    similiar_text nya diganti jadi apa ?
  • ni lengkapnya yg sudah di tambah/edit

    <?php
    function artikelTerkait($id)
    {
    $threshold = 40;
    $maksBerita = 3;
    $listBerita = Array();

    $query = "SELECT kategori FROM berita WHERE id = '$id'";
    $hasil = mysql_query($query);
    $data  = mysql_fetch_array($hasil);
    $judul = $data['judul'];
    $kategori = $data['kategori'];
     
    $query = "SELECT id, kategori, judul FROM berita WHERE id <> '$id'";
    $hasil = mysql_query($query);
    while ($data = mysql_fetch_array($hasil))
    {
    similar_text($judul, $data['judul'], $kategori, $data['kategori'],$percent);
    if ($percent >= $threshold)
    {
    if (count($listBerita) <= $maksBerita)
    {
    $listBerita[] = "<li><a href='index.php?id=".$data['id']."'>".$data['kategori'].", ".$data['judul']."</a></li>";
    }
    }

    if (count($listBerita) > 0)
    {
    echo "<ul>";
    for ($i=0; $i<=count($listBerita)-1; $i++)
    {
    echo $listBerita[$i];
    }
    echo "</ul>";
    }
    else echo "<p>Tidak ada artikel terkait</p>";
    }
    ?>
  • similar_text($judul, $data['judul'], $kategori, $data['kategori'],$percent);

    ya jelas kagak mungkiiinnnnn ...

    dari sononya similiar_text() parameternya cuma 3 (baca php manual)
    ini malah dimasukin 5 parameter ...

    bandingin judul aja, kategori kagak usah masuk
  • ini gimana to, kok jadi berubah semua :

    $query = "SELECT kategori FROM berita WHERE id = '$id'"; // ???

    kok malah jadi cuma ambil kategori ?

    dibawahnya ada :
    $judul = $data['judul'];

    mana mungkin ada ?
    lha kagak ada di SELECT
  • kalau pakai AND gimana tu maksunya master...??? mohon maaf
  • WHERE field1 = kondisi1 AND field2 = kondisi2
  • ini gimana to, kok jadi berubah semua :

    $query = "SELECT kategori FROM berita WHERE id = '$id'"; // ???......benar master disini kesalahannya

    di coba master..
  • Trima kasih Master Sudah jalan scriptnya.....
  • coba di posting ulang script nya ... gw re-check
  • edited January 2013
    <?php
    function artikelTerkait($id)
    {
    // batas threshold 40%
    $threshold = 40;
    $maksBerita = 5;
    $listBerita = Array();
    $query = "SELECT kategori, judul FROM berita WHERE id = '$id'";
    $hasil = mysql_query($query);
    $data  = mysql_fetch_array($hasil);
    $judul = $data['judul'];
    $kategori = $data['kategori'];
    $query = "SELECT id, kategori, judul FROM berita WHERE id <> '$id'";
    $hasil = mysql_query($query);
    while ($data = mysql_fetch_array($hasil))
    {
    similar_text($kategori, $data['kategori'], $percent);
    if ($percent >= $threshold)
    {
    if (count($listBerita) <= $maksBerita)
    {
    $listBerita[] = "<li><a href='index.php?id=".$data['id']."'>".$data['kategori'].", ".$data['judul']."</a></li>";
    }
    }

    if (count($listBerita) > 0)
    {
    echo "<ul>";
    for ($i=0; $i<=count($listBerita)-1; $i++)
    {
    echo $listBerita[$i];
    }
    echo "</ul>";
    }
    else echo "<p>Tidak ada artikel terkait</p>";
    }
    ?>

    Artikel terkait sudah tampil perkategori, bersama judulnya juga tampil...
    Trima kasih Master...



  • similar_text($kategori, $data['kategori'], $percent);

    halah, gw bilang kan judul-nya saja yg dibandingkan

    kalo kategori kagak ada gunanya, kategori pan cuma 1 kata
  • edited January 2013
    Kalu judul hanya di baca awal huruf yang sama...sdh di coba tadi

    minta dong no hp & PIN Master.....
  • edited January 2013
    masa sih ?

    bikin script baru buat testing, dan coba ini :
    <?php
    $text = 'ini ibu budi';
    $compare = array(
    'budi adik wati',
    'budi kakak iwan',
    'wati pergi ke sekolah',
    'iwan adik wati',
    'itu bapak budi',
    'ibu pergi ke pasar'
    );
    $p = 0;
     
    foreach($compare as $value) {
    similar_text($text,$value,$p);
    echo 'kemiripan : "'.$text.'" dan "'.$value.'" = '.round($p,2).'%<br>';
    }
    ?>
    anggap "ini ibu budi" adalah judul
    lalu isi variabel $compare adalah sekumpulan judul lain yg diperbandingkan
    similar_text() akan mencari judul yg dianggap paling mirip dengan "ini ibu budi" dan diberi nilai dalam persen
    semakin tinggi nilai nya berarti dianggap semakin mirip

    kemiripan : "ini ibu budi" dan "budi adik wati" = 30.77%
    kemiripan : "ini ibu budi" dan "budi kakak iwan" = 29.63%
    kemiripan : "ini ibu budi" dan "wati pergi ke sekolah" = 24.24%
    kemiripan : "ini ibu budi" dan "iwan adik wati" = 38.46%
    kemiripan : "ini ibu budi" dan "itu bapak budi" = 61.54%
    kemiripan : "ini ibu budi" dan "ibu pergi ke pasar" = 33.33%
    kalo dilihat hasilnya, "itu bapak budi" yg dianggap paling mirip dengan nilai 61.54%

    tapi niatnya bukan itu,
    di kasus situ
    mencari koleksi berita yg paling mirip dengan judul yg ditampilkan
    batasan yg dimau >= 40%
    (kalo pake contoh di atas bakal ketemu cuma 1 buah yg nilainya >= 40%)

    jadi bukan hanya mencari yg huruf depannya sama

    kalo cuma mencari yg kategorinya sama mah, kagak perlu pake similar_text()
    cuma buang2 proses
  • ok di pelajari dulu treadnya Master..Thank
Sign In or Register to comment.