Forumi
Home Pravila i pomoć Članovi Kalendar Današnji postovi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 03.01.2014., 22:36   #1
dapapo
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: Kastav
Postovi: 7
php pomoć

<?php

session_start
();

include 
"config.php";

$query "SELECT * FROM tiket WHERE status='Aktivan'";
$result mysql_query($query) or die(mysql_error());
while (
$info mysql_fetch_array($result)) {

    
$parovi $info['parovi'];
    
$print  json_decode($paroviTRUE);

     
$id_listica $info['id'];

    
$dobitan 0;
    
$aktivan 0;
    
$gubitan 0;

    foreach (
$print as $listic) {

        
$id     $listic['id'];
        
$status $listic['status'];

        if (
$status == "Gubitan") {
            
$gubitan++;
        } else if (
$status == "Aktivan") {
            
$aktivan++;
        }

        if (
$gubitan 0) {
            echo 
$info['id'];
            echo 
"-Gubitan ";
        } else if (
$aktivan == && $gubitan == 0) {
            echo 
$info['id'];
            echo 
"-Dobitan ";
        } else if (
$aktivan 0) {
            echo 
$info['id'];
            echo 
"-Aktivan ";
        }

    }
}

?>
-->
Pozdrav... Naišao sam na jedan problem i neznam kako ga riješiti. Evo o čemu se radi. Ovako mi izgleda izlaz na skripti:
Code:
List ID: 45  string '[{"id":"2","domacin":"Man City","gost":"Liverpool","tip":"1","kvota":"1.8","status":"Dobitan"},{"id":"4","domacin":"Inter","gost":"Milan","tip":"1","kvota":"2.5","status":"Aktivan"}]' (length=182)
Znači imam neke liste koja ima unikatni ID i neke podatke u arrayu. Trebao bi napraviti neku funkciju ili štagod već koja će kod svake liste ući u array i provjeriti slijedeće:
  1. Ako je barem jedan status Gubitni, print Gubitni za taj ID
  2. Ako nema gubitnih, ali je barem jedan status Aktivan print Aktivan za taj ID
  3. Ako nema ni aktivnih ni gubitnih, to znači da su svi dobitni pa isprintaj Dobitan za taj ID
Meni izgleda ovako taj ispis:

Code:
List ID: 45
  string '[{"id":"2","domacin":"Man  City","gost":"Liverpool","tip":"1","kvota":"1.8","status":"Dobitan"},{"id":"4","domacin":"Inter","gost":"Milan","tip":"1","kvota":"2.5","status":"Aktivan"}]'  (length=182)
  45-Dobitan 45-Aktivan
Znači on meni za svaki List ID ispiše sve statuse koje je pronašao u arrayu.

Znači logika je:
Code:
gubitan=0 
aktivan=0 
if status is gubitan, then gubitan++
if status is aktivan, then aktivan++
Treba napraviti da kod svake liste napravi te provjere i ispiše odgovarajući rezultat.

Evo, ovako izgleda skripta:

PHP kod:
<?php

session_start
();

include 
"config.php";

$query "SELECT * FROM tiket WHERE status='Aktivan'";
$result mysql_query($query) or die(mysql_error());
while (
$info mysql_fetch_array($result)) {

    
$parovi $info['parovi'];
    
$print  json_decode($paroviTRUE);

     
$id_listica $info['id'];

    
$dobitan 0;
    
$aktivan 0;
    
$gubitan 0;

    foreach (
$print as $listic) {

        
$id     $listic['id'];
        
$status $listic['status'];

        if (
$status == "Gubitan") {
            
$gubitan++;
        } else if (
$status == "Aktivan") {
            
$aktivan++;
        }

        if (
$gubitan 0) {
            echo 
$info['id'];
            echo 
"-Gubitan ";
        } else if (
$aktivan == && $gubitan == 0) {
            echo 
$info['id'];
            echo 
"-Dobitan ";
        } else if (
$aktivan 0) {
            echo 
$info['id'];
            echo 
"-Aktivan ";
        }

    }
}

?>
dapapo je offline   Reply With Quote
Staro 04.01.2014., 10:54   #2
zwer
crnjo
Moj komp
 
zwer's Avatar
 
Datum registracije: Mar 2003
Lokacija: Zagreb
Postovi: 1,907
<?php

// izmisli vise podataka :-)
$data['42'] = '[{"id":"2","domacin":"Man City","gost":"Liverpool","tip":"1","kvota":"1.8","status":"Dobitan"},{"id":"4","domacin":"Inter","gost":"Milan","tip":"1","kvota":"2.5","status":"Aktivan"}]';
$data['43'] = '[{"id":"2","domacin":"Man City","gost":"Liverpool","tip":"1","kvota":"1.8","status":"Aktivan"},{"id":"4","domacin":"Inter","gost":"Milan","tip":"1","kvota":"2.5","status":"Dobitan"}]';
$data['44'] = '[{"id":"2","domacin":"Man City","gost":"Liverpool","tip":"1","kvota":"1.8","status":"Aktivan"},{"id":"4","domacin":"Inter","gost":"Milan","tip":"1","kvota":"2.5","status":"Dobitan"}]';

foreach (
$data as $listKey => $listItem) {
    
$tickets json_decode($listItemtrue);

    
$dobitan 0;
    
$gubitan 0;
    
$aktivan 0;

    
// za sve tickete u listi ticketa provjeri statuse
    
foreach ($tickets as $ticket) {
        switch (
$ticket['status']) {
            case 
'Gubitan':
                
$gubitan++;
                break;
            case 
'Aktivan':
                
$aktivan++;
                break;
            case 
'Dobitan':
                
$aktivan++;
                break;
        }
    }

    
// output
    
switch (true) {
        case 
$gubitan 0:
            echo 
"ID: "$listKey ." - Gubitan\n";
            break;
        case (
$aktivan == && $gubitan == 0):
            echo 
"ID: "$listKey ." - Dobitan\n";
            break;
        case 
$aktivan 0:
            echo 
"ID: "$listKey ." - Aktivan\n";
            break;
    }
}
echo 
"\n";
Ovako nesto. Kolko vidim gore si outputao za svaki subset unutar jedne liste (npr. ove id 45), a shvatio sam da moras prebrojat sve statuse unutar jedne liste i outputat samo jednom za tu listu. Ili daj veci set podataka za testiranje i objasni malo bolje :-)-->
PHP kod:
<?php

// izmisli vise podataka :-)
$data['42'] = '[{"id":"2","domacin":"Man City","gost":"Liverpool","tip":"1","kvota":"1.8","status":"Dobitan"},{"id":"4","domacin":"Inter","gost":"Milan","tip":"1","kvota":"2.5","status":"Aktivan"}]';
$data['43'] = '[{"id":"2","domacin":"Man City","gost":"Liverpool","tip":"1","kvota":"1.8","status":"Aktivan"},{"id":"4","domacin":"Inter","gost":"Milan","tip":"1","kvota":"2.5","status":"Dobitan"}]';
$data['44'] = '[{"id":"2","domacin":"Man City","gost":"Liverpool","tip":"1","kvota":"1.8","status":"Aktivan"},{"id":"4","domacin":"Inter","gost":"Milan","tip":"1","kvota":"2.5","status":"Dobitan"}]';

foreach (
$data as $listKey => $listItem) {
    
$tickets json_decode($listItemtrue);

    
$dobitan 0;
    
$gubitan 0;
    
$aktivan 0;

    
// za sve tickete u listi ticketa provjeri statuse
    
foreach ($tickets as $ticket) {
        switch (
$ticket['status']) {
            case 
'Gubitan':
                
$gubitan++;
                break;
            case 
'Aktivan':
                
$aktivan++;
                break;
            case 
'Dobitan':
                
$aktivan++;
                break;
        }
    }

    
// output
    
switch (true) {
        case 
$gubitan 0:
            echo 
"ID: "$listKey ." - Gubitan\n";
            break;
        case (
$aktivan == && $gubitan == 0):
            echo 
"ID: "$listKey ." - Dobitan\n";
            break;
        case 
$aktivan 0:
            echo 
"ID: "$listKey ." - Aktivan\n";
            break;
    }
}
echo 
"\n";
Ovako nesto. Kolko vidim gore si outputao za svaki subset unutar jedne liste (npr. ove id 45), a shvatio sam da moras prebrojat sve statuse unutar jedne liste i outputat samo jednom za tu listu. Ili daj veci set podataka za testiranje i objasni malo bolje :-)
__________________
9900K-32GB-5TB-3060TI
zwer je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na