Condition qui ne fonctionne pas

Résolu
barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   -  
barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   - 26 août 2021 à 21:37
Bonjour,

Voilà une partie de mon code :

try{
	require_once 'sqlconnect.php';

	// cette requête vérifie l'unicité de la machine à créer
	$check = "SELECT uuid FROM devices WHERE uuid='$uuid' AND account_id='$account_id'";
	$checkreq = $bdd ->prepare($check);
	$checkreq ->execute();
	$match = $checkreq ->rowCount();
	$checkreq ->closecursor();

	echo $match;

	if($match > 1)
	{
		header("Location: $PHP_SELF");
		die("Attention doublons détectés dans la base de données");
	}

	if($match = 1)
	{
		$mod = "UPDATE devices SET ip_address='$ip_address', ssh_port='$ssh_port', vnc_port='$vnc_port', connected='$connected', last_active='$last_active' WHERE uuid='$uuid' AND account_id='$account_id'";
		$res = $bdd ->prepare($mod);
		$res ->execute();
		echo "Machine ajoutée (MAJ)";
		$res ->closecursor();
	}

	if($match = 0)
	{
		$sql = "INSERT INTO devices (ip_address,ssh_port,vnc_port,group_name,account_id,label,uuid,connected,removed,last_active,api_id) VALUES (:ip, :ssh, :vnc, :groupe, :compte, :label, :uuid, :connect, :remove, :last, :api)";
		$req = $bdd ->prepare($sql);
		$req ->execute(array(
			':ip' => $ip_address,
			':ssh' => $ssh_port,
			':vnc' => $vnc_port,
			':groupe' => $group_name,
			':compte' => $account_id,
			':label' => $label,
			':uuid' => $uuid,
			':connect' => $connected,
			':remove' => $removed,
			':last' => $last_active,
			':api' => $api_id));
		echo "Machine ajoutée (NEW)";
		$req ->closecursor();
	}
}

catch(PDOException $e){
	echo "Erreur : " . $e->getMessage();
}

?>


Quand la variable $match vaut 0, j'obtiens le message :
Machine ajoutée (MAJ)


Alors que je devrais obtenir le message :
Machine ajoutée (NEW)


Merci pour votre aide.


Configuration: Linux / Firefox 91.0


1 réponse

yg_be Messages postés 23537 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 581
 
bonjour,
est-ce ton premier exercice en PHP?
je suggère de prendre un peu de temps pour étudier les opérateurs de comparaison en PHP.
au minimum, de te poser, quelques minutes, la question "comment est-il possible d'arriver au résultat obtenu"?
0
barnabe0057 Messages postés 14454 Date d'inscription   Statut Contributeur Dernière intervention   4 924
 
Salut, ce n'est pas un exercice, c'est un projet personnel auquel je viens d'ajouter une base de données, donc je suis bien obligé de me mettre à PHP.

Je viens de voir mon erreur, merci de m'avoir aiguiller sur la bonne voie.
0