• User Newbie

    Ciclo "while" malfunzionante

    Visto che è il mio primo post qui...
    Salve a tutti, sono Stefania 🙂
    20,siciliana, con una certa passione per il pc

    Sono requisiti sufficienti per scrivere qui?? 🙂

    Scusate l'OT,non è la sezione adatta, ma l'educazione non guasta mai 😛

    In realtà mi piacerebbe capire cosa nel piccolo programma ke ho sviluppato con l'aiuto di un amico non va bene..
    Sono 2file php
    un form ke, compilato, manda una mail e crea un csv coi dati inseriti.
    Su qst csv si basa il secondo file php in cui DOVREBBE esserci una lista dei vari ordini.ognuno con un radio button.
    Selezionando uno d questo e cliccando su 1pulsante quest'ordine dovrebbe "sparire" restituendo il file solo con gli ordini rimanenti..
    Ma.. o non si cancella nessuna voce da qst file o si cancellano tutte...
    xkè??????
    [PHP]<?php
    if ($_POST['submit']=="Evadi") {
    // Si entra in questo ramo dell'if qualora venga premuto il pulsante Evadi
    $c=1; //questa variabile serve a capire quale linea è stata cliccata
    while (true)
    if ($_POST['linea'.$c]!="t") $c+=1;
    else break; //non appena raggiungo una linea cliccata immagazzino il numero

    $file=fopen(".\cliente.csv","r+"); //apro il file con i dati in modalità di lett/scritt puntatore all'inizio
    $dest=fopen(".\cliente.tmp","w"); //creo un file temporaneo mod scritt

    $contatore=0; //reinizializzo la variabile contatore
    while($row=fgetcsv($file)) {
    $contatore+=1;
    if($contatore!=$c and $previous!=$POST['campo1'.$c]) fprintf($dest, "%s\r\n", implode(",",$row));
    else $previous = $POST['campo1'.$c]; // con implode creo una stringa da un array
    }

    fclose($dest); //Chiudo i files
    fclose($file);

    unlink(".\cliente.csv"); //Elimino il vecchio file
    rename(".\cliente.tmp",".\cliente.csv"); //Rinomino il file temporaneo
    }
    else {
    ?>
    <table border="1">
    <form action="#" method="post">
    <tr>
    <th>Ragione Sociale</th>
    <th>Data</th>
    <th>Email</th>
    <th>Codice Cliente</th>
    <th>Tel/Fax</th>
    <th>Part. Iva</th>
    <th>Codice Fiscale</th>
    <th>Citta</th>
    </tr>
    <?php
    // non è stato premuto il bottone per evadere
    $file=fopen(".\cliente.csv","r+");
    $c=0;
    $previous=array();
    while($row=fgetcsv($file)) { //leggo una riga
    if ($row[0]==$previous[0] and $row[1]==$previous[1]) { // se i campi data e ragione sociale sono uguali al precedente siamo in presenza dello stesso ordine
    echo "<tr>
    <td colspan=2>".$row[8]."</td>
    <td colspan=2>".$row[9]."</td>
    <td colspan=2>".$row[10]."</td>
    </tr>";
    } //una riga dell'ordine dalla 2a in poi
    else {
    $previous = $row;
    echo "<tr>";
    $c+=1;
    for ($i=0; $i<8; $i++)
    if ($i==1) echo '<td bordercolor="#000000"><input type="hidden" name="campo'.$i.''.$c.'" value="'.$row*.'">'.date("Y-M-D",$row*).'</td>';
    else echo '<td bordercolor="#000000"><input type="hidden" name="campo'.$i.'
    '.$c.'" value="'.$row*.'">'.$row*.'</td>';
    //campi anagrafici
    echo '<td bordercolor="#000000"><input type="radio" value="t" name="linea'.$c.'"></td></tr><tr>';
    //bottone

    //prima riga dell'ordine
    for ($i=6; $i<9; $i++)
    echo '<td colspan=2>'.$row*.'</td>';
    }

        //echo "</tr>";
    

    }
    fclose($file);
    echo '</table><input type="submit" name="submit" value="Evadi">';
    }
    ?>[/PHP]


  • Moderatore

    Ciao e benvenuta.

    Potresti rifare la domanda senza usare lo stile sms? 🙂

    :ciauz: