IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Ajouter des champs dans une table à la volée ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut Ajouter des champs dans une table à la volée ?
    Bonsoir !
    Bon, je débute pas mal en php et bases de données, mais je cherche des solutions au niveau théorique d'abord pour les coder plus tard, avec des gens plus connaisseurs.
    Je souhaite donc juste savoir si c'est faisable
    - Avec un formulaire dans une page web (généré par du php)
    - Les champs de ce formulaire remplissent une table d'une base de données MySQL
    - Ces valeurs permettent de créer des pages web avec le contenu souhaité

    L'un de ces champs serait "texte1" par exemple il correspondrai à une page web seule, et "titre1" le titre de cette page
    Pendant le relmplissage du formulaire, cliquer sur un bouton "ajouter une page"
    qui créerai un champ de formulaire et de la table nommé "texte2" avec son "titre2" qui irait avec
    Dans le but d'avoir une 2eme page générée avec le contenu de cette table et ainsi de suite


    J'ai omis un champ "nombre_de_pages" dans cette table, pour savoir combien de champs texteX il faudrait lire

    Le but (au cas où vous n'auriez pas compris ) serait d'avoir un nombre de pages non fini, de ne pas imposer par exemple 5 champs (5 pages) alors qu'on peut en avoir besoin que de 2, et surtout, quand on en a besoin de 6 ou plus ..

    Suis-je clair ou pas du tout ?

    Evidemment si vous avez une meilleure solution je suis à l'écoute

    Merci !
    Dernière modification par Invité ; 02/05/2007 à 13h05.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Oui c'est possible grace à la requete (MySQL) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE xxx ADD COLUMN ...

    Cepandant, je te déconseille très fortement de t'orienter vers cette voie. Je te suggère plutot de travailler sur une nouvelle table :
    page_news(id, numero, titre, texte, news_id)
    Ainsi pour savoir le nombre de page pour une news :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(*) FROM page_news WHERE news_id = xxx

    Pour accéder à la 3° page d'une news :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM page_news WHERE news_id = xxx AND numero = 3 #ou 2

  3. #3
    Invité
    Invité(e)
    Par défaut
    D'accord, donc une nouvelle table qui contiendrai les "titre1 texte1 titre2 texte2", etc"
    mais il en faut donc une par "news" de taille variable selon les besoins

    Merci

    (et juste pour ma culture perso, pourquoi déconseilles tu d'utiliser l'autre méthode ?)

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Non !
    La table n'a pas besoin de contenir plus de champs que ce que j'ai proposé.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id,   numero,       titre,     texte,  news_id
      4       1     'Titre 1'  'Texte 1'       23
     ...
      6       2     'Titre 2'  'Texte 2'       23
      7       3     'Titre 3'  'Texte 3'       23
    Ainsi dans cet exemple, la news 23 est composée de 3 page :
    - la première page id=4, de titre 'Titre 1', de texte 'Texte 1'
    - la deuxième page id=6, de titre 'Titre 2', de texte 'Texte 2'
    - la troisième page id=7, de titre 'Titre 3', de texte 'Texte 3'

    Pas besoin de rajouter de colonnes à la table quand il suffit de rajouter des lignes... Imaginons qu'on veuille rajouter une page à cette news 23 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO page_news(numero, titre, texte, news_id) 
    VALUES (4, 'Titre 4', 'Texte 4', 23)
    Des cours sur les bases de données relationnelles ne te seront pas superflus...

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'ai bien prévenu que je débutais ^^
    Beaucoup de notions sont encore floues mais j'y travaille, j'ai lu beaucoup de tutos ici et ailleurs pour cela.
    Merci pour le lien

    Ok pour la table, c'est effectivement encore plus rapide et efficace.

    (Dans les "base de données relationnelles", j'ai tendance à ommettre le coté "relation" parce que j'ai un peu de mal )

    Merci beaucoup !!

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par _Epy_
    Dans les "base de données relationnelles", j'ai tendance à ommettre le coté "relation" parce que j'ai un peu de mal
    Pourtant MySQL est un SGBDR

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter des champs dans une table
    Par curt dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/03/2008, 12h46
  2. Ajouter des champs d'une table différente dans un formulaire
    Par Bouom771 dans le forum Modélisation
    Réponses: 5
    Dernier message: 10/01/2008, 20h03
  3. [MS SQL]Ajouter et visionner des champs dans une table
    Par 5a573 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 27/10/2006, 16h10
  4. Ajouter des champ dans une table avec une procedure sp
    Par Abdou1 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/07/2006, 18h32
  5. Ajouter des CHAMPS dans une table via ASP
    Par hysteresis dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo