Bonjour,

j'ai le code PHP suivant:

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
42
43
44
45
<?php
 
if (empty($errors)){
	$uid=6;
	$in=$trimmed['itemname'];
	$pdf=$trimmed['pdft'];
	$is=$trimmed['istatus'];
	$ides=$trimmed['itemdescription'];
	$set='setup 1';
	$creation='Submitted';
 
	// Make sure the Item Name is available:
	$q = "SELECT Item_ID FROM items WHERE Item_name='$in'";
	$r = mysqli_query ($dbc, $q); 
 
	if (mysqli_num_rows($r) == 0) { // Available.
		$q="INSERT INTO items (Item_name, Item_description, Item_status_ID, Setup, User_ID, Team_ID, CreationDate, UpdateDate, Creation) VALUES ('$in', '$ides', '$is', '$set', $uid, $pdf, NOW(), NULL, '$creation')";
		$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
 
		if (mysqli_affected_rows($dbc) == 1) { // If it ran OK.
 
 			$q1 = "SELECT Item_ID FROM items WHERE Item_name='$in' LIMIT 1";
			$r1 = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
 
				if (mysqli_num_rows($r1) == 1) {
					$item=mysqli_fetch_array($r, MYSQLI_NUM);
					$itemID=$item[0];
 
					$_SESSION['success_item']='The item has been added in the system';
 
					$url = absolute_url ('listofitems.php');
					header("Location: $url");
					exit();
					mysqli_close($dbc);
 
				}
		} else { //Not OK
			echo '<p class="error">You could not enter your item due to a system error. We apologize for any inconvenience.</p>';
		}
	}
	else { // The Item Name is not available.
		echo '<p class="error">That Item Name has already been registered.</p>';
	}
}
?>
ce code doit:

- verifier si le ITEM NAME est disponible
- si OUI, alors inserer le nouvel ITEM NAME
- et ainsi recuperer l'ID de ce nouvel ITEM NAME
mais voila quand je le teste j'ai une erreur:

An error occurred in script 'D:\wamp\www\PHP-TESTS\dbvalidation.php' on line 23: Query: INSERT INTO items (Item_name, Item_description, Item_status_ID, Setup, User_ID, Team_ID, CreationDate, UpdateDate, Creation) VALUES ('item4', 'item4 description', '2', 'setup 1', 6, 5, NOW(), NULL, 'Submitted')
MySQL Error: Duplicate entry 'item4' for key 'Item_name'

....

[q] => INSERT INTO items (Item_name, Item_description, Item_status_ID, Setup, User_ID, Team_ID, CreationDate, UpdateDate, Creation) VALUES ('item4', 'item4 description', '2', 'setup 1', 6, 5, NOW(), NULL, 'Submitted')
[r] => 1
[q1] => SELECT Item_ID FROM items WHERE Item_name='item4' LIMIT 1
[r1] =>
Je vois que j'ai pas de resultat dans r1 et je ne comprends pas pourquoi. Puisque quand je teste les requetes directement dasn MySQL:

[q] => INSERT INTO items (Item_name, Item_description, Item_status_ID, Setup, User_ID, Team_ID, CreationDate, UpdateDate, Creation) VALUES ('item4', 'item4 description', '2', 'setup 1', 6, 5, NOW(), NULL, 'Submitted')
[q1] => SELECT Item_ID FROM items WHERE Item_name='item4' LIMIT 1
Je recois comment Item_ID: 24

Pourquoi est ce que avec PHP ca plante?

Merci d'avance.

Billy