Enregistrement partiel dans la base

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Enregistrement partiel dans la base

par pjl » 05 août 2005, 14:21

Normalement, le principe d'une BDD, c'est d'éviter la redondance de l'information, et là, avec les élèments fournis, j'ai l'impression que certaines informations seront multiredondantes.

par Invité » 05 août 2005, 13:52

J'ai soumis ma conception à mon enseignant en php et à un informaticien dans un campus. Elle n'avait pas l'air de les effrayer.

J'ai demandé à mon enseignant de valider mes tables logiques. A priori, je suis partie sur des bases saines.

Après il se peut que des choses nous aient échappé: tout être humain est faillible.

par pjl » 05 août 2005, 13:20

La question initiale est peut-être résolue mais à mon avis, la conception de la base de données est à revoir.

CF mes questions au dessus qui, je le repette, ne concerne QUE la base de donnée.

par ouckileou » 05 août 2005, 12:36

Héhé ça arrive

mais quel soulagement quand on s'en aperçoit ;)

par Elisa » 05 août 2005, 12:03

Bon alors voilà. Après une crise, une nuit de sommeil normale et après avoir déçu mon maître de stage (en vacances) qui s'est déplacé exprès pour voir ce que j'étais censée terminer, j'ai compris mon erreur.

Classique et stupide. ](*,)

Dans ma base, j'ai "base de données de sommaires", dans mon script j'avais "baseS de données de sommaires".

Dans ma base, j'ai "Distributeur-diffuseur", dans mon script j'avais "Diffuseur-distributeur".

Humbles débutants, voici une erreur à ne pas reproduire...

Je peux me mettre en résolu.

Merci pour votre aide.

par Elisa » 05 août 2005, 11:36

:shock: :shock:

Oups je crois que je ne comprends pas où tu veux en venir.

J'ai une table "produits" qui contient un champ "type de bases". Ce champ propose différents types de bases: bases de données bibliographiques, bases de données de sommaires, etc.

Lorsque je fais un enregistrement -par exemple NomProduit = "Schmilblick"- je choisis alors UN type de bases. ex: le produit "Schmilblick" propose de consulter des bases de type "base de données bibliographiques". Voilà, c'est tout simple.

par pjl » 05 août 2005, 11:16

Un seule fois.
Ca veut dire que ta table ne va au final contenir que 5 enregistrements (un et un seul enregistrement par TypeBase) ?

par Invité » 05 août 2005, 09:04

Un seule fois. Même si j'ai le projet de transformer ce champ à choix unique en champ à valeur multiple (quand je saurai faire).

par pjl » 04 août 2005, 18:57

Tu as une table produit.
Dans cette table, tu as un champ TypeBase.

Dans ce champ, tu va à un moment donné insérer la donnée suivante "Bases de données factuelles et/ou numériques".

Je te demande simplement combien de fois cette donnée sera répétée dans ta table produits ?

par Elisa » 04 août 2005, 18:32

Si je comprends bien ta question: combien d'enregistrement de produits je compte faire?

par pjl » 04 août 2005, 18:30

Je parlais de données contenues dans ta base de données.
Ca n'a rien à voir avec un nenu déroulant.

par Elisa » 04 août 2005, 18:28

C'est un menu déroulant: on la répète donc tant qu'on veut...

par pjl » 04 août 2005, 18:21

Question comme ca :
cette données "Bases de données factuelles et/ou numériques", tu comptes la répéter combien de fois dans ta table produits ?

par Elisa » 04 août 2005, 17:47

Il ne me détecte rien du tout :( Le seul souci, c'est ce que je pointais un peu au-dessus pour la modification du nom de la société à laquelle appartient le produit.
Notice: Undefined index: IdSociete in c:\program files\easyphp1-8\www\sinbad\admin\produits\b_produits_mod3.php on line 11

Array
(
[IdProduit] => 1
[NomProduit] => Essai
[DisciplinesBases] => Chimie
[TypeBases] => Bases de données bibliographiques
[TypeAcces] => Accès libre
[Presentation] => Nouvel essai
[TypeRecherche] => Recherche gratuite
[Site] =>
)

requête exécutée : UPDATE produits SET NomProduit='Essai', RefSociete='', DisciplinesBases='Chimie', TypeBases='Bases de données bibliographiques', TypeAcces='Accès libre', Presentation='Nouvel essai', TypeRecherche='Recherche gratuite', Site='' WHERE IdProduit='1'

par ouckileou » 04 août 2005, 16:24

quelques idées pour débugger :
<?
#recupération des données#
$IdProduit = $_POST['IdProduit'];
$NomProduit = $_POST['NomProduit'];
$IdSociete = $_POST['IdSociete'];
$DisciplinesBases = $_POST['DisciplinesBases'];
$TypeBases = $_POST['TypeBases'];
$TypeAcces = $_POST['TypeAcces'];
$Presentation = $_POST['Presentation'];
$TypeRecherche = $_POST['TypeRecherche'];
$Site = $_POST['Site'];

// va afficher toutes tes variables POST facilement
echo '<pre>';
print_r($_POST);
echo '</pre>';

if(!$NomProduit){
    print("<h3><center>Vous n'avez pas rempli le champ nom</h3></center>");
} else {
    $lien = mysql_connect("localhost","admin","JPLsin05");
    mysql_select_db("sinbad", $lien);
    $requete="UPDATE produits SET
				NomProduit='".$NomProduit."',
				RefSociete='".$IdSociete."',
				DisciplinesBases='".$DisciplinesBases."',
				TypeBases='".$TypeBases."',
				TypeAcces='".$TypeAcces."',
				Presentation='".$Presentation."',
				TypeRecherche='".$TypeRecherche."',
				Site='".$Site."'
		    	WHERE IdProduit=".$IdProduit;
	// affichage du code SQL généré pour contrôler
	echo "requête exécutée : ".$requete."<br>";
    $result=mysql_query($requete) or die('Il y a eu une erreur : <strong>' . mysql_error() . '</strong><br>Dans : <br>' . $requete);
    print ("<h2><center>Le produit a été modifié</center></h2>");
    mysql_close($lien);
}
?>
Bonne idée d'aller faire un tour ;)