2017-10-02 2 views
0

Puis-je obtenir de l'aide, s'il vous plaît? L'instruction if ne va pas à la condition else.
Aussi, l'inverse, si je change ($data == $data1) simplement sauter l'instruction si et passer directement à autre.La déclaration IF ne va pas à ELSE

S'il vous plaît voir mon code ci-dessous:

include 'detalii.php'; 

$con = mysqli_connect("192.168.1.11","test","","admin"); 

$check = "SELECT ID FROM `q7f6xr` where VIRTUALM = 'REGO-A' ORDER BY ID DESC LIMIT 1 "; 
$check1 = "SELECT CHEIE FROM `rego-a` ORDER BY CHEIE DESC LIMIT 1"; 

$rs = mysqli_query($con, $check); 
$rs1 = mysqli_query($con, $check1); 

$data = mysqli_fetch_array($rs); 
$data1 = mysqli_fetch_array($rs1); 

if ($data != $data1) { 
    // DACA IP-UL EXISTA EXECUTA AICI 
    // IF IP EXISTS EXECUTE THIS 
    echo "IP-ul exista deja !<br/>"; 
} else { 
    $newUser = "INSERT INTO `rego-a` (`CHEIE`) VALUES ('$data[0]')"; 
    if (mysqli_query($con, $newUser)) { 
     // DACA IP E UNIC EXECUTA AICI 
     // IF IP IS UNIQUE EXECUTE THIS 
     echo exec('C:\Users\Admin\Desktop\test1.txt'); 
     echo "You are now registered<br/>"; 
    } 
} 

Merci d'avance pour vos suggestions.

+4

Eh bien, ils ne sont évidemment pas les mêmes. Avez-vous essayé 'var_dump()' -ing les? – jeroen

+0

avez-vous essayé d'imprimer un message dans votre condition if else pour apprendre à connaître ?? –

+0

Les variables '$ data' et' $ data1' sont toujours inégales, donc la condition 'else' n'est jamais exécutée. Essayez 'var_dump()' dans l'instruction 'if' et assurez-vous que les variables sont les mêmes, peut-être une petite différence dans la sortie. Un autre test que vous pouvez faire est de voir dans db si la requête produit réellement des résultats égaux, peut-être qu'une erreur dans la requête produit toujours des valeurs différentes. – Yeti82

Répondre

3

La vérification de l'égalité sur la valeur de retour de mysqli_fetch_array n'est pas un bon choix. Ce sont des tableaux, et leur égalité dépend de plusieurs considérations, rendant votre code extrêmement fragile.

Il serait préférable de vérifier l'égalité en utilisant des éléments individuels de ces matrices. Par exemple:

if ($data[0] == $data1[0]) 
{ 
    // Values are equal 
} 
else 
{ 
    // Values are NOT equal 
} 

Vous pouvez également utiliser des tableaux associatifs avec des index nommés:

$data = mysqli_fetch_array($rs, MYSQLI_ASSOC); 
$data1 = mysqli_fetch_array($rs1, MYSQLI_ASSOC); 

if ($data["ID"] == $data1["CHEIE"]) 
{ 
    // Values are equal 
}