Bonjour,
J'ai actuellement un formulaire php de scanning de barcode qui doit faire ceci :
1. Si code existe déjà dans table2 > message d'erreur "le code existe déjà" > ça fonctionne.
2. Si code existe pas > insertion en base dans table 2 MAIS en reprenant des datas d'une autre table (une fiche produit) > ça fonctionne.
Mon code fonctionne... mais j'ai un phénomène bizarre.
Si je tape n'importe quoi au lieu d'un code barre, en fait si je tape un code qui n'existe dans aucunes des deux tables style 1234
ou 111111 ou n'importe quels chiffres qui ne sont pas présents en base
mon script m'envoie quand même à l'insert, fait comme si il insérait et je n'ai rien d'ajouté en base.
Jusque ici tant mieux, comme ça je n'ai pas de trucs à la con dans ma base.
Cependant, j'aimerai que si j'insère n'importe quoi, il check bien que ce n'importe quoi existe dans ma base dans les table1 et table2
et si il n'existe pas qu'il me dise "tu as tapé n'importe quoi ou ce code est incorrect".
Actuellement, comme il passe au travers, il m'affiche mon html "ok bien enregistré" alors qu'il fait rien au final
et les utilisateurs pensent avoir bien scanné.
Tant que je prends des datas existantes dans ma table1 tout fonctionne.
Mon code :
Code : 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 <?php //Connections try { $handler = new PDO('mysql:host=localhost:3307;dbname=base_barcode','login', 'password'); $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e){ exit($e->getMessage()); } $codebar = isset($_GET['barcode']) ? $_GET['barcode'] : NULL; //Verification if(!isset($error)){ //no error $sthandler = $handler->prepare("SELECT * FROM table2 WHERE quantity = 0 AND table2_Barcod=:barcode"); $sthandler->bindParam(':barcode', $codebar); $sthandler->execute(); if($sthandler->rowCount() > 0 ){ echo "<center><span style=background:#FFFFFF><font color=red><b>!! Code déjà scanné !!</b></font></span><br />"; header("Refresh: 3; URL=indexphp"); } else { //insert into database $sql = 'insert into table2 (table2_Barcod, table2_Qty, table2_datetime, table2_process, table2_user, table2_zone) SELECT distinct table1_Barcod, table1_Qty, now(), "C", "data1", "data2" from table1 where table1_Barcod = :barcode'; $query = $handler->prepare($sql); $query->execute(array(':barcode' => $codebar)); echo "<center><FONT SIZE=4 FACE=Arial><b><font color='red'>enregistrement en base...</font></font></center>"; echo "<center><FONT SIZE=20 FACE=Arial><b><font color='green'>OK</font></font></center>"; echo "<center><FONT SIZE=2 FACE=Arial><b>Redirection en cours...</font></center>"; header("Refresh: 3; URL=index.php"); } }else{ echo "erreur d'insertion, réessayez ".$error; exit(); } ?>
Partager