problema con if

zighy

Utente Attivo
20 Gen 2012
96
0
0
Sto smattando riuscite a vedere dovì 'è l'errore

PHP:
<?php
 $username="";
 $password="";
 $database="";
   mysql_connect(localhost,$username,$password);
    @mysql_select_db($database) or die("Impossibile selezionare il database.");
     $query="SELECT * FROM schede WHERE id = 1";
      if( $a !=="") 
{ 
echo "<script>location='pag1.html';</script>"; exit ();} 
else 
{ 
echo "<script>location='pag2.html';</script>"; exit (); 
}

?>

Mi collego al databese alla tabella 'schede' dove l'id è 1 poi se il campo 'a' è pieno dovrebbe andarmi alla pag1 altrimenti alla pagina 2 invece anche se il campo 'a' è vuoto mi va sempre alla pagina1.............perchèèèèèèèèè?????
 
Ultima modifica di un moderatore:
Per prima cosa si userebbe l'header per il redirect, e poi dove dichiari $a scusa?

Altro errore:

mysql_connect(localhost,$username,$password);
localhost non è ne testo ne una variabile, wtf?

Consiglio:

abbrevia l'echo cosi se non vuoi usare l'header, per rendere il codice meno intricato
PHP:
echo (!empty($a)) ? "<script>location='pag1.html';</script>" : "<script>location='pag2.html';</script>"; exit ();
 
Ultima modifica:
header a parte (sto lavorando su un vecchio file) immaginavo che il problema era qualcosa di simile ma se sapevo come si faceva nn ero certo qui :elvis:

$query="SELECT a FROM schede WHERE id = 1";
if( $a !=="")

cosi mi funziona parzialmente ma nn credo sia il modo giusto nemmen questo sto andando a tentativi
 
header a parte (sto lavorando su un vecchio file) immaginavo che il problema era qualcosa di simile ma se sapevo come si faceva nn ero certo qui :elvis:

$query="SELECT a FROM schede WHERE id = 1";
if( $a !=="")

cosi mi funziona parzialmente ma nn credo sia il modo giusto nemmen questo sto andando a tentativi
$query="SELECT a FROM schede WHERE id = 1"; a non diventa una variabile e non esegui la query, fai cosi

PHP:
//eseguo la query e controllo gli errori
$query= mysql_query("SELECT * FROM schede WHERE id = 1") or die (mysql_error());
//fetch object istanzio i risultati della query
$obj_query = mysql_fetch_object($query);
//controllo il campo a che se non è vuoto fa redirect su pag1 sennò su pag2
echo (!empty($obj_query->a)) ? "<script>location='pag1.html';</script>" : "<script>location='pag2.html';</script>"; exit ();
 
Ultima modifica:
Amo te e '!empty' allo stesso modo...un po piu' '!empty' dai!

Cmq di solito uso Header ma anche gli script nn mi hanno mai dato problemi...ti ringrazio
 
Amo te e '!empty' allo stesso modo...un po piu' '!empty' dai!

Cmq di solito uso Header ma anche gli script nn mi hanno mai dato problemi...ti ringrazio
:love:, a parte gli scherzi puoi usare benissimo gli script (non so il tuo caso) ma se un utente
disattiva il javascript essi non vanno oppure essendo lato client vanno piu lenti :p

Ps: empty() serve a verificare se una variabile è vuota o meno
senza ! nel caso sia vuota da un valore boolean vero nell'altro caso falso
 
approfitto di te se posso visto che sei in linea.Ho una tabella schede dove vengono inseriti tramite 'post' dei valori 'a' e 'b' dove id=1

$sql="UPDATE schede SET a = '$_POST['a']', b = '$_POST['b']' WHERE id = 1";

Ora io vorrei che il valore 'a' venga inserito anche in un'altra tabella dove un altro campo c = d

Devo usare un JOIN?
 
No devi ordinare gli apostrofi xD
PHP:
$sql="UPDATE schede SET a = ".$_POST['a'].", b = ".$_POST['b']." WHERE id = 1";
mysql_query($sql) or die(mysql_error());
 
quella parte funziona ho scritto male qui è la seconda parte quella che m'interessa cioè inserire il valore a nell'altra tabella dove c=d
 
ciao
secondo me non va
$sql="UPDATE schede SET a = ".$_POST['a'].", b = ".$_POST['b']." WHERE id = 1";

si possono salytare gli apici solo se i valori sono numeri interi, quindi

PHP:
$sql="UPDATE schede SET a = '".$_POST['a']."', b = '".$_POST['b']."' WHERE id = 1";
 
borgo hai ragione ma è scritto esattamente come hai scritto te e funziona perfettamente è l 'altra parte che mi risulta particolamente ostica se legge gli altri messaggi ti rendi conto della situazione
 
E beh allora se non sono numeri aggiungiamo anche qualche protezione come addslashes(stripslashes()) o mysql_real_escape_string() sennò è vulnerabile a sql injection


zighy per quello che vuoi fare potresti fare semplicemente 2 update e nel secondo fare il confronto dei 2 campi
qual'è il problema?
 
$sql="UPDATE schede SET a = '".$_POST['a']."', b = '".$_POST['b']."' WHERE id = 1";
$sql="UPDATE schede_altra SET a = '".$_POST['a']."' WHERE c=d";

intendi cosi?perchè è la prima cosa che ho provato a fare ma non mi funziona :crying:
 
$sql="UPDATE schede SET a = '".$_POST['a']."', b = '".$_POST['b']."' WHERE id = 1";
$sql="UPDATE schede_altra SET a = '".$_POST['a']."' WHERE c=d";

intendi cosi?perchè è la prima cosa che ho provato a fare ma non mi funziona :crying:
mmh...d che valore dovrebbe avere?
 
allora spiego bene il problema.Sto facendo un sito di fantacalcio dove c è un form che invia dati a un database dove c è gia' un id

PHP:
<?php 
$connessione=mysql_connect("my_database","psw");
if(!$connessione){ 
              die('Impossibile connettersi:'.mysql_error()); 
  } 

mysql_select_db("my_database", $connessione); 

$allenatore=$_POST['allenatore'];
$squadra=$_POST['squadra'];   

if($allenatore!=="" and $squadra!=="")

$sql="UPDATE schede SET allenatore = '".$_POST['allenatore']."', squadra = '".$_POST['squadra']."' WHERE id = 1"; 

$result=mysql_query($sql); 

if(!$result){ 
       die ('Errore:'.mysql_error()); 
} 

mysql_close($connessione); 

?>

Ora...ho un'altra tabella che mi serve per il calendario che si chiama appunto 'calendario' dove andro'ad inserire (per ora manualmente) un nome per esempio PIPPO e vorrei che nell'altro campo che per adesso è vuoto vada il nome della squadra che PIPPO invia.
Quindi $SQUADRA WHERE nomecampo=PIPPO
 

Discussioni simili