PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 17-12-2012 15:53:02

dounne
Membre
Inscription : 17-12-2012
Messages : 3

Effacer une partie de ligne dans une table

Bonjour,

Après quelques années d'absence je reviens vers cette communauté qui m'est si chère et qui m'a tant aidé par le passé.
Pour un projet scolaire, j'ai un peu repris le php (même si je suis certain d'être déphasé) et je me retrouve face à la situation suivante:
L'idée est que les enseignants donnent au professeur titulaire d'un groupe des informations sur les élèves dont les parents ont demandé un rdv. Cela via un formulaire web. Pour cela, chaque titulaire de classe a droit à 5 demandes simultanées ...

Ex:
 


La table est bien plus grande car il y a toutes les autres matières ...
Je viens au fait : lorsque les parents ont pris connaissance des notes, le titulaire efface ces données mais pour le moment j'ai un script un peu lourd qui remplace toutes les notes des différentes matières par un " " là où l'id est égale à celui de l'élève dont les parents sont venus. Il y a une trentaine de matière (tous niveaux confondus). Le script fonctionne mais j'aurais voulu savori s'il existait quelque chose du style

DELETE * FROM tabledonnee WHERE id="X" EXCEPT 'id', 'groupe'

Ça me permettrait d'éliminer beaucoup plus simplement les données tout en conservant les valeurs établies pour les colonnes que je dois conserver.

En vous remerciant d'avance !

Hors ligne

#2 17-12-2012 17:01:04

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Effacer une partie de ligne dans une table

Saluton,
J'avoue ne pas tout comprendre de ton exposé, loin s'en faut.
Il m'apparaît cependant que le relationnel de ton système de données doit contenir, a minima quatre tables :
une table élève, une table matière, une table groupe, et une table note d'interface entre la table élève et la table matière.
Ce que tu nous montre serait, en fait, la résultante d'une vue mettant en relation les tables élève et note.
Si ce n'est pas le cas, ce que semble démontrer le nom de certaines colonnes (noteanglais, notehsitoire, ...),  je crains fort que ta base de données ne soit pas en formes normales.
Peux-tu nous préciser cela, s'il te plaît.
Amike,
MoKo.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 17-12-2012 20:37:18

dounne
Membre
Inscription : 17-12-2012
Messages : 3

Re : Effacer une partie de ligne dans une table

Bonsoir,

Un tout grand merci pour ta réponse ...  je pense que tu m'avais déjà aidé par le passé big_smile...
Le problème est souvent le mÊme... dans ma petite tête c'est bien clair mais arriver à l'expliquer n'est pas toujours évident.
Le tableau que je montre est ce que je vois dans phpmyadmin quand je regarde les données présentes dans la table. Donc, oui, je n'ai qu'une table ... c'est peut-être une lourde erreur de ma part (pourquoi?) ... Je partais de l'idée que tout avoir dans une table éviterait un nombre important de connections ... Car si je comprends bien tu me recommandes de créer une table dans la base pour chacun des champs en somme ...
Pourrais-tu m'en dire plus par rapport à ce que tu appelles "formes normales" ?
Merci encore !
Bonne soirée!

Hors ligne

#4 17-12-2012 23:15:46

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Effacer une partie de ligne dans une table

Saluton,
Pour commencer, le nombre de connexions n'a rien à voir avec le nombre de tables dans une base de données.
L'utilisation adéquate des jointures permet d'obtenir une réponse, en projection, à partir d'une seule requête.
Par ailleurs, l'ami Cinéphil a coutume de le rappeler sur un autre forum, les champs sont à la campagne ou dans les formulaires. Dans les tables d'une base de données il n'y a que des lignes formées de colonnes.
Et j'ai gardé ceci pour la fin : les bases de données relationnelles s'appuient sur une théorie d'une branche des mathématiques, l'algèbre relationnelle. Les formes normales sont des règles permettant de vérifier, entre autres choses, que les dépendances fonctionnelles entre les colonnes d'une table sont compatibles avec les opérateurs de l'algèbre relationnelle afin de s'assurer que leur exécution, au travers des commandes SQL censées les représenter, puissent fournir des résultats cohérents.
Je suis conscient du caractère abscons, voire limite ésotérique, de cette dernière phrase, aussi ne puis-je que t'engager à faire quelques lectures traitant de Merise, du modèle entités-relations et toutes ces bizarreries.
Tu peux aussi étudier cette traduction que j'ai commise du Chapitre 6 Database Design de Using SQLite by Jay A. Kreibich Ed. O'Reilly.
A ce stade, au vu de tes immenses lacunes afférentes aux fondamentaux du domaine, je ne puis que te souhaiter bonne lecture et bon courage.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 18-12-2012 21:08:14

dounne
Membre
Inscription : 17-12-2012
Messages : 3

Re : Effacer une partie de ligne dans une table

Bonsoir,

Merci pour ta réponse. Probablement à cause de mes immenses lacunes, je n'ai pas compris le tiers du quart de ce que tu as essayé de m'expliquer avec les jointures, dépendances fonctionnelles et les opérateurs de l'algèbre relationnelle mais je suis heureux d'apprendre que tu traduis les éditions O'Reilly.
J'imagine bien que pour toi mes quelques humbles lignes de codes relèvent de l'injure, qu'elles te paraissent vomitives ... mais malgré cela, pour le moment, ça fonctionne... et donc à la base j'aurais juste voulu savoir si une idée qui m'était passée par la tête pouvait être viable. C'est pour cela que je me suis dirigé vers un forum de php/mysql pour débutants ... en tout cas c'est ce que le titre indique ... maintenant, désolé de ne pas être à la hauteur. 'faudra que je me trouve un forum pour hyperdébutant.
Je prends toutefois bonne note de tes recommandations qui je suppose me seront bien utiles. Je te remercie également pour ta prose ... ça fait vraiment plaisir de lire des posts d'informatique sans fautes.
Bonne continuation

Hors ligne

#6 18-12-2012 21:25:27

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Effacer une partie de ligne dans une table

Bonsoir,

ça fait vraiment plaisir de lire des posts d'informatique sans fautes

Alors si en plus tu nous le flattes^^  big_smile

Mais tu as raison c'est mérité wink


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#7 19-12-2012 09:08:57

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Effacer une partie de ligne dans une table

Désolé pour le style ampoulé, c'est assez récurrent chez moi.
A ma décharge, je suis en plein dans la rédaction d'un roman assez nombriliste, sorte d'auto-analyse où se mêlent l'introspection et les fantasmes.
Je suis donc un peu comme un bateau dont l'inertie le pousse toujours un peu trop loin sur son erre.
C'est que, l'age avançant, je ne dois plus trop musarder en chemin. D'autant que, pour moi aussi, le fatidique couperet du 22 décembre menace.
Amike, MoKo.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums