INDEX est obligatoire pour afficher contenu de la table ?

INDEX est obligatoire pour afficher contenu de la table ? - SQL/NoSQL - Programmation

Marsh Posté le 20-07-2017 à 07:34:55    

Bonjour a tous
J'ai une table avec 3 colonnes, la première(client_id) est configuré en clé étrangère sans INDEX, qui pointe sur la table client.
Je n'arrive pas a afficher le contenue de cette table.
ma connexion est en PDO.
Dans le phpmyadmin pas de possibilité de supprimer, éditer les lignes créé.
 
C'est une obligation que le 1ère colonne doit être INDEX pour afficher le contenu ?


Message édité par noam76 le 20-07-2017 à 09:31:24
Reply

Marsh Posté le 20-07-2017 à 07:34:55   

Reply

Marsh Posté le 20-07-2017 à 18:59:36    

Pas du tout, les index servent juste à accélérer les requêtes de type recherche.
 
A mon avis, tu dois utiliser un identifiant/mdp qui doit avoir des droits restreints, probablement en lecture seule, voire même que tu as accès qu'à des vues et non des tables.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 21-07-2017 à 05:24:20    

je fais tous ça sous WAMP Windows 10.
mon identifiant/mdp son les paramètre par défaut de WAMP.
 
J'arrive a enregistrer des données dans cette table avec un FORM .
pour tester j'ai crée une nouvelle table2 avec la 1ère colonne index et auto increment, ça marche.
 
jutilise ce code pour afficher le contenu:

Code :
  1. $sql->setFetchMode(PDO::FETCH_BOTH);// Mode par défaut (tableau)
  2. while($row = $sql->fetch())
  3. {
  4.   $date = $row['date'];
  5. }
  6. echo $date;


ce code avec la table2 qui a la 1ère colonne INDEX+Auto Increment ça affiche.
Je fais pareil avec la table sans INDEX ça n'affiche rien.
 
Je peut tj ajouter l'index et auto increment comme solution, je préfère apprendre réussir et comprendre ce que j'ai envie de faire :)
ou pourrais être le prob. ?


Message édité par noam76 le 21-07-2017 à 05:28:29
Reply

Marsh Posté le 21-07-2017 à 05:35:58    

je viens de remarquer ce message
 
Current selection does not contain a unique column.
Grid edit, checkbox, Edit, Copy and Delete features are not available
 
J'ai ajouter unique sur la 1ère colonne, miracle je peux éditer les lignes dans phpmyadmin [:joce]
 
pour afficher le contenu, ça marche, une chose toute bête que je n'ai pas fais gaffe, je cherchais un ID qui n'existait pas dans la table
 [:chipp]


Message édité par noam76 le 21-07-2017 à 05:47:57
Reply

Marsh Posté le 21-07-2017 à 09:40:43    

Pour info, si tu fais un SELECT dans phpMyAdmin en affichant des champs de plusieurs tables, c'est normal que les contrôles pour éditer, supprimer les enregistrements trouvés ne soient pas dispo. Ils ne sont dispos que lorsque tu travailles sur une seule table.
 
Concernant les contraintes d'index, ça peut jouer quand tu fait un ajout, une maj ou une suppression. Il se peut que tu violes une contrainte d'intégrité : genre, tu mets une valeur de clé étrangère qui n'existe pas dans la table où est déclarée la clé étrangère en tant que clé primaire ou alors tu mets une valeur déjà existante pour ta clé primaire. Bref, je te recommande de te familiariser plus avec le SQL et la théorie des BD relationnelles parce que j'ai l'impression que ce n'est pas un domaine que tu maîtrises bien...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 21-07-2017 à 10:18:56    

Je suis d'accord avec toi, c'est pas un domaine que je maîtrise, j'apprend :)
 
juste pour être plus claire, j'ai donné juste les infos de cette table et pas de toutes mes tables.
mes tables:
- table client (id client ->primary+unique+index+auto increment, nom, prénom etc...)
 
- table actions (action id ->primary+unique+index+auto increment, client id -> clé étrangère vers client id de la table client, date, etc..)
 
- table qui concerne ce post (id client -> unique+clé étrangère vers client id de la table client, date, etc..)
 
Voila mes tables.
J'ai résolut mon problème, je devais ajouter unique a la 1ère colonne :)


Message édité par noam76 le 21-07-2017 à 10:20:15
Reply

Sujets relatifs:

Leave a Replay

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