• 17-07-2008, 20:47:24
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar,
    listeleme fonksiyonu yazdım. Ama listeleme yapmıyor acaba nerede hata yaptım bakarsanız sevinirim.
    Teşekkurler

    <?php
    include('config.php');
    dbbaglan();
    function  liste($bolum)
    {
    $sirala = $_GET[sirala];
    if (!isset($sirala)) {
    //Listeleme
    
    $harf = array('A', 'B', 'C', 'Ç', 'D', 'E', 'F', 'G', 'H', 'I', 'İ', 'J', 'K', 'L', 'M', 'N', 'O', 'Ö', 'P', 'R', 'S', 'Ş', 'T', 'U', 'Ü', 'V', 'Y', 'Z'); 
    for($i=0;$i<28;$i++) { 
    echo "<a href=\"?sirala=$harf[$i]\">$harf[$i]</a> ";
    }
    //Liste Seçilmezse
    if(isset($_REQUEST["baslangic"])){
    $baslangic=$_REQUEST["baslangic"];
    }
    else{
    $baslangic=0;
    }
    $kayitsayisi=30;
    $sorgu9=mysql_query("select count(*) as 'toplam' from '.$bolum.' ORDER BY id ASC");
    $toplamSayi=mysql_result($sorgu9,0,'toplam'); 
    $sorgu=mysql_query("select id,baslik from '.$bolum.' ORDER BY id ASC limit ".$baslangic.",".$kayitsayisi);
    //Liste Seçilmezse
    
    //Sayfayı Göster
     while($sonuc=mysql_fetch_array($sorgu))
     {
    $id=$sonuc["id"];
    $baslik=$sonuc["baslik"];
    $url1= makeSEO($baslik);
    echo '<a href="makale.php?id='.$id.'">'.$baslik.'</a>'; 
    echo "<br />";
    }
    //Sayfayı Göster
    }
    else
    {
    $iharf=substr($sirala,0,1);
    //echo $iharf;
    //Liste Seçilirse
    if(isset($_REQUEST["baslangic"])){
    $baslangic=$_REQUEST["baslangic"];
    }
    else{
    $baslangic=0;
    }
    $kayitsayisi=30;
    $sorgu9=mysql_query("select count(*) as 'toplam' from '.$bolum.' WHERE baslik LIKE '$iharf%' ORDER BY id ASC");
    $toplamSayi=mysql_result($sorgu9,0,'toplam'); 
    $sorgu=mysql_query("select id,baslik from '.$bolum.' WHERE baslik LIKE '$iharf%' ORDER BY id ASC limit ".$baslangic.",".$kayitsayisi);
    
    //Sayfayı Göster
     while($sonuc=mysql_fetch_array($sorgu))
     {
    $id=$sonuc["id"];
    $baslik=$sonuc["baslik"];
    echo '<a href="makale.php?id='.$id.'">'.$baslik.'</a>'; 
    echo "<br />";
    }
    //Sayfayı Göster
    
    //Liste Seçilirse
    }
    //Alt Liste
    $son=$baslangic + $kayit_sayisi;
    echo 'Toplam <b><font color="#FF0000">'.$toplamSayi.'</b></font> kayıt bulundu.<br> ';
    if($toplamSayi>$kayit_sayisi)
    {
    echo '['.($baslangic+1).'] arası ['.$son.'] listeleniyor<br />';
    $t=0;
    $sayfa=1;
    
    
    while($t<$toplamSayi)
    {
    if($baslangic!=$t)
     echo '<a href='.$_SERVER['PHP_SELF'].'?baslangic='.$t.'>'.$sayfa.'</a> - ';
    else
     echo $sayfa.' - ';
    if($sayfa%10==0){
    echo '<br />';
    }
    $t+=$kayit_sayisi;
    $sayfa++;
    }
    
    } 
    //Alt Liste
    }
    $bolum = "haber";
    liste($bolum)
    ?>
  • 18-07-2008, 12:26:05
    #2
    Üyeliği durduruldu
    el atan varmı
  • 18-07-2008, 13:31:06
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    $sirala = $_GET[sirala]; yerine $sirala = $_GET['sirala']; olarak denermisin.
  • 18-07-2008, 18:21:22
    #4
    Bu şekilde çalışması lazım
    <?php 
    include('config.php'); 
    dbbaglan(); 
    function  liste($bolum) 
    { 
    $sirala = $_GET['sirala']; 
    if (!isset($sirala)) { 
    //Listeleme 
    
    $harf = array('A', 'B', 'C', 'Ç', 'D', 'E', 'F', 'G', 'H', 'I', 'İ', 'J', 'K', 'L', 'M', 'N', 'O', 'Ö', 'P', 'R', 'S', 'Ş', 'T', 'U', 'Ü', 'V', 'Y', 'Z');  
    for($i=0;$i<28;$i++) {  
    echo "<a href=\"?sirala=$harf[$i]\">$harf[$i]</a> "; 
    } 
    //Liste Seçilmezse 
    if(isset($_REQUEST["baslangic"])){ 
    $baslangic=$_REQUEST["baslangic"]; 
    } 
    else{ 
    $baslangic=0; 
    } 
    $kayitsayisi=30; 
    $sorgu9=mysql_query("select count(*) as 'toplam' from '".$bolum."' ORDER BY id ASC"); 
    $toplamSayi=mysql_result($sorgu9,0,'toplam');  
    $sorgu=mysql_query("select id,baslik from '".$bolum."' ORDER BY id ASC limit ".$baslangic.",".$kayitsayisi); 
    //Liste Seçilmezse 
    
    //Sayfayı Göster 
     while($sonuc=mysql_fetch_array($sorgu)) 
     { 
    $id=$sonuc["id"]; 
    $baslik=$sonuc["baslik"]; 
    $url1= makeSEO($baslik); 
    echo '<a href="makale.php?id='.$id.'">'.$baslik.'</a>';  
    echo "<br />"; 
    } 
    //Sayfayı Göster 
    } 
    else 
    { 
    $iharf=substr($sirala,0,1); 
    //echo $iharf; 
    //Liste Seçilirse 
    if(isset($_REQUEST["baslangic"])){ 
    $baslangic=$_REQUEST["baslangic"]; 
    } 
    else{ 
    $baslangic=0; 
    } 
    $kayitsayisi=30; 
    $sorgu9=mysql_query("select count(*) as 'toplam' from '".$bolum."' WHERE baslik LIKE '$iharf%' ORDER BY id ASC"); 
    $toplamSayi=mysql_result($sorgu9,0,'toplam');  
    $sorgu=mysql_query("select id,baslik from '".$bolum."' WHERE baslik LIKE '$iharf%' ORDER BY id ASC limit ".$baslangic.",".$kayitsayisi); 
    
    //Sayfayı Göster 
     while($sonuc=mysql_fetch_array($sorgu)) 
     { 
    $id=$sonuc["id"]; 
    $baslik=$sonuc["baslik"]; 
    echo '<a href="makale.php?id='.$id.'">'.$baslik.'</a>';  
    echo "<br />"; 
    } 
    //Sayfayı Göster 
    
    //Liste Seçilirse 
    } 
    //Alt Liste 
    $son=$baslangic + $kayit_sayisi; 
    echo 'Toplam <b><font color="#FF0000">'.$toplamSayi.'</b></font> kayıt bulundu.<br> '; 
    if($toplamSayi>$kayit_sayisi) 
    { 
    echo '['.($baslangic+1).'] arası ['.$son.'] listeleniyor<br />'; 
    $t=0; 
    $sayfa=1; 
    
    
    while($t<$toplamSayi) 
    { 
    if($baslangic!=$t) 
     echo '<a href='.$_SERVER['PHP_SELF'].'?baslangic='.$t.'>'.$sayfa.'</a> - '; 
    else 
     echo $sayfa.' - '; 
    if($sayfa%10==0){ 
    echo '<br />'; 
    } 
    $t+=$kayit_sayisi; 
    $sayfa++; 
    } 
    
    }  
    //Alt Liste 
    } 
    $bolum = "haber"; 
    liste($bolum) 
    ?>
    Jagum'un dediğini uyguladım o kısım hatalıydı,
    artı db sorgularında
    $sorgu9=mysql_query("select count(*) as 'toplam' from '.$bolum.' ORDER BY id ASC");
    bu şekilde from '.$bolum.' noktaları boş yere koymuşsun onları kaldırırsanda çalışır o şekilde yapacaksanda '".$bolum."' olarak çift tırnak içinde almalısın.
    kolay gelsin.
  • 19-07-2008, 01:24:14
    #5
    Üyeliği durduruldu
    fonskiyon başlatırken global $_GET[sirala] gibi içeri alman gerekiyor.
  • 20-07-2008, 23:39:43
    #6
    jagum adlı üyeden alıntı: mesajı görüntüle
    $sirala = $_GET[sirala]; yerine $sirala = $_GET['sirala']; olarak denermisin.
    sirala kelimesi define olarak tanımlanmadığı sürece bu yazım hata teşkil etmez.

    Dogu_Bey adlı üyeden alıntı: mesajı görüntüle
    fonskiyon başlatırken global $_GET[sirala] gibi içeri alman gerekiyor.
    Bu şekilde yazarsanız yazım hatası alırsınız ve $_GET, $_POST vb. değişkenler süper global değişkenlerdir bunları global olarak belirtmenize gerek yok.

    Ve soruna gelince.
    veri tabanı yapısı ve zamanım olmayınca bakamadım koda ama şunu bi ekleyip hata veriyormu diye kontrol edermisin. Db den verileri çektikden sonra hemen alt kısma echo mysql_error(); yazarmısın, bakalım bir hata filan var mı
  • 21-07-2008, 17:47:54
    #7
    Üyeliği durduruldu
    Alıntı
    Bu şekilde yazarsanız yazım hatası alırsınız ve $_GET, $_POST vb. değişkenler süper global değişkenlerdir bunları global olarak belirtmenize gerek yok.
    function  liste($bolum)
    {
    $sirala = $_GET[sirala];
    global $sirala;
    if (!isset($sirala)) {
    //Listeleme
    Mustafa90 bu bilgileri kanıtlarmısın insanlara? (yada yukardaki örneği incele bakalım ne gibi bir hata alacaksın)

    Evrensel Değişkenler Yani _GET _POST _REGUEST vs.. Fonksiyon içine alınırken
    ve arkadaşın diyagram örneğinindeki kullanımı global olarak belirtilmeli.
  • 21-07-2008, 21:51:25
    #8
    Bunları söylemeden önce denediniz mi ?
    Denediyseniz o zaman yanlış denemişsiniz galiba.
    Eğer denemediyseniz, bu mesajı yazmamalıydınız.
    İspat konusuna gelince.
    <?php
    function a(){
    	print_r($_GET);
    }
    a();
    ?>
    Yukarı daki kodu index.php?a=3&b=2 şeklinde çalıştırırmısınız acaba ekrana ne yazacak . Göreceksiniz ki global olarak tanımlama yapmadan değişkeni kullandım.
    Şimdi ise 2. sine geleyim.
    <?php
    global $_GET['a'];
    ?>
    Yukarıdaki kodu hata almadan çalıştırabilecekmisini bakalım

    Lütfen denemeden mesaj yazmayın...
  • 21-07-2008, 22:03:34
    #9
    Üyeliği durduruldu
    Ben 12 sene önce denedim kardeş.
    sen kafanı rahat tut.

    Sana sormak lazım onu sen denedin mi? Ben sana denemen için kodda verdim yukardan okumadın mı cevap yazıyorsun?

    bu örneğin hala ne anlama geldiğini kavramış değilim? (saçma sapan bişi)
    mustafa90 adlı üyeden alıntı: mesajı görüntüle
    Şimdi ise 2. sine geleyim.
    <?php
    global $_GET['a'];
    ?>
    Yukarıdaki kodu hata almadan çalıştırabilecekmisini bakalım

    bu işi deneye deneye öğrenip gelip insnalara bişiler biliyormuuş gibi yalan yanlış bilgi vermekten vazgeç.
    Sen kalkıp amele gibi direck $_GET Değişkenini global olarak göstermeye kalkarsan tabbiki hata alacaksın. (bu cok normal bişidir)

    buyur dene bakalım.
    <?php
    $gelen = $_GET['a'];
    global $gelen;
    ?>
    bu kendi başına hiç birşey ifade etmez. Bunu global olarak gösterebilmen için fonksiyon içinde kullancaksın ki global'in bi anlamı olsun
    Alıntı
    Göreceksiniz ki global olarak tanımlama yapmadan değişkeni kullandım.
    Daha global'ın nerde ne için kullanıldığı hakkında zerre kadar bilgin yok ayrıca global neden kullanılır onuda bilmediğin her halinden belli.

    Konuya Hakim Değilsen bilmiyorsan Bari Bilene Laf Atma.
    Oturup Ders Alacağına Kalkmış Kafa tutuyorsun. bu işler denemekle olmaz öğrenilerek olur.

    arkadaşlar Programlama Ciddi bir konudur. birilerine kafa tutup post kasmak istiyorsanız yanlış bir tercihtir bu.
    konu hakkında bilgi olmadan başkalarını yanlış yönlendirmeyin.
    ve bu sayede bunu öğrenmek isteyen arkadaşlarada yanlış bilgi vermeyin.