- Home
- Categorie
- Coding e Sistemistica
- Coding
- Ciclo "while" malfunzionante
-
Ciclo "while" malfunzionante
Visto che è il mio primo post qui...
Salve a tutti, sono Stefania
20,siciliana, con una certa passione per il pcSono 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]
-
Ciao e benvenuta.
Potresti rifare la domanda senza usare lo stile sms?