Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14

Discussione: Help applicazione PHP

Hybrid View

  1. #1
    Si
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    23
    Nik ti chiedo di mantenere un certo contegno nei miei riguardi, quindi non mandarmi a quel paese... la prima soluzione non mi ha portato risultati. Sembrerebbe che ogni $stato_articolo sia sempre uguale a "Aggiungi". Posto il codice.
    codice:
            $result=mysql_query("SELECT * FROM articoli".$where."ORDER BY descrizione1 ASC LIMIT $from, $max_results ");
            
            /*
            * step1
            * mi trovo tutti  gli articoli ordinati negli ultimi 14 giorni dall'agente
            */
            $sql1="SELECT codice_articolo FROM ordini WHERE id_agente = ".$_SESSION['cod']." AND data_inserimento >= '".$data_2sett_ant."' GROUP BY codice_articolo";
            
            // connessione al database server
            $username="user";
            $password="psw";
            $database="ORDINI";
            
            $conn=mysqli_connect(localhost,$username,$password,$database);
    
    
            $cache_articoli_ordinati=array();
            foreach ($conn->query($sql1) as $row) {
            $cache_articoli_ordinati[$row["codice_articolo"]]=$row["codice_articolo"];
            }
            
            /*
            * step 2
            * mi trovo tutti gli articoli nella tabella di servizio per questo agente
            */
            $sql2="SELECT codice_articolo FROM ordini_temp WHERE id_agente = ".$_SESSION['cod']." GROUP BY codice_articolo";
            
            $cache_articoli_servizio=array();
            foreach ($conn->query($sql2) as $row) {
            $cache_articoli_servizio[$row["codice_articolo"]]=$row["codice_articolo"];
            }
            
            /*
            * step 3
            * estraggo tutti gli articoli nella tabella articoli
            */
            $sql3="SELECT * FROM articoli".$where."ORDER BY descrizione1";
            
            $cache_articoli=array();
            foreach ($conn->query($sql3) as $row) {
            $cache_articoli[$row["codice_articolo"]]=$row["codice_articolo"];
            }
            
            /*
            * step 4
            * quando ciclo sui vari articoli dell'anagrafica decido in quale delle 3 situazioni mi trovo
            */
            
            while ($i = mysql_fetch_array($result))
            {
            foreach($cache_articoli as $codice_articolo){
            
            if(isset($cache_articoli_servizio[$codice_articolo])){
            $stato_articolo="Aggiunto";
            }else if(isset($cache_articoli_ordinati[$codice_articolo])){
            $stato_articolo="Non Ordinabile";
            }else{
            $stato_articolo="Aggiungi";
            }
            
            }  
    
    
            echo"<tr><td><div align='center'>".$i['codice_articolo']."</div></td><td>".$i['descrizione1']."</td><td>".$i['descrizione2']."<td>".$stato_articolo."</td></tr>";
            }
            $i++;
    Ho visualizzato le query e funzionano tutte su mysql.
    $result è la mia query che fa parte della paginazione. Temo di essermi incasinato nella nidificazione per la creazione di ogni singola riga degli articoli.

  3. #3
    Ciao

    effettivamente c'è un pò di confusione.

    Gli step da seguire in ordine logico sono i seguenti:

    1 - apri la connessione al database
    2 - esegui le query e ti crei la struttura dati di appoggio
    3 - cicli sugli articoli e generi la stringa html

    Attualmente ci sono un pò di cose confusionali, come ad esempio:
    - crei una connessione con le funzioni native di mysql ma poi ne fai il fetch usando l'esempio che ti avevo dato io (che però usava PDO)
    - ci sono dei foreach innestati che non servono
    - lo step 4 non serve

    Questo dovrebbe essere il codice corretto: (nota: non ho modo di testarlo, quindi seguine la logica)

    <?php


    $id_agente="1";
    $db_user="user";
    $db_pass="psw";
    $db_name="ORDINI";
    $db_host="127.0.0.1";


    $conn = new PDO("mysql:host=$db_host;dbname=$db_name",$db_user ,$db_pass);


    /*
    * step1
    * mi trovo tutti gli articoli ordinati negli ultimi 14 giorni dall'agente
    */
    $sql1="SELECT codice_articolo FROM ordini WHERE id_agente = ".$id_agente." AND data_inserimento >= '".$data_2sett_ant."' GROUP BY codice_articolo";


    $cache_articoli_ordinati=array();
    foreach ($conn->query($sql1) as $row) {
    $cache_articoli_ordinati[$row["codice_articolo"]]=$row["codice_articolo"];
    }


    /*
    * step 2
    * mi trovo tutti gli articoli nella tabella di servizio per questo agente
    */
    $sql2="SELECT codice_articolo FROM ordini_temp WHERE id_agente = ".$_SESSION['cod']." GROUP BY codice_articolo";


    $cache_articoli_servizio=array();
    foreach ($conn->query($sql2) as $row) {
    $cache_articoli_servizio[$row["codice_articolo"]]=$row["codice_articolo"];
    }


    /*
    * step 3
    * estraggo tutti gli articoli nella tabella articoli
    */
    $sql3="SELECT * FROM articoli".$where."ORDER BY descrizione1";


    $cache_articoli=array();
    foreach ($conn->query($sql3) as $row) {


    if(isset($cache_articoli_servizio[$row["codice_articolo"]])){
    $stato_articolo="Aggiunto";
    }else if(isset($cache_articoli_ordinati[$row["codice_articolo"]])){
    $stato_articolo="Non Ordinabile";
    }else{
    $stato_articolo="Aggiungi";
    }
    echo"<tr><td><div align='center'>".$row['codice_articolo']."</div></td><td>".$row['descrizione1']."</td><td>".$row['descrizione2']."<td>".$stato_articolo."</td></tr>";
    }


    ?>
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  4. #4
    Ciao

    puoi fare anche come hai detto tu:

    codice:
    name="quantita_<?php echo $row['codicearticolo'] ?>"
    ma il problema è che se il codice articolo contiene spazi o " ti "rompe" il tag html.

    Se non hai la chiave primaria la cosa migliore che puoi fare è usare due campi, uno di tipo hidden (che conterrà il codice dell'articolo) e uno di tipo text (che conterrà la quantità).

    Per sapere come relazionare i campi basta che gli metti un prefisso o un suffisso comune, ad esempio:

    codice:
    Articolo 05-3434:
    <input type="hidden" name="campo_articolo_1" value="05-3434" />
    <input type="text" name="campo_quantita_1" value="2" />
    <br/>
    
    Articolo 05-3435:
    <input type="hidden" name="campo_articolo_2" value="05-3435" />
    <input type="text" name="campo_quantita_2" value="2" />
    <br/>
    
    Articolo 05-3436:
    <input type="hidden" name="campo_articolo_3" value="05-3436" />
    <input type="text" name="campo_quantita_3" value="2" />
    <br/>
    Poi lato server cicli sui valori di $_POST e ti leggi i rispettivi valori (esempio, se stai leggendo i valori di campo_articolo_x la rispettiva quantità la troverai in campo_quantita_x).

    Ciao
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

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