Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Modéré par : developpeur jpb Jireck 
Index du Forum » » Le coin des codeurs » » php/mysql
Auteurphp/mysql
Anonyme
19853  

Anonyme
  Posté : 30-06-2003 09:42

Voilà mon html est desactivé, merci de me repondre.
Bonjour à tous,

voici mes2 tables :

- 1 table news avec comme champs : id_news (primaire), titre, date,id_theme(secondaire),contenu
- 1 table theme avec comme champs : id_theme (primaire), nom_theme

j'aimerai faire des modifications dans ma table news le titre,date,nom_theme,contenu
mais j y arrive pas lorsque je clique sur modifier dans affich_news , il m'envoie sur mon formulaire de modification avec tous les paramètres mais lorsque je fais les modif il ne fais rien sur la liste des news.
pour une personne qui debute j'ai besoin de vos competences merci.
voici ma requete affich_news:





<?
//Inclusion du fichier pour se connecter à la base
require ('../dtabase.php');

?>




Gestion des news



Visualisation des news:






Titre
Date
Nom_theme
Contenu
Modifier
Supprimer



<?
// Test pour savoir si l'utilsateur a demandé d'effacer quelque chose
if(isset($effacer))
{
$requete="delete from news where news.Id_news=$effacer";
$resultat=mysql_query($requete,$link);

}

// Test pour savoir si l'utilsateur a demandé d'ajouter quelque chose
if(isset($titre)&&isset($date)&&isset($nom_theme)&& ;isset($contenu))
{
//requete pour ajouter
$requete_ajout_news = ("insert into news(titre,date,id_theme,contenu) values('$titre','$date','$nom_theme','$contenu');");
$resultat_ajout_news = mysql_query($requete_ajout_news,$link);

}



// Choix de la requete
$requete="select news.*,theme.nom_theme from news, theme where news.id_theme=theme.id_theme";
$resultat=mysql_query($requete,$link);
$nb_enreg = mysql_num_rows($resultat); // nb d'enregistrements retournés par la requete

if ($nb_enreg>0)
{
while ( $ligne = mysql_fetch_array($resultat) )
{
print(' ');
print(' ');
print($ligne["Titre"]);
print(' ');
print(' ');
print($ligne["Date"]);
print(' ');
print(' ');
print($ligne["nom_theme"]);
print(' ');
print(' ');
print($ligne["Contenu"]);
print(' ');
print(' ');
print('modifier');
print(' ');
print(' ');
print('supprimer');
print(' ');
print('
');
}
}
else
{
echo "aucun enregistrement";
}

?>



<?
// Test pour savoir si l'utilsateur a demandé de modifier quelque chose
if(isset($valider))
{
$requete= "update news set titre='$titre',date='$date',nom_theme='$nom_theme',contenu='$contenu'";
$requete.="where news.Id_news=$modifier and news.id_theme=theme.id_theme";
$resultat=mysql_query($requete,$link);



}
?>









menu principal







voici celle de la modif:







<?
///Inclusion du fichier pour se connecter à la base
require ('../dtabase.php');


// Test pour savoir si l'utilsateur a demandé de modifier quelque chose
if(isset($valider))
{
$requete= "update news set titre='$titre',date='$date',nom_theme='$nom_theme',contenu='$contenu'";
$requete.="where news.Id_news=$modifier and news.id_theme=theme.id_theme";
$resultat=mysql_query($requete,$link);

echo("modification effectuée");

}

//requete pour recupere les informations concernant la news à modifier
$requete_news = "select news.*,nom_theme from news,theme where news.Id_news='$modifier' and news.id_theme=theme.id_theme ;";
$resultat_news=mysql_query($requete_news,$link);

//parcours des lignes
while ( $ligne = mysql_fetch_array($resultat_news) )
{

?>




Modification de news:







Titre








Date









Nom_theme









Contenu


<? echo($ligne["Contenu"]);?>

















<?
}
?>

  
VV
41    

VV
  Posté : 30-06-2003 10:32

Ta requete de mise à jour me parait pas très catholique...
ça me parait bizzarre de faire une jointure sur un update (je suis pas sur que update permette de modifier plusieur tables en une seule requete, surtout que ds ta requete tu mets "update news" alors que tu essaie de modifier news ET theme...).
Si t'as une table thème, logiquement, c'est qu'un enregistrement de cette table peut correspondre a (0,N) enregistrements de la table News (sinon ça sert a rien d'avoir une table theme, tu pourrais très bien mettre le nom du thème directement dans la table News).
Donc ta table theme est censée avoir une ligne par thème possible existant, et grâce à ta clé referentielle dans News, tu peux retrouver auquel de ces thèmes appartient ta nouvelle.
=>Donc, si tu changes le thème d'une nouvelle, tu n'as qu'a changer la valeur de la clé referentielle id_thème dans News.
Toi, ce que tu essaie de faire, c'est de changer le nom du thème, cela signifie que plusieurs news ne peuvent pas correspondre à la meme ligne de thème, sinon tu changes le nom du theme pour toutes ces news.
Moi, je le ferais plutot comme ça :

-Soit 2 news differentes ne peuvent pas avoir le même theme, et à ce moment là je ne mettrais pas de table theme, je stockerais directement le nom du theme dans la table News.

-Soit plsrs news peuvent avoir le meme theme, et la je mettrais une ligne par theme existant dans la table theme, et quand ja change le theme d'une news, je ne change que la valeur de la clé referentielle :
tu récuperes le nouveau numéro de theme dans une variable (via ton formulaire+ une ou deux lignes de php) ex : $notheme
puis tu fais ton update :

$requete="update news set titre='$titre',date='$date',id_theme='$notheme', contenu='$contenu'";
$requete.="where news.Id_news=$modifier";
$resultat=mysql_query($requete,$link);

Et voila, ton thème est changé

  Profil  
Anonyme
19853  

Anonyme
  Posté : 30-06-2003 11:00

Citation : "30-06-2003 10:32, VV a écrit :
Ta requete de mise à jour me parait pas très catholique...
ça me parait bizzarre de faire une jointure sur un update (je suis pas sur que update permette de modifier plusieur tables en une seule requete, surtout que ds ta requete tu mets "update news" alors que tu essaie de modifier news ET theme...).
Si t'as une table thème, logiquement, c'est qu'un enregistrement de cette table peut correspondre a (0,N) enregistrements de la table News (sinon ça sert a rien d'avoir une table theme, tu pourrais très bien mettre le nom du thème directement dans la table News).
Donc ta table theme est censée avoir une ligne par thème possible existant, et grâce à ta clé referentielle dans News, tu peux retrouver auquel de ces thèmes appartient ta nouvelle.
=>Donc, si tu changes le thème d'une nouvelle, tu n'as qu'a changer la valeur de la clé referentielle id_thème dans News.
Toi, ce que tu essaie de faire, c'est de changer le nom du thème, cela signifie que plusieurs news ne peuvent pas correspondre à la meme ligne de thème, sinon tu changes le nom du theme pour toutes ces news.
Moi, je le ferais plutot comme ça :

-Soit 2 news differentes ne peuvent pas avoir le même theme, et à ce moment là je ne mettrais pas de table theme, je stockerais directement le nom du theme dans la table News.

-Soit plsrs news peuvent avoir le meme theme, et la je mettrais une ligne par theme existant dans la table theme, et quand ja change le theme d'une news, je ne change que la valeur de la clé referentielle :
tu récuperes le nouveau numéro de theme dans une variable (via ton formulaire+ une ou deux lignes de php) ex : $notheme
puis tu fais ton update :

$requete="update news set titre='$titre',date='$date',id_theme='$notheme', contenu='$contenu'";
$requete.="where news.Id_news=$modifier";
$resultat=mysql_query($requete,$link);

Et voila, ton thème est changé "
----------

cela ne marche toujours pas peux tu me donner la requete complète en regardant mes codes merci d'avance.

  
Anonyme
19853  

Anonyme
  Posté : 30-06-2003 11:18

cela ne marche toujours pas peux tu me donner la requete complète en regardant mes codes merci d'avance.

  
VV
41    

VV
  Posté : 30-06-2003 13:56

La requete que je t'ai donnée est complete.
Sauf erreur de ma part elle devrait marcher si tu a fait comme je t'ai dit.
Fais voir le code de ton formulaire, peut-être que ça vient de là...
Essaie la requete d'update dans la "fenetre sql" de phpmyadmin ou ds mysql en mode commande, tu vera si le pb vient de la requete ou du reste du code, et si ça vient de la requete, tu auras un message d'erreur plus clair.

  Profil  
Anonyme
19853  

Anonyme
  Posté : 30-06-2003 14:30

peut etre que je n'ai pas bien compris, $notheme c'est quoi et comment je fais pour recuperer le nouveau numero dans mon formulaire.

voici mon formulaire de modif:
<form name="form1" action="modifier_news.php" method="get" >
<table width="279" height="40"border="0">
<tr bgcolor="#0099FF">
<th width="106">
Titre
</th>
<td>
<input name="titre" type="text" value="<? echo($ligne["Titre"]);?>">
</td>
</tr>
<tr bgcolor="#0099FF">
<th width="106">
Date

</th>
<td>
<input name="date" type="text" value="<? echo($ligne["Date"]);?>">
</td>
</tr>
<tr bgcolor="#0099FF">
<th width="106">
Nom_theme

</th>
<td>
<input name="nom_theme" type="text" value="<? echo($ligne["nom_theme"]);?>">
</td> </tr>
<tr bgcolor="#0099FF">
<th width="106">
Contenu

</th>
<td><textarea name="contenu" cols="30" rows="5"><? echo($ligne["Contenu"]);?></textarea></td>

</tr>

<tr>
<br>
<td><input type="hidden" name="modifier" value="<? echo ($modifier);?> "></td>
<td colspan="2" >
<div align="left">
<input type="submit" name="valider" value="Valider">
</div>
</td>
</tr>

merci de me repondre.
peux-tu bien m'orienter?

  
VV
41    

VV
  Posté : 30-06-2003 14:53

$notheme c'est la valeur que tu dois donner à ta clé referentielle id_theme, et qui doit correspondre avec un id_theme de ta table theme.
Chaque theme est identifié par son numéro dans la table theme.
Pour définir celui de ta news, tu n'as qu'a mettre son numéro dans la clé referentielle id_theme de la table News, pour ça il faut que tu mettes ce numéro dans $notheme (par exemple) puis que tu éxecutes la requete que je t'ai donnée.
pour récuperer la valeur dans $nothemetu peux le faire avec des if (mais c'est long stt si tu as bcp de themes possibles), moi je te conseille de le faire avec
des boutons-radio

  Profil  
Anonyme
19853  

Anonyme
  Posté : 30-06-2003 16:44

merci je vais essayer ta demarche

  
Sauter à :

Temps : 0.0153 seconde(s)