[PHP] Récupérer Info BDD

Résolu
camyzo -  
 camyzo -
Bonjour à toutes et tous !!

Je me permet de vous exposer mon problème car ca fais quelques jours que j'essaye et pas moyen.

Donc j'ai deux bases de données nommées "membres" et "photo".

La base de donnée nommée "photo" contient quelques champ, dont: item, url ...

Les membres peuvent ajoutés des photos dans la base de donnée via un formulaire qui appel donc un script lors de

l'envoi. Donc dans ce script il faudrait que je fasse une requête sql pour connaitre le dernier enregistrement du

membre dans la base, et donc si le dernier enregistrement a par exemple "4" en valeur dans le champ "item" et bien

la photo qu'ils enregistrent aura "5" en valeur dans le champ "item".

Mais le problème c'est qu'il faut que la valeur commence par 1 pour chaque membre, donc je ne peux pas me contenter de mettre le champ "item" en index auto-increment !!!

C'est là que viens le problème, donc comment faire pour ajouter + 1 à chaque photo enregistrées ???

Voici ma requête mais qui ne va pas:

---------------------------------------------------------------------

//récupérations des valeurs saisies dans le formulaire
$membre=$_POST['membre'];


//récupération de l'item
$reponse = mysql_query('SELECT COUNT(*) AS item FROM photo WHERE vendeur="'.$membre.'"'); // Requête SQL
$res_item=mysql_fetch_array($reponse);

$res_item['item'];

$item = $res_item['item'] + 1;

//insertion dans la base de données
$reqinsert="insert into photo values ('$item','$membre');";

mysql_query($reqinsert) or die("La requête ne fonctionne pas. La table n'a pas été mise à jour. <br />".mysql_error());

---------------------------------------------------------------------

Voila merci, merci, merci d'avance pour celui ou celle qui peut m'aider, si je suis pas clair dites le moi je réctifie ....

Camyzo.
A voir également:

11 réponses

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
déjà il ne faut pas confondre une base de données et une table, là tu nous parles de tables et pas de base de données.

item est la clé primaire de ta table ?
Le mieux c'est de mettre la clé primaire en auto-increment si ce n'est pas déjà fait, ainsi tu n'as pas à te soucier des valeurs, elles se suivront toutes seules comme des grandes.
0
pitxu Messages postés 689 Date d'inscription   Statut Membre Dernière intervention   95
 
bonjour,

Donc j'ai deux bases de données nommées "membres" et "photo".

La base de donnée nommée "photo" contient quelques champ, dont: item, url ...


j'imagine que membres et photos ne sont pas des bdd mais des tables, pourquoi ne pas créer une table photos_membre avec un id qui correspondrait au champ "item" de ta table membres, tu pourrais ainsi utiliser l'auto-increment pour la table photos_membre.

ex:

table membre :

item 1 membre toto
item 2 membre titi

table photos_membre :

id 1 photo img1.jpg
id 2 photo img2.jpg
id 1 photo img3.jpg
id 2 photo img4.jpg
id 1 photo img5.jpg

avec une commande sql "select count(*) from photos_membres where id=1"

;)
0
camyzo
 
Oui désolé, je n'ai pas fais gaffe, j'ai une seul BDD mais deux tables ! Encore désolé !!

Merci de ta réponse mais justement si je met une clé primaire en auto incrément, à chaque fois qu'un membre ajoute une photo ca fera + 1 !!

Mais je veux que ca fasse + 1 pour le membre en question, c'est à dire que si la derniere photo ajoutée par BOB à 5 en valeur "item" et que la derniere photo ajoutée par PIERRE a "10" en valeur "item" et ben si BOB ajoute une nouvelle fois une photo, que sa photo ai "6" en valeur et non pas "11" !!!

Est-ce que tu comprends ????


Merci de vos réponses !!!
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
très bien, et qu'est ce qui ne fonctionne pas dans ton script ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
camyzo
 
Donc voila, ça fonctionne nikel, SAUF, que quand on delete une photo et que on en rajoute une autre par la suite et ben elle prend la même valeur que son dernier enregistrement car la requête sql compte le nombre d'enregistrement pour le membre !!!

Je ne sais pas si je suis clair, comprend tu ??

cdt
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
heu si je crois comprendre, et en quoi est-ce gênant que la nouvelle entrée prenne la place de l'ancienne ?
0
camyzo
 
OK, pas de problème pour qu'elle prenne la place de l'ancienne mais il ne faut surtout pas que la nouvelle entrée ai le même item qu'une autre pour le même membre !!!
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
ah oui j'y suis, en fait il ne faut pas que tu utilises un count() mais un max(item), ainsi tu auras la valeur du dernier enregistrement, et non pas le nombre d'enregistrements.
0
camyzo
 
Merci mais ca ne marche pas, cette fois à chaque ajout de photo la valeur est toujours de "1" :(:(

Voici le code modifier:

$reponse = mysql_query('SELECT MAX(item) FROM photo WHERE vendeur="'.$membre.'"'); // Requête SQL
$res_item=mysql_fetch_array($reponse);

$res_item['item'];

$item = $res_item['item'] + 1;

//insertion dans la base de données
$reqinsert="insert into photo values ('$item','$membre');";
0
camyzo
 
En faite il me dit que la variable "item" n'est pas définie !!!
0
camyzo
 
C EST BON CA MARCHE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Merci beaucoup, en faite je note la réponse pour les autres ca peut servir:

J'avais noter ca:

('SELECT MAX(item) FROM

En faite il faut rajouter item:

('SELECT MAX(item) item FROM


Un énorme merci thebishop !!!!!!!!!!!!!!

Encore merci !!!! :D
0