IF con un campo del database

Paolo Fattoruso

Nuovo Utente
3 Feb 2013
14
0
0
Ciao a tutti e grazie per il vostro aiuto.
Questo è il mio codice:

PHP:
<form method="post" action="">
<select name="select1">
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
Username <option value="<?php echo $line['cf_id'];?>"> <?php echo $line['cf_id'];?> </option>
 
<?php
}
?>
</select><br><br>

<br><br>

<B>Posti:</B> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <select size="1" name="posti">
<option value="selezionare">selezionare</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br><br>

<input type="submit" name="submit" value="Prenota" />
</form>


<?php
$con = mysql_connect("xxxx" , "xxxx" , "xxxx");
if (!$con)
  {  die('Could not connect: ' . mysql_error());}

mysql_select_db("xxxx", $con);

$cf_id=$_POST['select1'];
$posti=$_POST['posti'];
$vai=$_POST['submit'];
if (isset($vai))
{

$query = "SELECT avjos16_users.id,avjos16_users.name,avjos16_chronoforms_data_viaggio.cf_id, avjos16_chronoforms_data_viaggio.ruolo,avjos16_chronoforms_data_viaggio.partenza,avjos16_chronoforms_data_viaggio.giorno,avjos16_chronoforms_data_viaggio.ora,avjos16_chronoforms_data_viaggio.arrivo,avjos16_chronoforms_data_viaggio.posti,avjos16_chronoforms_data_viaggio.fumatore,avjos16_chronoforms_data_viaggio.note ".
 "FROM avjos16_users, avjos16_chronoforms_data_viaggio ".
    "WHERE ( avjos16_users.id = avjos16_chronoforms_data_viaggio.cf_user_id AND ruolo= '{$_POST['ruolo']}' AND partenza= '{$_POST['partenza']}' AND arrivo= '{$_POST['arrivo']}' AND username!='". $user->username."' AND cf_created_by!= '".$user->id."'  )";

if ('$posti' <= posti) 
               {		
			
			$query = "UPDATE  avjos16_chronoforms_data_viaggio SET posti = posti-'$posti' WHERE cf_id='$cf_id' "; 
                        $result = mysql_query($query);

                             $query1 = "UPDATE  prenotazioni SET user_id = '".$user->id."' , richiedente = ' . $user->username . ' ,corsarich='$cf_id'"; 
                             $result = mysql_query($query1);			
		}
			else
  {  echo "Puoi selezionare al massimo X posti";  }
	
}

mysql_close($con);
?>

il form funziona bene , il mio problema è che non riesco a fare un IF con il dato inserito da form e il dato presente nel database nel campo posti.
Ho provato con
PHP:
if ('$posti' <= 2)
ed in base al valore inserito nel form l'IF risponde correttamente.
Mentre se prende il valore del campo del database NO.
Come posso risolvere??
 
PHP:
if ('$posti' <= 2)
gli apici non ci vanno
PHP:
if ($posti <= 2)
 
Il database che contiene il campo posti è :
avjos16_chronoforms_data_viaggio
Cattura33.JPG
 
ciao hai ragione :)
ma come dicevo precedentemente facendo il confronto con un numero fissato da me funziona [ad es. if ($posti <= 2) ] ... INVECE il problema è che non funziona se lo confronto con il valore presente nel campo posti del database avjos16_chronoforms_data_viaggio


PHP:
if ('$posti' <= 2)
gli apici non ci vanno
PHP:
if ($posti <= 2)
 
ma l'hai postato tutto il codice?
non vedo l'esecuzione della query
dopo la query dovrebbe esserci piu o meno questo
PHP:
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);

if ($posti <= $row['posti']) {
    
}
 
PHP:
<?php
$con = mysql_connect("xxxx" , "xxxx" , "xxxx");
if (!$con)
  {  die('Could not connect: ' . mysql_error());}

mysql_select_db("xxxxxxxx", $con);

$cf_id=$_POST['select1'];
$posti=$_POST['posti'];
$vai=$_POST['submit'];
if (isset($vai))
{
$query3 = "SELECT * ".
               "FROM avjos16_users, avjos16_chronoforms_data_viaggio ".
               "WHERE ( avjos16_users.id = avjos16_chronoforms_data_viaggio.cf_user_id AND ruolo= '{$_POST['ruolo']}' AND partenza= '{$_POST['partenza']}' AND arrivo= '{$_POST['arrivo']}' AND username!='". $user->username."' AND cf_created_by!= '".$user->id."'  )";


$result = mysql_query($query3);
$row = mysql_fetch_assoc($result);
if ($posti <= $row['posti'])


      {					
                  $query = "UPDATE  avjos16_chronoforms_data_viaggio SET posti = posti-'$posti' WHERE cf_id='$cf_id' "; 
                  $result = mysql_query($query);

                  $query1 = "UPDATE  prenotazioni SET user_id = '".$user->id."' , richiedente = ' . $user->username . ' ,corsarich='$cf_id'"; 
                  $result = mysql_query($query1);

	}
			else
  {  echo "Puoi selezionare al massimo";}
}
mysql_close($con);
?>


Ora sia per valori minori che maggiori mi da sempre la risposta ELSE.
già è qualcosa perchè significa che dovrebbe leggere il valore del database.







ma l'hai postato tutto il codice?
non vedo l'esecuzione della query
dopo la query dovrebbe esserci piu o meno questo
PHP:
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);

if ($posti <= $row['posti']) {
    
}
 
stampa il valore cosi vediamo cosa contiene
PHP:
$result = mysql_query($query3);
$row = mysql_fetch_assoc($result);

var_dump($row['posti']); // stampa il valore

if ($posti <= $row['posti'])
 
prova a stampare tutto
PHP:
var_dump($row);
cmq se ti serve solo il campo punti la query si puo semplificare parecchio
 
prova a stampare tutto
PHP:
var_dump($row);
cmq se ti serve solo il campo punti la query si puo semplificare parecchio


mi dà:
bool(false)

cmq questo non è tutto il codice ma solo la parte che mi da problemi..se ti facessi vedere l'intero codice che ho fatto altro che complicato...lo è di più :dipser:

è che sto alle prime armi , faccio tutto da autodidatta :book: per un esame :)

non guardo ne alla parte estetica ma basta che funzioni :'(
 
la query potrebbe andare in errore per qualche motivo
stampala insieme agli eventuali errori
PHP:
$result = mysql_query($query3);
if (!$result) {
    echo "query : " . $query3 . " <br/>errore : " . mysql_error();
}
 
lo ho modificato così:

PHP:
$query3 = "SELECT * FROM avjos16_users, avjos16_chronoforms_data_viaggio
		WHERE (   cf_id= '{$_POST['select1']}' AND avjos16_users.id = avjos16_chronoforms_data_viaggio.cf_user_id AND ruolo= '{$_POST['ruolo']}' AND partenza= '{$_POST['partenza']}' AND arrivo= '{$_POST['arrivo']}' AND username!='". $user->username."' AND cf_created_by!= '".$user->id."' )";
		$result = mysql_query($query3);

	if ($result) 
			{		
echo "query : " . $query3 . " <br/>errore : " . mysql_error();
			}
			else
  {  echo "Puoi selezionare al massimo";  }
	
}


il risultato è:
PHP:
query : SELECT * FROM avjos16_users, avjos16_chronoforms_data_viaggio WHERE ( cf_id= '13' AND avjos16_users.id = avjos16_chronoforms_data_viaggio.cf_user_id AND ruolo= '' AND partenza= '' AND arrivo= '' AND username!='pablo' AND cf_created_by!= '43' )
errore :
 

Discussioni simili