while e if

Federica Spaziatori

Utente Attivo
7 Nov 2012
30
0
0
ciao a tutti volevo sapere xk questo codice non funge

PHP:
$sql= mysql_query("SELECT * FROM users WHERE id=". $_SESSION['id_utente']);
   $estrazione= mysql_fetch_assoc($sql);
    $sqltrovareff =mysql_query("SELECT * FROM users WHERE reffeal="."'".$estrazione['username']. "'");
    $referenti = mysql_fetch_assoc($sqltrovareff);
    
  
     while ($row = mysql_fetch_assoc($sqltrovareff)) {
     echo $row['username'];
    }
  
   if ($referenti['username'] == "") {
   echo "ciao";
   }
 
Hai inizializzato le sessioni? (session_start())
Controlla se nelle query ci sono degli errori con mysql_error()

Inoltre concatena correttamente
Codice:
reffeal='".$estrazione['username']."'"


ps: mysql è deprecato, passa a mysqli
 
se uso mysqli devo altri comandi o basta ad esempio mysqli_query();?

Poi ho fatto tutto e credo che il problema stia proprio nel

PHP:
while (QUI Cè IL PROBLEMA) {
....
}
 
E' probabile che la query sia errata e non venga quindi ciclata dal fetch_assoc, posta il codice seguendo i consigli che ti ho scritto e vediamo
 
PHP:
<?php 
 $sql= mysql_query("SELECT * FROM users WHERE id=". $_SESSION['id_utente'])
 or mysql_error(); ;
   $estrazione= mysql_fetch_assoc($sql);
    $sqltrovareff =mysql_query("SELECT * FROM users WHERE reffeal=reffeal='".$estrazione['username']."'") 
    or mysql_error();
    $referenti = mysql_fetch_assoc($sqltrovareff);
    
  
     while ($referenti = mysql_fetch_assoc($sqltrovareff)) {
     echo $row['username'];
    }
  
   if ($referenti['username'] == "") {
   echo "ciao";
   }

non mi da nessun errore di connessione ma non mi fa uscire i risultati
 
Aggiusta cosi

PHP:
<?php  
session_start();
 $sql= mysql_query("SELECT * FROM users WHERE id=". $_SESSION['id_utente']) or die(mysql_error()); 
   $estrazione= mysql_fetch_assoc($sql); 
    $sqltrovareff =mysql_query("SELECT * FROM users WHERE reffeal='".$estrazione['username']."'")  or die(mysql_error()); 
    $referenti = mysql_fetch_assoc($sqltrovareff); 
     
   
     while ($row= mysql_fetch_assoc($sqltrovareff)) { 
     echo $row['username']; 
    } 
   
   if ($referenti['username'] == "") { 
   echo "ciao"; 
   }

Edit: si correggi anche la distrazione vista da borgo
 
Ultima modifica:
si scusate l'errore ma è dovuto ai molteplici tentativi; comunque non funge nemmeno cosi....

Funge solamente se faccio cosi, ma non ho il risultato che mi serve perchè se l'utente non ha nessuno reff allora devo restituire un altra cosa capito cosa intendo?

PHP:
 $sqltrovareff =mysql_query("SELECT * FROM users WHERE reffeal=reffeal='".$estrazione['username']."'")  
    or mysql_error(); 
   
   
     while ($referenti = mysql_fetch_assoc($sqltrovareff)) { 
     echo $referenti['username']; 
    }
 
Nella query hai ripetuto 2 volte reffeal=, comunque allora ti basta contare i risultati con mysql_num_rows

es.
PHP:
if(mysql_num_rows($query)==0) echo 'Nessun risultato trovato';
 

Discussioni simili