Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [smistamento ....]

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    225

    [smistamento ....]

    Salve,
    ho fatto un'applicativo per il call-center dove gli operatori, dopo essersi loggati, possono contattare dei nominativi a loro inizialemente assegnati.
    Devono riportare quindi gli esiti dei contatti.
    Se un operatore "finisce" i suoi nominativi, il sistema gli assegnerà automaticamente dei nominativi di altri operatori non loggati, con esiti del tipo "Non trovato" o "Non risponde". Così ovviamente è uguale per tutti gli operatori.

    Vorrei però fare una cosa.
    Vorrei che i nominativi con quegli esiti, venissero smistati in maniera equa a tutti gli operatori che sono loggati al sistema.

    Ho fatto una query di count di tutti i nominati con quegli esiti e una di count di tutti gli operatori loggati, ma ..... ?? Come incastro le cose?

    Datemi dei suggerimenti
    Grazie

  2. #2
    dividi il numero degli utenti con quegli esiti per il numero di operatori loggati eliminando le virgole
    poi fai una query che estragga tutti gli operatori loggati

    Fai come se li volessi stampare a video quindi fai un while

    Nel while invece di echo ....

    fai una query che estragga gli utenti (come numero massimo inserisci il numero ottenuto dalla precedente divisione). ogni utente estratto lo assegni all'operatore per il quel stai facendo il ciclo while.

    Non so se sono stato molto chiaro quindi se hai dei dubbi posta.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    225

    [assegnazione ....]

    Ciao,
    ti posto più o meno quello che ho fatto.

    Dunque:
    Prima cosa, ho fatto la query che estrae tutti i nominativi con esito telefonata del tipo: "Non trovato" e "Non risponde":

    $query1 = "SELECT count(*) AS totale1 .... FROM .... WHERE ....";
    $res1 = mysql_query($query1);
    if(!$res1)
    die ("Error Sql: Database error1");
    $row1 = mysql_fetch_assoc($res1);
    $row1[totale1];

    Dopo di che ho fatto la query che estrae il numero di operatori loggati:
    $query2 = "SELECT count(*) AS totale2 FROM .... WHERE ...";
    $res2 = mysql_query($query2);
    if(!$res2)
    die ("Error Sql: error2");
    $row2 = mysql_fetch_assoc($res2);
    $row2[totale2];

    quindi la divisione:
    $div = ($row1[totale1] / $row2[totale2]);

    Per vusualizzare i nominativi ho fatto un ciclo for() con il risultato della query estratto con $rows = mysql_num_rows($query);

    Qui non so come assegnare un numero equo di nominativi agli operatori loggati.

    Illuminami!!!

  4. #4
    Allora.
    Io farei un ciclo while sugli operatori estraendo l'id. All'intyerno del ciclo while un ciclo for. Nel cicolo for devi inserire un contatore che finchè è minore del risultato ottenuto dalla divisione si incerementa. Ad ogni "passaggio" assegni il cliente all'operatore per il quale stai facendo il ciclo while. Fammi sapere. Ciao.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    225

    [smistamento ...]

    ok ti faccio sapere

    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    225

    [smistamento ...]

    ok ti faccio sapere

    grazie

  7. #7
    Di niente. Ciao.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    225

    [assegnazione ...]

    Ciao,
    c'è qualcosa che non va. Sbaglio sicuramente in qualcosa.
    Ti posto il codice che ho fatto:

    Inizialmente vengono assegnati un numero di nominativi da contattare agli operatori telefonici.

    Ho prima fatto una query di selezione dei nominativi con esito "Non risponde" e "Non trovato", assegnati a tutti gli operatori NON loggati, per vedere se ci sono nominativi con quel tipo di esito da smistare:
    $query_assegn = "SELECT ... FROM ... WHERE esito = 'Non risponde' OR esito = 'Non trovato'";
    $res_ass = mysql_query($query_assegn);
    $rows = mysql_num_rows($res_ass);

    Poi ho fatto la query che estrae la count degli operatori loggati
    in modo da assegnare i nominativi in maniera equa:
    $que_c2 = "SELECT count(*) AS totale2 FROM operatori WHERE operatori.login = 'X'";
    $res_c2 = mysql_query($que_c2);
    $rep_c2 = mysql_fetch_assoc($res_c2);
    $op = $rep_c2['totale2'];

    Poi la query che estrae la count dei nominativi con esito "Non risponde" e "Non trovato"
    $assegn_count = "SELECT count(*) AS totale3 FROM ... WHERE ...";
    $res_coun = mysql_query($assegn_count);
    $res_coun = mysql_fetch_assoc($res_coun);
    $nomi = $res_coun['totale3'];

    Poi la divisione:
    $divisione = ($nomi / $op);

    QUI BUIO TOTALE


    In origine, prima dello smistamento equo dei nominativi per gli operatori, avevo fatto:

    Se ci sono nominativi da smistare, allora:
    if ($rows > 0) {
    $nomi = 2; //faccio vedere solo 2 nominativi all'operatore loggato ogni volta che viene aggiornata la pagina

    Seleziono l'ID dell'operatore loggato
    $select_IDop = "SELECT operatori.IDoperatore FROM operatori WHERE operatori.codice_operatore = '$codice'";
    $res_idop = mysql_query($select_IDop);
    $row = mysql_fetch_array($res_idop);

    $i = 0;
    while($row_ass = mysql_fetch_assoc($res_ass) and $i < $nomi) {
    Memorizzo l'ID dell'operatore loggato per associare i 2 nominativi estratti
    $update_id = "UPDATE clienti, esiti SET clienti.IDoperatore = '$row[IDoperatore]' WHERE ...";
    $res_id = mysql_query($update_id);
    $i++;
    }
    Visualizzo i 2 nomimativi
    for ($i = 0; $i < $nomi2; $i++) {
    $nome_nominativo = mysql_result($res_ass, $i, "clienti.nome_nominativo");
    $cognome_nominativo = mysql_result($res_ass, $i, "clienti.cognome_nominativo");
    ....
    echo $nome_nominativo;
    echo $cognome_nominativo;
    }

    }
    else {
    echo "non ci sono nominativi con esito non risponde e non trovato";
    }

    NON SAPREI COME MODIFICARE IL CODICE PER METTERE IL while e il for CHE MI AVEVI ACCENNATO

    Illuminami di nuovo!!!

  9. #9
    Onestamente non è che abbia capito molto del codice (anche perchè il forum non è che aiuti molto).
    Cmq il rimo consiglio che ti posso dare è: dove puoi usa i numeri. Mi riferisco agli esiti (non trovato e non risponde). Io farei 0 = non trovato e 1 = non risponde (poi nella pagina dove visualizzi le info sostituisci il numero con le lettere. Questo ti permetterà di risparmiare spazio nel DB e di creare query più semplici).
    Come seconda cosa ti dico che io non è che sappia programmare benissimo in PHP. Ti posso dare indicazioni "logiche" ma per adesso niente di più (anche perchè la situazione attuale privata non mi permette di metermi troppo a studiare per creare un codice).
    Cmq ancora non ho capito: ti dà errore o non memorizza o che fa o non fa?
    Ad ogni modo ti spiego in un linguaggio fittizio come farei:

    Definiamo un attimo la situazione:

    N° clienti che risponde ai requisiti = 103
    N° operatori disponibili = 4
    Cliente "non risponde" = 1
    Cliente "non trovato" = 0

    Succede questo:
    codice:
    $query = "SELECT id_cliente FROM clienti WHERE esito=1 OR esito=0";
    $result = mysql_query($query,$db);
    $num_clienti = mysql_num_rows($result);
    
    //lo stesso viene fatto per gli operatori
    
    $query = "SELECT operatori loggati"
    $result = mysql_query($result);
    $num_operatori = mysql_num_rows($result);
    Prima abbiamo definito a priori il bnumero di clienti e di operatori.
    Quindi

    $num_clienti = 103
    $num_operatori = 4

    Ora devo sapere quanti clienti assegnare ad ogni operatore e faccio quindi la divisione

    $num_clienti_x_op = $num_clienti/$num_operatori

    $num_clienti_x_op assume quindi il valore di 25 (rimangono 3 clienti fuori ma per adesso non tenerne conto)

    ora devi assegnare i clienti agli operatori

    codice:
    //comincio a selezionare gli operatori disponibili
    $query = "SELECT id_operatore FROM operatori WHERE operatori disponibili";
    $result = mysql_query($query,$db);
    
    while ($row = mysql_fetch_array($result))
         {
            for ($i = 0,; $i < $num_clienti_x_op; $i++)
    		   {
    		      assegni il cliente all'operatore in corso
    		   }
    	   
           
         }
    Così dovrebbe andare. Correggi il codice come serve a te e poi fammi sapere. Non ho avuto tempo di scrivere i commenti. Se hai dubbi scrivi. Ciao
    PS
    Non so se potrò risponderti subito. Ciao
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  10. #10
    Allora? Novità con lo sviluppo?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.