• 16-05-2015, 11:54:19
    #1
    Merhaba arkadaşlar phpyi yeni öğreniyorum ve bir yerde takılıp kaldım

    şöyle bir sorunum var

    durum adında bir sütuna varsayılan değeri 0 olarak atıyorum böylece giren tüm veriler onaysız olarak gözükmekte daha sonra onayladıkları mı aynı sütunda 1 olarak düzenliyorum buraya kadar bir sorun yok

    fakat ben 1 ve 0 olan yani onaylı ve onaysız kayıtların tek tek sayılarını alıp bir birlerine olan yüzdelerini göstermek istiyorum

    yani %10 onaysız mesaj var %90 onaylı mesaj var gibi

    bunu nasıl yapabilirim nette çok aradım ama bulamadım malesef
  • 16-05-2015, 12:01:51
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Selamlar kolay gelsin,

    İstediğin bir sorgunun kaç sonucu olduğunu şöyle alabilirsin :

    <?php 
    $toplam = mysql_num_rows(mysql_query("SELECT * FROM kelimeler")); 
    $yuzdesiistenilen = mysql_num_rows(mysql_query("SELECT * FROM kelimeler WHERE onay=1")); 
    ?>
    Yüzde hesaplamak için de şöyle yapabiliriz :

    <?php 
    $yuzde = ($yuzdesiistenilen*100)/$toplam;
    ?>
    Umarım yardımcı olabilmişimdir. 100-$yuzde de onaysızların yüzdesini verir zaten.

    Not : mysql_num_rows kullanımı yavaşlatıyor mu emin olamadım, select count diye bir olay da var onu kullanmak daha hızlı olabilir.
  • 16-05-2015, 12:02:06
    #3
    Sorununuz bunları çekmekte mi oranı yapmakta mı ?

    Çekme kısmını mysqli kullanıyorsanız şöyle yapacaksınız.

    $onaysiz  = mysqli_num_rows(mysqli_query($baglanti, "SELECT id FROM tablo WHERE sutun = 0"));
    $onayli  = mysqli_num_rows(mysqli_query($baglanti, "SELECT id FROM tablo WHERE sutun = 1"));
    Oran kısmı iste

    $oran = 100/$onaysiz+$onayli;
    
    $onaylioran = $oran*$onayli;
    $onaysizoran = $oran*$onaysiz;
  • 16-05-2015, 12:08:05
    #4
    <?php

    $onayli = mysql_num_rows(mysql_query("SELECT * FROM icerik where durum=1"));
    $onaysiz = mysql_num_rows(mysql_query("SELECT * FROM icerik where durum=0"));

    $toplam = $onayli + $onaysiz;
    $onayli_yuzde = substr(($onayli/$toplam) * 100, 0, 5);
    $onaysiz_yuzde = substr(($onaysiz/$toplam) * 100, 0, 5);

    ?>

    şöyle birşey düşündüm ama test etmedim. bir denersen güzel olur. kolay gelsin.
  • 16-05-2015, 12:35:00
    #5
    hepinize teşekkür ederim deniyeceğim şimdi

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:35:00 -->-> Daha önceki mesaj 12:27:40 --

    Ceu adlı üyeden alıntı: mesajı görüntüle
    <?php

    $onayli = mysql_num_rows(mysql_query("SELECT * FROM icerik where durum=1"));
    $onaysiz = mysql_num_rows(mysql_query("SELECT * FROM icerik where durum=0"));

    $toplam = $onayli + $onaysiz;
    $onayli_yuzde = substr(($onayli/$toplam) * 100, 0, 5);
    $onaysiz_yuzde = substr(($onaysiz/$toplam) * 100, 0, 5);

    ?>

    şöyle birşey düşündüm ama test etmedim. bir denersen güzel olur. kolay gelsin.

    hocam verdiğiniz kod çalışıyor yalnız 2 sonucu aynı anda yazdırınca şöyle bir hata alıyorum

    Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in C:\AppServ\www\servispanel\php2\say.php on line 16



    sizin verdiğiniz koda sadece ekleme olarak sayfaya yazdırmayı söyledim ve kendime göre mysql bilgilerini girdim kod aşağıdaki gibi


    <?php
    require_once("inc/config.php");
    
    ?>
    <?php
    
    $onayli = mysql_num_rows(mysql_query("SELECT * FROM odaariza where arizadurum=1"));
    $onaysiz = mysql_num_rows(mysql_query("SELECT * FROM odaariza where arizadurum=0"));
    
    $toplam = $onayli + $onaysiz;
    $onayli_yuzde = substr(($onayli/$toplam) * 100, 0, 5);
    $onaysiz_yuzde = substr(($onaysiz/$toplam) * 100, 0, 5);
    
    echo $onaysiz_yuzde;
    
    echo $onaysiz_yuzde;
    
    ?>
  • 16-05-2015, 12:38:35
    #6
    Echolardan sonra noktalı virgül kullanmalısınız.
  • 16-05-2015, 12:57:26
    #7
    tüm herkese tekrardan teşekkür ediyorum bazen çok basit şeyleri kaçırıyorum sizlerde olmasanız ben ne yapardım ellerinize sağlık

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:57:26 -->-> Daha önceki mesaj 12:41:15 --

    bu arada verdiğiniz kod bu işe yarıyor tekrardan teşekkürler