folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Php Class Function Return Sorunu



Php Class Function Return Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Realist
    Realist's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    class.php

    <?php
    class lists
    {
    function list_article()
    {
    $page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
    $pageof = 10;
    $limit = ($page - 1) * $pageof;
    $query = mysql_query('select * from article order by id desc limit ' . $limit . ', ' . $pageof);
    while($results= mysql_fetch_assoc($query)) {
    $raw = '<a href="'.$results['url'].'.html">'.substr(trim(strip_tags($results['title'])),0,30).'</a>';
    return $raw;
    }
    }
    ?>

    model.php

    <?php
    include('class.php');
    $lists = new lists;
    $article_list = $lists->list_article();
    ?>

    view.php

    <?php
    include('model.php');
    print $article_list;
    ?>

     

    evet hacılar yukardaki sınıfı bu şekilde kullanıyorum ama bana 10 tane değil 1 tane makale yazdırıyor problem nerde acaba ?


    not : db bağlantı fonksiyonunu falan yazmadım kafa karıştırmasın sorun salt çıksın diye


    ..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sokoban
    sokoban's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek

    $raw.= '<a href="'.$results['url'].'.html">'.substr(trim(strip_tags($results['title'])),0,30).'</a>';

     

    böyle dener misin hocam.Ayrıca return'ü de while'ın içinden çıkart.

    sokoban tarafından 26/Ağu/13 15:24 tarihinde düzenlenmiştir

    .
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    sokoban bunu yazdı

    $raw.= '.$results['url'].'.html">'.substr(trim(strip_tags($results['title'])),0,30).'';

     

    böyle dener misin hocam.Ayrıca return'ü de while'ın içinden çıkart.

    Böyle tek değişkende biriktirmezmi?

    @realist:

    eğer yanlış düşünmüyorsam belirttiğin limit değerindeki en son articleı yazdırıyordur, return while içinde olduğu için döngü boyunca atama yapar ve en son alınan değer kalır ekrana yazdıracağın değişkende.

    böyle yapmak yerine model.phpyi boşver, fonksiyondan değer döndürmeyede uğraşma, geçerli sayfa değerine göre gerekli limit değerlerini fonksiyona parametre olarak gönder ve direk while döngüsünde yazdır.


    :)
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Realist
    Realist's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek
    sokoban bunu yazdı

    $raw.= '.$results['url'].'.html">'.substr(trim(strip_tags($results['title'])),0,30).'';

     

    böyle dener misin hocam.Ayrıca return'ü de while'ın içinden çıkart.

    aynen hacı çalıştı nokta operatorunun burdaki görevi nedir acaba


    ..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sokoban
    sokoban's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek
    Realist bunu yazdı
    sokoban bunu yazdı

    $raw.= '.$results['url'].'.html">'.substr(trim(strip_tags($results['title'])),0,30).'';

     

    böyle dener misin hocam.Ayrıca return'ü de while'ın içinden çıkart.

    aynen hacı çalıştı nokta operatorunun burdaki görevi nedir acaba

    nokta ile iki stringi birbirine bağlayabilirsin hocam php'de.


    $c+=1 demek ile $c.="XYZ" demenin bir farkı yok ikiside sonucu aynı değişkenin içine ekliyor.


    .
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 06/Nisan/2007
    Homo

    @sokoban olayi cozmus zaten ama

     

    @realist hocam fonksiyonun icinde return kullandiginda php o fonksiyondan cikar hocam, while icinde return yaparak birden fazla kez return yapamazsin. orda return yerine echo kullansanda olabilirdi mesela, ama fonksiyonlarin icinde echo kullanmakta pek tercih edilen birsey degil

    sokoban in cozumu disinda da soyle birsey yapabilirsin : 

    $temp = array();

    $i = 1;

    while($i < 10){

    $temp[] = $i;

    ++$i;

    }

    dersen $temp arrayinin icine sirayla 1,2,3 ...... 10 a kadar atacaktir, [] arrayin icinde yeni bi satir acar


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
Toplam Hit: 820 Toplam Mesaj: 6