[PHP] Récupérer Info BDD

Résolu/Fermé
camyzo - 15 janv. 2009 à 13:25
 camyzo - 15 janv. 2009 à 14:03
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
15 janv. 2009 à 13:32
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 vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
15 janv. 2009 à 13:35
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
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
15 janv. 2009 à 13:42
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
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
15 janv. 2009 à 13:46
heu si je crois comprendre, et en quoi est-ce gênant que la nouvelle entrée prenne la place de l'ancienne ?
0
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
15 janv. 2009 à 13:51
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
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
En faite il me dit que la variable "item" n'est pas définie !!!
0
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