PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   php pomoć (https://forum.pcekspert.com/showthread.php?t=255300)

dapapo 03.01.2014. 22:36

php pomoć
 
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 ";
        }

    }
}

?>


zwer 04.01.2014. 10:54

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 :-)


Sva vremena su GMT +2. Sada je 00:09.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger