Bonjour,

Je m'évertue depuis le début de la journée à faire fonctionner une requête... j'ai des "manqués" lors de l’exécution de ma requête XMLHttpRequest.

Ci-dessous, le fichier PHP ouvert par le serveur lors de l'envoi de la méthode, qui effectue un enregistrement dans ma base de données, puis renvoi un fichier XML pour le retour d'informations.

Le souci, c'est que parfois, l'enregistrement ne s'effectue pas correctement.

J'ai donc créé une fonction sensé vérifier la bonne écriture dans la base de données, renvoyant une info par XML. Et là, comble de l'étrange, j'ai un retour positif, même en cas de loupé !

Quelqu'un aurait-il une idée de mon erreur ?



Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
header("Content-Type: text/xml");
 
echo '&lt;?xml version="1.0" encoding="utf-8"?&gt;';
echo '<root>';
 
try{
    $bdd = new PDO('mysql:host=localhost;dbname=qual', 'root', 'IdentIt');
}
catch (Exception $e){
    die('Erreur : ' . $e->getMessage());
}
 
$heure=date("Y-m-d H:i:s");
$donneesoperateur=$bdd->query("SELECT * FROM login where machine='".$_GET['machine']."' AND heurearrivee<'".$heure."' AND heuredepart>='".$heure."'")->fetch();
$donneessoustestqual=$bdd->query("SELECT * FROM soustestqual where idsoustestqual='".$_GET["idsoustest"]."'")->fetch();
$donneestestqual=$bdd->query("SELECT * FROM testqual where idtestqual='".$donneessoustestqual["idtestqual"]."'")->fetch();
 
if(isset($_GET['type'])){
	$i=0;
	$requeteverif=$bdd->query('SELECT * FROM verif WHERE DATE(date)="'.date("Y-m-d").'" AND DATE_FORMAT(date,"%H")="'.date("H").'" AND idsoustestqual="'.$_GET['idsoustest'].'" AND idmachine="'.$_GET['machine'].'"');
	while($donneesverif=$requeteverif->fetch()){
		$resultat=intval($donneesverif['reponse'])+1;
		$bdd->exec('UPDATE verif SET reponse="'.$resultat.'", date="'.$heure.'" WHERE idverif="'.$donneesverif['idverif'].'"');
		$i=1;
	}
	if($i==0){
		$requeteenregistrer = $bdd->prepare('INSERT INTO verif (idsoustestqual, idmachine, reponse, date, operateur) VALUES(?, ?, ?, ?, ?)');
		$requeteenregistrer->execute(array($_GET['idsoustest'], $_GET['machine'], 1 ,$heure, $donneesoperateur['idoperateur']));
	}
}
else{
	$requeteenregistrer = $bdd->prepare('INSERT INTO verif (idsoustestqual, idmachine, reponse, date, operateur) VALUES(?, ?, ?, ?, ?)');
	$requeteenregistrer->execute(array($_GET['idsoustest'], $_GET['machine'], $_GET['reponse'] ,$heure, $donneesoperateur['idoperateur']));
}
 
$requeteverification=$bdd->query("SELECT * FROM verif WHERE date='".$heure."' AND idsoustestqual='".$_GET['idsoustest']."' and idmachine='".$_GET['machine']."'");
if($verification=$requeteverification->fetch()){
	echo '<verification name="true" />';
}
if($donneestestqual['soustestlies']==1){
	$requetesoustestqualsuivant=$bdd->query('SELECT * FROM soustestqual WHERE idtestqual="'.$donneestestqual["idtestqual"].'" AND idsoustestqual>"'.$donneessoustestqual["idsoustestqual"].'"');
	if($donneessoustestqualsuivant=$requetesoustestqualsuivant->fetch()){
		echo '<donnees name="'.$donneessoustestqualsuivant["typereponse"].'" />';
		echo '<donnees name="'.$donneessoustestqualsuivant["idsoustestqual"].'" />';
		echo '<donnees name="'.addslashes(htmlentities($donneessoustestqualsuivant["nomsoustestqual"])).'" />';
		echo '<donnees name="'.$donneessoustestqualsuivant["idtestqual"].'" />';
	}
}
echo '</root>';
?>