Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: come creare un ciclo

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    come creare un ciclo

    ciao a tutti,

    nella tabella agenda ci sono 6 id diversi: id_concessionari, id_operatori, ecc...
    vorrei che se tutti e 6 hanno un numero diverso da 1000 mi compaia scritto (6 gruppi)
    se solo 5 di questi id hanno un numero diverso da 1000 mi compaia scritto (5 gruppi)
    e così via...
    Mi sa che dovrò creare un ciclo ma non ci riesco, anche perchè dovrei farlo dentro un if

    Codice PHP:
    if ($rs16['risposta_testo_evento']==NULL && $rs16['id_agenti']!=1000 && $rs16['id_tecniche']!=1000 && $rs16['id_fornitori']!=1000 && $rs16['id_concessionari']!=1000 && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    6 gruppi
    -----------
    <?php
    } elseif ($rs16['risposta_testo_evento']!=NULL && $rs16['id_agenti']!=1000 && $rs16['id_tecniche']!=1000 && $rs16['id_fornitori']!=1000 && $rs16['id_concessionari']!=1000 && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    6 gruppi R
    -----------
    <?php
    } elseif ($rs16['risposta_testo_evento']==NULL && $rs16['id_tecniche']!=1000 && $rs16['id_fornitori']!=1000 && $rs16['id_concessionari']!=1000 && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    5 gruppi R
    -----------
    <?php
    } elseif ($rs16['risposta_testo_evento']!=NULL && $rs16['id_tecniche']!=1000 && $rs16['id_fornitori']!=1000 && $rs16['id_concessionari']!=1000 && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    5 gruppi R
    -----------
    <?php
    } elseif ($rs16['risposta_testo_evento']==NULL && $rs16['id_fornitori']!=1000 && $rs16['id_concessionari']!=1000 && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    4 gruppi R
    -----------
    <?php
    } elseif ($rs16['risposta_testo_evento']!=NULL && $rs16['id_fornitori']!=1000 && $rs16['id_concessionari']!=1000 && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    4 gruppi R
    -----------
    <?php
    } elseif ($rs16['risposta_testo_evento']==NULL && $rs16['id_concessionari']!=1000 && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    3 gruppi R
    -----------
    <?php
    } elseif ($rs16['risposta_testo_evento']!=NULL && $rs16['id_concessionari']!=1000 && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    3 gruppi R
    -----------
    <?php
    } elseif ($rs16['risposta_testo_evento']==NULL && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    2 gruppi R
    -----------
    <?php
    } elseif ($rs16['risposta_testo_evento']!=NULL && $rs16['id_operatori']!=1000 && $rs16['id_admin']!=1000){?>

    [url="<?=$PHP_SELF?>?id_eventi=<?=$rs16[id_eventi]?>&pagina=2"]<? echo $titolo_evento?>[/url]
    <?=$rs16[tipologia_evento]?>
    2 gruppi R
    -----------

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ho provato a fare cosi ma non mi funziona

    Codice PHP:
    <?php
    if (for (($rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000);  $i<=7$i++){?>
    6 gruppi
    <?php
    } elseif (for (($rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000);  $i<=6$i++){?>
    5 gruppi
    <?php
    } elseif (for (($rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000);  $i<=5$i++){?>
    4 gruppi
    <?php
    } elseif (for (($rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000);  $i<=4$i++){?>
    3 gruppi
    <?php
    } elseif (for (($rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000$rs16['id_agenti']!=1000);  $i<=3$i++){?>
    2 gruppi
    <?php
    }
    ?>

  3. #3
    se devo essere sincero non ho capito molto.. ti faccio vedere cosa ho capito..

    allora da come dici tu hai una tabella agenda con 6 campi id

    quindi..
    idagenda, idcampo1, idcampo2, idcampo3, idcampo4, idcampo5, idcampo6

    giusto??
    se è così l'unico modo per fare come dici te è fare una cosa del genere:
    Codice PHP:
    <?php
    $query 
    "SELECT * FROM agenda WHERE 1";
    // non sto a scrivere tutto... cmq esegui la query.. e la fetchi :) (W l'inglese italianizzato)
    // e a questo punto fai un controllo per ognuno dei campi

    $row mysql_fetch_array($result); // Questa funzione mi crea un'array sia con i nomi dei
    // campi come indice, sia con i numeri come indice.. (nel mio caso mi risulta comoda)

    $errori 0// qui faccio +1 tutte le volte che lo trovo uguale a 1000

    for ($i 1$i 7$i++) {
      if (
    $row[$i] != 1000) && ($row[$i] != NULL)) { $errori++; } // qui faccio il controllo
      // Nel caso voglio segnare quale campo è basterà far diventare $errori un array
      // e da lì scrivergli tutti i numeri campi con l'errore e il gioco è fatto
    }

    echo 
    "Sono stati trovati $errori errori";
    Spero di essere stato esaustivo.. e magari aver capito bene.. cmq questo è quello che mi è venuto in mente su due piede.. in bocca al lupo.. per qualsiasi chiarimento chiedi pure

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    grazie per la risposta, ma a cosa serve nella select "WHERE 1" e poi che vuol dire "la fetchi" ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ecco, ho personalizzato il tuo codice:

    Codice PHP:
    <?php 
    $query
    ="SELECT DISTINCT *
            FROM c_agenda, a_admin, a_tecniche, a_agenti, a_fornitori, a_concessionari, b_operatori
            WHERE c_agenda.id_admin = a_admin.id_admin AND c_agenda.id_tecniche = a_tecniche.id_tecniche 
            AND c_agenda.id_agenti = a_agenti.id_agenti AND c_agenda.id_fornitori = a_fornitori.id_fornitori
            AND c_agenda.id_concessionari = a_concessionari.id_concessionari AND c_agenda.id_operatori = b_operatori.id_operatori"

    $row mysql_fetch_array($result);
    $gruppi 0;
    for (
    $i 1$i 7$i++) { 
      if (
    $row[$i] != 1000)) { $gruppi ++; }

    echo 
    "$gruppi gruppi"
    ?>
    a parte quel WHERE 1, un'altra cosa che non capisco è il ciclo come fa a sapere che mi riferisco a queste variabili?

    Codice PHP:
    $rs16['id_agenti']; $rs16['id_fornitori']; $rs16['id_concessionari']; $rs16['id_operatori']; $rs16['id_tecniche']; $rs16['id_admin'
    e non ad altre che sono anche quelle nella tabella c_agenda ?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    up

  7. #7
    allora per far riferimento ai campi che dici puoi fare così.. (scusa se ho impiegato tanto a risponderti ma sono andato via

    Codice PHP:
    <?php
    define
    ("campo1""id_agenti");
    define("campo2""id_fornitori");
    define("campo3""id_concessionari");
    // ecc...

    $query="SELECT DISTINCT *
            FROM c_agenda, a_admin, a_tecniche, a_agenti, a_fornitori, a_concessionari, b_operatori
            WHERE c_agenda.id_admin = a_admin.id_admin AND c_agenda.id_tecniche = a_tecniche.id_tecniche
            AND c_agenda.id_agenti = a_agenti.id_agenti AND c_agenda.id_fornitori = a_fornitori.id_fornitori
            AND c_agenda.id_concessionari = a_concessionari.id_concessionari AND c_agenda.id_operatori = b_operatori.id_operatori"
    ;

    $result mysql_query($query); // eseguo la query
    $row mysql_fetch_array($result); // la fetcho
    $gruppi 0// con campi $gruppi = array();
    for ($i 1$i 7$i++) {
      if (
    $row[constant("campo" .$i)] != 1000)) { $gruppi ++; } // se vuoi capire quali sono i campi sbagliati fai così
      // $gruppi[] = constant("campo" .$i);


    echo 
    "$gruppi gruppi"// nel caso dell'array print_r($gruppi);

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    fatto, solo che mi da numeri a casaccio:

    mi stampa "2 gruppi" quando invece mi dovrebbe stampare "1 gruppi",
    oppure mi stampa "1 gruppi" quando invece mi dovrebbe stampare "4 gruppi"

  9. #9
    mh.. allora devo aver sbagliato qualcosa nel if..

    fai una cosa esegui la query qui sotto e fammi vedere cosa ti stampa
    probabilmente non prende i valori giusti dai campi..

    (se pensi ci siano valori che non vuoi farmi vedere puoi cambiarli tipo con stringa, o intero, double.. insomma con il tipo del valore..)

    Codice PHP:
    <?php
    define
    ("campo1""id_agenti");
    define("campo2""id_fornitori");
    define("campo3""id_concessionari");
    // ecc...

    $query="SELECT DISTINCT *
            FROM c_agenda, a_admin, a_tecniche, a_agenti, a_fornitori, a_concessionari, b_operatori
            WHERE c_agenda.id_admin = a_admin.id_admin AND c_agenda.id_tecniche = a_tecniche.id_tecniche
            AND c_agenda.id_agenti = a_agenti.id_agenti AND c_agenda.id_fornitori = a_fornitori.id_fornitori
            AND c_agenda.id_concessionari = a_concessionari.id_concessionari AND c_agenda.id_operatori = b_operatori.id_operatori LIMIT 1"
    ;

    $result mysql_query($query); // eseguo la query
    $row mysql_fetch_array($result); // la fetcho

    print_r($row); // Stampa l'array in questo modo vedi cosa c'è dentro l'array

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    questo è quello che mi ha stampato

    Array ( [0] => 2 [id_tecniche] => 2 [1] => Manuela [nome_tecnica] => Manuela [2] => Vitelli [cognome_tecnica] => Vitelli [3] => F [sesso] => F [4] => 328 23232323 [cellulare_tecnica] => 328 23232323 [5] => 124541122121 [p_iva_tecnica] => 124541122121 [6] => manuela4545 [username] => manuela4545 [7] => cicca [password] => cicca [8] => tecnica [categoria] => tecnica [9] => manueladir [directory] => manueladir [10] => 435 [id_eventi] => 435 [11] => 1 [id_admin] => 1 [12] => 1000 [id_admin_ins_dati_evento] => 1000 [13] => 2 [14] => 2 [id_tecniche_ins_dati_evento] => 2 [15] => 1000 [id_operatori] => 1000 [16] => 1000 [id_operatori_ins_dati_evento] => 1000 [17] => 1000 [id_agenti] => 1000 [18] => 1000 [id_agenti_ins_dati_evento] => 1000 [19] => 1000 [id_concessionari] => 1000 [20] => 1000 [id_concessionari_ins_dati_evento] => 1000 [21] => 1000 [id_fornitori] => 1000 [22] => 1000 [id_fornitori_ins_dati_evento] => 1000 [23] => fuori sede [tipologia_evento] => fuori sede [24] => messaggio x manuela [titolo_evento] => messaggio x manuela [25] => pappappero lalala [testo_evento] => pappappero lalala [26] => [risposta_testo_evento] => [27] => 2007-08-22 [data_evento] => 2007-08-22 [28] => 00:00:00 [ora_inizio_evento] => 00:00:00 [29] => 00:00:00 [ora_fine_evento] => 00:00:00 [30] => 18:59:39 [ora_ins_dati_evento] => 18:59:39 [31] => 2007-08-18 [data_ins_dati_evento] => 2007-08-18 [32] => 18:59:39 [ora_mod_dati_evento] => 18:59:39 [33] => 2007-08-18 [data_mod_dati_evento] => 2007-08-18 )
    di questo array mi dice che ci sono (3 gruppi diversi da 1000) quando in realtà ce ne sono 2

    estrapolando i dati che interessano si nota che:

    [id_tecniche] => 2
    [id_admin] => 1

    [id_operatori] => 1000
    [id_agenti] => 1000
    [id_concessionari] => 1000
    [id_fornitori] => 1000
    è tutto giusto, ho controllato sul db. Come vedi sono solo 2 gruppi diversi da 1000, invece mi stampa (3 gruppi) :master:

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 © 2024 vBulletin Solutions, Inc. All rights reserved.