Newsgroup: it.comp.www.php
Titolo: quando una variabile "esiste"

Ciao a tutti
 ho un problema, devo creare un IF nel quale se una variabile esiste mi
carica la funzione...
es:
if ( $home ** ) {
$result = mysql_query($sql,$connessione) or die("impossibile eseguire
l'interrogazione");}
dove gli asterischi stanno per ESISTE.
Mi serve perchè ho un unico codice che inserisce gli stessi record in due
tabelle diverse, e la funzione
$result = mysql_query($sql,$connessione) or die("impossibile eseguire
l'interrogazione");
mi va sempre in conflitto in quanto sql appartiene a tutte e due...
praticamente se i record vanno inseriti in entramebe le tabelle va tutto
bene, ma quando inserisco i record in una tabella sola vengono inseriti due
volte, direi normale... io volevo risolvere il problema così.
Se per voi è una cavolata ditemelo che posto l'intero codice.
Ciao
 Silvio

 volte, direi normale... io volevo risolvere il problema così.
   Se ti dicessi che ho capito cosa volevi dire, ti mentirei. Ipotizzo 
che tu voglia eseguire due interrogazioni di inserimento dipendentemente 
dallo stato di una variabile, la quale, immagino, deve essere espansa 
all'interno della stringa dell'interrogazione stessa. Ove cosi` fosse, 
la soluzione isset dovrebbe darti il risultato sperato, altrimenti 
dovresti cercare di essere un po' piu` preciso...
[1] 
http://www.php.net/manual/it/function.isset.php
-- 
Alla prossima,
Marco


<?
include("../include/include.php");
  $descrizione = nl2br($descrizione);
if (($foto_size)>1) {
$foto= addslashes(fread(fopen($foto, "rb"), filesize($foto)));
$sql = "
insert into $nome_tabella
(ID, codice, descrizione_breve, descrizione, foto, foto_size, foto_type,
foto_name, prezzo )
values
 (\"\",\"$codice\", \"$descrizione_breve\", \"$descrizione\", \"$foto\",
\"$foto_size\", \"$foto_type\", \"$foto_name\", \"$prezzo\")";
}
ELSE
{
 $sql = "
insert into $nome_tabella
(ID, codice, descrizione_breve, descrizione, foto, foto_size, foto_type,
foto_name, prezzo )
values
 (\"\",\"$codice\", \"$descrizione_breve\", \"$descrizione\", \"$foto\",
\"$foto_size\", \"$foto_type\", \"$foto_name\", \"$prezzo\")";
}
 $risultato = mysql_query($sql,$connessione) or die("impossibile eseguire
l'interrogazione");
if (isset($foto_name) && !empty($foto_name)) {
    $fotovar="<p><font face='verdana, arial
helvetica' color='#FF0000' size='2'><b>FOTO INSERITA</b></font></p>";
}
else {
    $fotovar="<p><font face='verdana, arial
helvetica' color='#FF0000' size='2'><b>NESSUNA FOTO
INSERITA</b></font></p>";
}  ;
#qua iniziano i problemi nel caso non venga selezionata nessuna delle due
variabili (cioè first and second), il problema consiste nel doppio
inserimento dei record nella tabella sovrastante.
if ( $home == first AND  ($foto_size)>1 ) {
$sql = "
insert into first
(ID, codice, descrizione_breve, descrizione, foto, foto_size, foto_type,
foto_name, prezzo )
values
 (\"\",\"$codice\", \"$descrizione_breve\", \"$descrizione\", \"$foto\",
\"$foto_size\", \"$foto_type\", \"$foto_name\", \"$prezzo\")";
}
elseif ( $home == second AND  ($foto_size)>1 ) {
$sql = "
insert into second
(ID, codice, descrizione_breve, descrizione, foto, foto_size, foto_type,
foto_name, prezzo )
values
 (\"\",\"$codice\", \"$descrizione_breve\", \"$descrizione\", \"$foto\",
\"$foto_size\", \"$foto_type\", \"$foto_name\", \"$prezzo\")";
}
elseif    ( $home == nessuno AND  ($foto_size)>1 ) {
                                                  }
                                                  else {$nada = "la foto non
è stata inserita, l'articolo non verrà inserito nella Home-page";}
#e qua mi servirebbe una costuzione che mi dicesse che se il risultato delle
variabili è nessuno (variabile esistente) non dovrebbe eseguire
l'interrogazione del database, mentre se esiste dovrebbe eseguirla.
if (
$result = mysql_query($pino,$connessione) or die("impossibile eseguire
l'interrogazione");
?>
Sò che il codice non è pulito... ma al momento sono solo interessato a
risolvere i problemi!
Grazie
 Silvio

Scusate a tutti ho risolto da solo con la seguente funzione:
if ( $home == first AND  ($foto_size)>1 ) {
$pino = "
insert into first
(ID, codice, descrizione_breve, descrizione, foto, foto_size, foto_type,
foto_name, prezzo )
values
 (\"\",\"$codice\", \"$descrizione_breve\", \"$descrizione\", \"$foto\",
\"$foto_size\", \"$foto_type\", \"$foto_name\", \"$prezzo\")";
}
elseif ( $home == second AND  ($foto_size)>1 ) {
$pino = "
insert into second
(ID, codice, descrizione_breve, descrizione, foto, foto_size, foto_type,
foto_name, prezzo )
values
 (\"\",\"$codice\", \"$descrizione_breve\", \"$descrizione\", \"$foto\",
\"$foto_size\", \"$foto_type\", \"$foto_name\", \"$prezzo\")";
}
elseif    ( $home == nessuno AND  ($foto_size)>1 ) {
                                                  }
                                                  elseif ( $home == first
AND ($foto_size)<1 ){$nada = "la foto non è stata inserita, l'articolo non
verrà inserito nella Home-page";}
elseif ( $home == second  AND ($foto_size)<1 ){$nada = "la foto non è stata
inserita, l'articolo non verrà inserito nella Home-page";}
if  (isset($pino)) {
$result = mysql_query($pino,$connessione) or die("impossibile eseguire
l'interrogazione");
            }
Grazie per l'aiuto
 Silvio

 inserimento dei record nella tabella sovrastante.
   Io suggerirei, se le tabelle sono identiche, qualcosa del genere:
<code>
	if(
	  isset($home)
	  and ($home=="first" or $home=="second")
	  and $foto_size>1
	) {
	  $sql="insert into $home "  // espandi direttamente
	      ."(ID, codice, descrizione_breve, descrizione, foto, "
	      ."foto_size, foto_type,foto_name, prezzo) "
	      ."values "
	      ."(\"\",\"$codice\", \"$descrizione_breve\", "
	      ."\"$descrizione\", \"$foto\", \"$foto_size\", "
	      ."\"$foto_type\", \"$foto_name\", \"$prezzo\")";
	  $result=mysql_query($sql,$connessione) or
	    die("impossibile eseguire l'interrogazione");
	}
	else {
	  echo "Non hai selezionato nulla oppure non era ci&ograve; "
	      ."che mi aspettavo oppure la dimensione dell'immagine "
	      ."&egrave; zero e quindi nulla sar&agrave; inserito "
	      ."nel database!<br>";
	}
</code>
   Sempre che abbia capito.
-- 
Alla prossima,
Marco

 if ( $home ** ) {
if (isset($home)) {
ciao,
Liuk
-- 
Message sent from: 
http://www.fanwars.it
 
IP ADDRESS: 80.182.250.156 
TIME: 22-04-2003 22:13

 Scusate a tutti ho risolto da solo con la seguente funzione:
Oddio, mi pare troppo lunga... O_o
-- 
Message sent from: 
http://www.fanwars.it
 
IP ADDRESS: 80.182.250.156 
TIME: 22-04-2003 22:14

 Oddio, mi pare troppo lunga... O_o
Concordo pienamente... effettivamente potevo ridurre il codice.
Però il risultato è lo stesso o mi sbaglio??? :PP
Adesso lo riduco... meglio un codice bello pulito.
Grazie per l'aiuto e per le critiche
 Silvio
