Affichage de données

Signaler
Messages postés
69
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
2 octobre 2013
-
Messages postés
69
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
2 octobre 2013
-
Salut,j'ai une base de données avec 5 enregistrements dans la base
Comment faire pour faire ceci:
a gauche:afficher une case à coher
au milieu:résumé message ou titre
droite:date ou message a été posté

Comment faire quand on clique sur bouton,supprimer,detecte,si un message qui possede la case a coher a été selectionner,et supprimer l'enregistrement,et afficher de nouveaux enregistrements

Cherche une soluce pour faire ca ou un exemple de code
A+

10 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Bon...ce bout de code n'est pas un modèle de programmation, j'ai tendance à êtreun peu bordélique, et à écrire le code au fur et à mesure sans vraiment de méthode. Du coup, il est loin d'être optimisé...mais il fonctionne parfaitement. J'ai rajouté quelques commentaires pour que tu comprennes plus facilement. Après, reprends le, fais plus de fonctions etc... ;-)
Bon courage!
Si tu as des questions, n'hésites pas.
Et si ça ne correspond pas à ce que tu voulais, désolé, lol.

<code>
<?php

// Ici, le "lien" vers ton fichier de configuration (à la base de données).

include ("../inc/inc.php");
?>
<html>
<!-- Date de création: 12/04/02 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="Johan Barbier">
</head>
<?php
// Le code qui permet de supprimer toutes les cases sélectionnées
if ($sup)
{
// On compte le tableau contenant les index de ta table à supprimer
$nbre=count($suppr);
// Une boucle pour tous les supprimer
while ($nbre>-1)
{
$suppression=mysql_query("DELETE FROM individus WHERE code_individu='$suppr[$nbre]'");
// Ne pas oublier de décrémenter le compteur...
$nbre--;
}
if ($suppression)
print "<script language="javascript">this.alert('Suppression réussie !');</script>";
else
print "<script language="javascript">this.alert('Erreur, suppression non enregistrée!');</script>";
}
// Ca tu laisses tomber, c'est un mini moteur de recherche (là ce sont des personnes dans un annuaire, on peut chercher le nom, le prénom, la fonction etc...)
if ($rech2 && !empty($ch_str2))
$str_sql="SELECT individus.* FROM individus NATURAL LEFT JOIN individu_organisme NATURAL LEFT JOIN organismes WHERE (individus.nom LIKE '%$ch_str2%' OR individus.prenom LIKE '%$ch_str2%' OR individus.civilite LIKE '%$ch_str2%' OR individus.fonction LIKE '%$ch_str2%' OR individus.service LIKE '%$ch_str2%' OR individus.email LIKE '%$ch_str2%') OR (organismes.sigle LIKE '%$ch_str2%' OR organismes.nom LIKE '%$ch_str2%' OR organismes.sigle_service LIKE '%$ch_str2%' OR organismes.sous_service LIKE '%$ch_str2%') ORDER BY individus.nom ASC";
// L'affichage...c'est à peu près ce que tu veux, les cases à cocher à gauche, le nom au milieu...bon y a pas de date mais le principe reste le même : c'est juste un tableau avec autant de colonnes que tu le désires (3 pour toi)
function Affiche_nom ($str)
{
// ce compteur est juste là pour une alternance de couleurs dans le tableau, et comme je suis un gros flemmard, je n'ai pas défini la charte graphique avant, du coup pas de variables pour les couleurs...mais c'est mieux avec des variables, et le code est plus concis, hein !
$cpt=1;
if ($str=='')
$resultat=mysql_query("SELECT * FROM individus ORDER BY nom ASC");
else
$resultat=mysql_query($str);
print "<form method="post">";
print "\";
// Une première ligne avec l'en-tête du tableau; tu remarqueras déjà la présence des colonnes.
print \"----
";
print "</form>";
}
?>

Suppression d'un individu

Accueil

Créer un organisme

Créer un individu

Créer un lien individu-organisme

Modifier un organisme

Modifier un lien individu_organisme

Supprimer un organisme

Supprimer un lien individu-organisme

<table id="tabfaq" align=center cellspacing=5 cellpadding=5 style="position: relative; top: 50; border: 0; width: 600">
----, <form method=\"post\">
Recherche

</form> </td>
----

Classement par nom,
----

Classement par organisme,

----

Classement par civilité,

----
<?php
Affiche_nom($str_sql);
?>

</html>
</td></tr></table>
Messages postés
69
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
2 octobre 2013

Salut,merci pour ce bout de code,c'est un peu compliqué quand meme
J'ai quelques questions sur ce code

Peux tu explique ce que fais ceci
modif_annu_indiv.php?id=$ligne[code_individu]

Aurais tu la structure base de données que j'essaye ce script
Dans supprimer a quoi sert le compteur
A+
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Voui jeu peux t'expliquer :-) :
je donne la possibilité à l'utilisateur (c'est l'administration d'un gros site, en fait) en cliquant sur le nom d'une personne à en modifier le profil, en appelant un script qui se trouve dans la page modif_annu_indiv.php et je lui passe en paramètre la clef de cette personne dans ma base (avec ?id=...).
La structure...c un peu compliqué. Mais ok. Je te file juste cette table, parce que cette base en contient une centaine en tout.
La table individus :

CREATE TABLE individus (
nom varchar(100) NOT NULL default '',
prenom varchar(100) NOT NULL default '',
civilite varchar(50) NOT NULL default '',
fonction varchar(250) NOT NULL default '',
tel varchar(25) NOT NULL default '',
portable varchar(25) NOT NULL default '',
fax varchar(25) NOT NULL default '',
service varchar(250) NOT NULL default '',
email varchar(150) NOT NULL default '',
code_individu int(11) NOT NULL auto_increment,
coord char(1) NOT NULL default '0',
PRIMARY KEY (code_individu),
UNIQUE KEY code_individu (code_individu),
KEY code_individu_2 (code_individu)
) TYPE=MyISAM;

Tu as aussi besoin pr faire tourner ce code de ces tables, en fait :

CREATE TABLE organismes (
nom varchar(250) NOT NULL default '',
activite text NOT NULL,
adresse tinytext NOT NULL,
departement char(2) NOT NULL default '',
tel varchar(25) NOT NULL default '',
fax varchar(25) NOT NULL default '',
email varchar(150) NOT NULL default '',
site varchar(200) NOT NULL default '',
code_organisme int(11) NOT NULL auto_increment,
sigle varchar(25) NOT NULL default '',
sous_service varchar(250) NOT NULL default '',
sigle_service varchar(25) NOT NULL default '',
mots_clef tinytext NOT NULL,
rattachement int(11) NOT NULL default '0',
PRIMARY KEY (code_organisme),
KEY code_organisme (code_organisme),
KEY code_organisme_2 (code_organisme)
) TYPE=MyISAM;

CREATE TABLE individu_organisme (
code_individu int(11) NOT NULL default '0',
code_organisme int(11) NOT NULL default '0',
code_jointure int(11) NOT NULL auto_increment,
PRIMARY KEY (code_jointure),
UNIQUE KEY code_jointure (code_jointure),
KEY code_jointure_2 (code_jointure)
) TYPE=MyISAM;

Normalement, c'est tout. Mais bon, je t'ai dit, c'est compliqué.
Messages postés
69
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
2 octobre 2013

Salut,merci pour mepasser ceci,ke vois c'est assez compliqué

Avec le code que tu m'as donné je peux arriver à l'idée que j'avais
Est il possible de faire ca aussi:faire une table de messages,faire une page,pour autoriser affichage des messages,faut il mettre un flag dans la base ou une variable
A+
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Heu, je ne suis pas certain d'avoir compris ce que tu veux faire...tu peux me ré-expliquer plus longuement stp?
C'est une page administration que tu veux, qui valide (autorise) ou non les messages, selon leur contenu, c'est ça?
Si c'est ça y a un moyen simple, tu rajoutes un champ "validation" ds ta table de messages. Elle accepte 2 valeurs : 0 et 1. Par défaut, tous les messages sont à 0. Dans la page en question, tu n'affiches que les messages dont la valeur est à 0...tous ceux qui sont cochés passent à 1.
Dans ton forum, tu n'affiches que les messages dont ce champ est à 1...
C'est ça?
Mais bon, par la suite, moieux vaut effacer les messages déjà contrôlés, et qui ne sont pas autorisés bien sûr.
Messages postés
69
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
2 octobre 2013

Salut,oui exact,c"est ce que je veux faire
En fait,je veux controler tous les messages saisis
J'avais une idée,faire une zone d'administration,avec deux liens dedans,Validation,et suppression,mais ne sais pas encore implementer ca,et securiser le tout
AUrais tu une idée
A+
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Re :-)

eh ben, tu fous tes deux boutons, tu leur donnes un nom différent, et tu crées deux fonctions...ou même une seule fonction, ettu testes : si bouton1 alors tu supprimes les cases cochées, si bouton2 alors tu valides les cases cochées. Et c'est exactement le même principe que pour la suppression. Néanmoins, il te faut donc, comme je te l'ai dit, un champ 0 ou 1 (non validé, validé). Et chaque fois que tu dois lire les messages dans ton forum, tu fais ta requête en vérifiant que le champ en question (qu'on va appeler validation) soit égal à 1. Genre :
SELECT * FROM messages WHERE validation='1'
Dans ton administration par contre, tu fais juste :
SELECT * FROM messages
tu auras ainsi tous les messages affichés, validés ou non.
Ca te convient?
Un rapide exemple pr la fonction validation/suppression : elle commence comme ça, en tenant compte que ton bouyton validation s'appelle Valid et ton bouton suppression s'appelle Suppr :

if (Suppr)
{
ton code pour supprimer comme je te l'ai montré dans mon exemple précédemment
}
if (Valid)
{
grosso modo le même code, sauf qu'au lieu de faire un DELETE dans ta requête mysql, tu vas faire un UPDATE en passant le champ validation à 1.
}

Un tit truc, g remarque que si on mettait $Suppr pr récupérer le nom du bouton de suppression, ben ça marchait pas. Quel que soit son nom hein...
Voilà!
Bon code :-)
Messages postés
69
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
2 octobre 2013

Salut,merci pour tout ca
Pour faire une zonne d'administration,est ce plus sur de faire avec sessions ou cookies
A+
Messages postés
69
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
2 octobre 2013

Salut,ca deconne un peu internet
Merci pour tout ca
pour une zone d'administration,est ce plus sure avec cookies ou sessions
A+
Messages postés
69
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
2 octobre 2013

Salut,merci pour tout ca
Encore,une chose
Est ce l meme code,que le 1er,si je veux faire la meme chose,mais pour valider les messages,avec une case à cocher

Pour une zone d'administration,est ce mieux avec cookies ou sessions
A+