Newsgroup: it.comp.www.php
Titolo: if non funziona

Ho una serie di link che aprono un file che mostra le informazioni
relative al link (nel mio caso sono informazioni su una rete vendita).
Il negozio che si trova nella nazione cliccata può avere o non avere
un logo. Pensavo di usare un ciclo IF...ELSE per non far comparire la
foto quando non c'è (altrimenti otterrei la "croce rossa" di foto non
trovata). I dati li estraggo da un file csv che gestico con excel.
Il problema è che il ciclo IF che gestisce la foto NON funziona: mi
restituisce sempre lo stesso risultato sia che la foto sia presenta
sia che essa non esista...
La sintassi mi sembra giusta... Chiedo aiuto!!!!
I file che uso sono i seguenti:
== CSV ==
immagini/
band_fr.png;FRANCE;Distr.Francese;ma...@francese.fr
;33333333;X
immagini/
band_it.png;ITALY;Distr.Italiano;ma...@italiana.it
;444444444;immagini/logo_logo.gif
immagini/
band_es.png;SPAIN;Distr.Spagnolo;ma...@spagnola.es
;5555555555;X
== file con alcuni link.htm (o php) ==
<a href="az_retevendita_nazione.php?nazione=FRANCIA">Francia</a>
<br>
<a href="az_retevendita_nazione.php?nazione=ITALIA">Italia</a>
ecc...
== az_retevendita_nazione.php ==
...
<?php
$scelta=$_GET[nazione];
 if (!isset ($scelta)) { $scelta = ""; }
 $percorso = file("az_retevendita_dati.csv");
 while(list(,$value) = each($percorso))
 {
  list($fotobandiera, $nazione, $nome, $email, $telefono, $fotologo) =
split('[;]', $value);
  if ($nazione == $scelta)
  {  //echo $fotobandiera. "<br>" . $nazione . "<br>" . $nome. "<br>"
. $email. "<br>" . $telefono. "<br>" . $fotologo;
     echo "<table width=\"370\" border=\"0\" cellpadding=\"0\"
cellspacing=\"0\" bgcolor=\"#FFFFFF\" class=\"testo_std\">
            <tr>
              <td><img src=\"$fotobandiera\"></td>
              <td><b>$nazione</b></td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td><a class=\"interno\"
href=\"mailto:$email\">$nome</a></td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td>$telefono</td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td>";
              echo "$fotologo";
              if ($fotologo="X"){
                  print "NON ci sono";
              } else {
                  print "ci sono";
              }
              echo "
              </td>
            </tr>
           </table>
          ";
  }
 }?>
-- 
La rovina del mondo sarà l'indifferenza...
...ma chi se ne fregaaa!

   if ($nazione == $scelta)
L'if non è un ciclo, ma una struttura di controllo.
Da quello che vedo passi "FRANCIA" e lo confronti con "FRANCE", con un po'
di echo $qualcosa l'avresti scoperto da solo.
Il resto è da vedere.
Ludovico

di echo $qualcosa l'avresti scoperto da solo.
Ho solo sbagliato a riscrivere qualcosa quando ho semplificato per
riportarlo nel newsgroup... nei file è tutto scritto bene (il valore
corretto è FRANCE)


 $scelta=$_GET[nazione];
ciao, forse il problema è qui? mancano gli apici,
$scelta=$_GET['nazione'];
non sò prova..
ste

ciao, forse il problema è qui? mancano gli apici,
Funziona tutto tranne il controllo IF
  if ($fotologo="X"){
                  print "NON ci sono";
              } else {
                  print "ci sono";
              }


 wrote in message
news:bugos8$9ck$2...@newsreader.mailgate.org...


 ha scritto nel messaggio
news:bugos8$9ck$2...@newsreader.mailgate.org...


 delle proprie azioni affermava:
mavaffanculo vai!!!! PLONK!!!!!!!!!!
chiedo scusa al resto del newsgroup ma certa gente non merita proprio niente
dalla vita!
ste

dalla vita!
-- 


(o tre se controlli l'identico..)
Infatti... hai ragione. Il problema più grosso è che se lo provo in un
file per conto suo funziona tutto.
==esempio.php==
<?php
$fotologo="rtr";
print "la foto è: $fotologo"; //mi accerto del risultato
              if ($fotologo=='x'){
                  echo "NON ci sono";
              } else {
                  echo "bella foto";
              }
?>
RISULTATO -> bella foto
Mentre se setto all'inizio **$fotologo="x"; ** ottengo, giustamente,
"NON ci sono".
L'errore non può essere dato dall'IF che sta dentro ad un altro IF o
qualcosa del genere?


 perchč hai attacato questa scritta (vedi sotto) proprio al mio post?
ok ritiro tutto facendoti/vi le mie piů sentite scuse avevo frainteso, non
avevo capito il tono dell'intestazione che metti nei tuoi post
Scusatemi ancora ma sto periodo sto scleratissimo saranno le troppe
settimane senza vedere la mia bella :o/
ste

settimane senza vedere la mia bella :o/
Capita a tutti (di essere sleratissimi) ...
  ...per la tua "astinenza" invece... in bocca al lupo!!
Ciao


 qualcosa del genere?
Macchč... hai capito?
Ludovico

Macchè... hai capito?
Ok... capito... però rammento ancora il discorso che preso "da solo"
funziona....


 funziona....
Posta tutto il codice di questo if preso da solo e ti mostriamo dov'č la
differenza. Garantito.
Ludovico Grossi

differenza. Garantito.
Allora... mi apparsa la madonna!!! Ho trovato il modo di far
funzionare il tutto con un escamotage (come si scrive?)...
Posto il codice e spiego:
====================================
<?php
$scelta=$_GET[nazione];
 if (!isset ($scelta)) { $scelta = ""; }
 $percorso = file("az_retevendita_dati.csv");
 while(list(,$value) = each($percorso))
 {
  list($fotobandiera, $nazione, $azienda, $nome, $email, $telefono,
$fax, $fotologo) = split('[;]', $value);
  if ($nazione == $scelta) {
// qui taglio la formattazione e passo subito al controllo IF
              print "$fotologo"; //solo per accertarmi della variabile
              if ($fotologo=="w"){
                  print "NON ci sono";
              } else {
                  print "bella foto";
              }
}}?>
====================================
La variabile nazione gli arriva da link tipo questi:
====================================
<a href="file_col_codice.php?FRANCE">Francia</a> <br>
<a href="file_col_codice.php?SPAIN">Spagna</a>
ecc...
====================================
Il file CSV è fatto così:
====================================
imm.Bandiera 1;FRANCE;azienda 1;nome 1;email 1;tel 1;fax 1;w
imm.Bandiera 2;ITALY;azienda 2;nome 2;email 2;tel 2;fax 2;imma 2
imm.Bandiera 3;SPAIN;azienda 3;nome 3;email 3;tel 3;fax 3;imma 3
ecc...
====================================
In questo modo NON FUNZIONA.
In pratica (e non mi spiego il perchè) per far funzionare il tutto
devo aggiungere una variabile al codice dopo $fotologo in questo modo
(la var l'ho chiamata $altro):
...
  list($fotobandiera, $nazione, $azienda, $nome, $email, $telefono,
$fax, $fotologo, $altro) = split('[;]', $value);
...
e poi aggingo una "colonna" al file CSV ... quindi diventa:
...
imm.Bandiera 1;FRANCE;azienda 1;nome 1;email 1;tel 1;fax 1;w;altro
...
Con queste modifiche tutto MAGICAMENTE inizia a funzionare!!!
Purtroppo ho un varibile $altro in giro che non mi serve a nulla.
mahh!!


====================================
Piccolo errore di scrittura
<a href="file_col_codice.php?nazione=FRANCE">Francia</a> <br>
<a href="file_col_codice.php?nazione=SPAIN">Spagna</a>


 $fax, $fotologo) = split('[;]', $value);
Fai un bel print_r dell'espressione split('[;]', $value) nella versione che
non funziona e dopo fanne uno per l'espressione list(....)