Problème MYSQL et faire des pages

Problème MYSQL et faire des pages - PHP - Programmation

Marsh Posté le 24-04-2009 à 19:48:00    

Bonjour, je dois faire un mini site pour un TP de cours qui permet d'ajouter et d'enlever des films d'une base de données MYSQL seulement les films sont caractérisés par un idfilm, un titre, une annee, une idGenre, un resume text et une photo..
 
Mon problème est pour l'idfilm parce que je ne sais pas trop comment faire pour à chaque fois que l'on ajoute un film, faire genre le total de nombre de film+1..
 
Je vous montre mon ficher .sql pour que vous compreniez un peu mieux..
 
 

Code :
  1. DROP TABLE IF EXISTS Film;
  2. CREATE TABLE Film (
  3. idfilm int(11) NOT NULL PRIMARY KEY auto_increment,
  4. titre varchar(50) NOT NULL default '',
  5. annee int(11) NOT NULL default '0',
  6. idGenre int(11) NOT NULL default '1' references Genre(id),
  7. resume text,
  8. photo varchar(50) NOT NULL default ''
  9. ) ;
  10. #
  11. # Dumping data for table `Film`
  12. #
  13. INSERT INTO Film VALUES (1,'Vertigo', 1958, 2, 'Scottie Ferguson, ancien inspecteur de police, est sujet au vertige depuis qu\'il a vu mourir son\r\n collègue. Elster, son ami, le charge de surveiller sa femme, Madeleine, ayant des tendances\r\n suicidaires. Amoureux de la jeune femme Scottie ne remarque pas le piège qui se trame autour\r\n de lui et dont il va être la victime... ','vertigo.gif');
  14. INSERT INTO Film VALUES (2,'Titanic', 1997, 6, 'Conduite par Brock Lovett, une expédition américaine fouillant l\'épave du Titanic remonte à la\r\n surface le croquis d\'une femme nue. Alertée par les médias la dame en question, Rose DeWitt\r\n Bukater, aujourd\'hui centenaire, rejoint les lieux du naufrage, d\'où elle entreprend de conter le\r\n récit de son fascinant, étrange et tragique voyage... ','titanic.jpg');
  15. INSERT INTO Film VALUES (3,'1492',1996,1,'Evocation de la vie de l\'homme qui decouvrit le continent americain','1492.jpg');


Message édité par absot77 le 25-04-2009 à 15:04:57
Reply

Marsh Posté le 24-04-2009 à 19:48:00   

Reply

Marsh Posté le 24-04-2009 à 20:41:36    

Sinon je peux mettre une variable en l'initialisant à 49 et à chaque fois qu'une requête est effectuée, faire la variable +1 sachant que j'ai déjà 48 films dans la base de données au départ?


Message édité par absot77 le 24-04-2009 à 20:42:18
Reply

Marsh Posté le 24-04-2009 à 21:58:43    

j'ai pas bien compris ta question, mais si il s'agit de faire en sorte que à chaque INSERT ton idFilm soit automatiquement incrémenté, saches que tu n'as pas besoin de le spécifier dans la requete car il est défini à "autoincrement".
 
En clair pour insérer un film il suffit de :

Code :
  1. INSERT INTO Film VALUES ('1492', 1996, 1, 'Evocation de la vie de l\'homme qui decouvrit le continent americain', '1492.jpg');


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 25-04-2009 à 14:34:23    

Oui voilà que l'idfilm se fasse automatiquement ou par une méthode quelconque..
 
L'auto-incrémentation sert à faire des choses automatiquement?
 
Ok merci de ton aide :)

Reply

Marsh Posté le 25-04-2009 à 14:44:13    

absot77 a écrit :

Oui voilà que l'idfilm se fasse automatiquement ou par une méthode quelconque..
 
L'auto-incrémentation sert à faire des choses automatiquement?
 
Ok merci de ton aide :)


d'où son nom ;)
tests et tu verras :)


Message édité par SICKofitALL le 25-04-2009 à 14:44:27

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 25-04-2009 à 15:04:41    

Ca ne peut être fait que pour des nombres je parie?
 
J'ai aussi une autre question, je voudrais faire en sorte d'afficher 5 films par page et mettre des liens sur d'autres pages comme sur le forum pour les topics, j'ai pensé à initialiser une variable à 1 et lui faire +1 à chaque fois qu'il y a un ajout de film mais une fois que la variable vaut 5, je ne sais pas quoi faire..  :??:

Reply

Marsh Posté le 25-04-2009 à 15:23:35    

pour sortir que 5 elements d'une requete, tu rajoutes "LIMIT 5" à la fin de celle-ci, ou "LIMIT 10,5" pour sortir que 5 elements à partir du 10eme enregistrements.


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 26-04-2009 à 15:28:36    

Comme ça:

 
Code :
  1. $query = "SELECT titre,resume,photo FROM Film LIMIT 5";


?

 

Ca fait les pages tout seul ou il faut rajouter un truc?

Message cité 1 fois
Message édité par absot77 le 26-04-2009 à 15:33:24
Reply

Marsh Posté le 26-04-2009 à 15:48:23    

absot77 a écrit :

Comme ça:  
 

Code :
  1. $query = "SELECT titre,resume,photo FROM Film LIMIT 5";


?
 
Ca fait les pages tout seul ou il faut rajouter un truc?


Evidement que non, ca te sort comme précisé plus haut les 5 premiers enregistrements de ta requete, à toi de gérer la "pagination".


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 26-04-2009 à 19:26:14    

Je viens de tester pour l'auto incrémentation et ça ne fonctionne pas..
 
Ca me mets ce message "Column count doesn't match value count at row 1" qui se traduit par "Le compte de colonne ne correspond pas au compte de valeur au rang 1"..
 
Soit j'ai mal codé, soit il faut trouver une astuce et mettre obligatoirement un idfilm..
 
Mon code:  
 

Code :
  1. INSERT INTO Film values('$titre',$annee,$genre,'$resume','$photo');


 

Reply

Marsh Posté le 26-04-2009 à 19:26:14   

Reply

Marsh Posté le 26-04-2009 à 21:49:41    

Ben suis les docs alors

Code :
  1. INSERT INTO Film SET col1 = '$titre', col2 = $annee, col3 = $genre; // etc...


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 27-04-2009 à 10:59:30    

absot77 a écrit :

Je viens de tester pour l'auto incrémentation et ça ne fonctionne pas..
 
Ca me mets ce message "Column count doesn't match value count at row 1" qui se traduit par "Le compte de colonne ne correspond pas au compte de valeur au rang 1"..
 
Soit j'ai mal codé, soit il faut trouver une astuce et mettre obligatoirement un idfilm..
 
Mon code:  
 

Code :
  1. INSERT INTO Film values('$titre',$annee,$genre,'$resume','$photo');


 


 
normal qu'il te rejete, quand tu fait un insert into sans passer les noms des colonnes il faut que tu mette toutes les valeurs de chaque colonne dans ton insert, et la il manque une valeur celle de idfilm
apres je crois qu'en mettant le code ci dessous ca marche  

Code :
  1. //si ta base c'est 'idfilm','titre','annee','genre','resume','photo'
  2. INSERT INTO Film values('','$titre',$annee,$genre,'$resume','$photo');// il faut que tu est chaque valeur de chaque colonne , et dans le même ordre que dans ta base


pour remedier a cela,et être sur que ca marche
tu fait  

Code :
  1. INSERT INTO Film ('titre','annee','genre','resume','photo') values('$titre',$annee,$genre,'$resume','$photo');// tu choisis les colonnes où les valeurs seront enregistrés.
  2. //embetant c'est vrai quand tu as beaucoup de colonnes


 
ou sinon tu as le code de SICKofitALL aussi qui est bien


Message édité par infoman64 le 27-04-2009 à 11:00:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed