Problème de selection dans un tableau (php)

Résolu
tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 - 5 janv. 2010 à 10:29
tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010 - 8 janv. 2010 à 09:59
Bonjour à tous!! Voila j'ai un petit souci.J'ai construis un tableau et donc a chaque bout de colonne j'ai inclu un checkbox.En dehors de mon tableau j'ai 3 boutons qui permettent de modifier,supprimer et ajouter.
Mon problème c'est que je n'arrive pas à selectionner l'id choisi dans mon tableau pour ensuite cliquer sur l'action de mon choix.
Pouvez vous m'aider??? merci
Date installation |
Identifiant |
Nom PC |
Affectation |
Agence |
Users |
Mot_de_passe |
Adresse IP |
Raccordement domaine |
Création Users |
Base MP |
MP_Intranet |
MAJ_MP |
Office |
Symantec |
VNC |
Adobe Reader |
Config. Boîte email |
PDF Creator |

<?php
while ($tab = mysql_fetch_array($res))
{
?>
----

<?php echo $tab['date_installation'];?>,
<?php echo $tab['identifiant'];?>,
<?php echo $tab['nom_pc'];?>,
<?php echo $tab['affectation'];?>,
<?php echo $tab['agence'];?>,
<?php echo $tab['users'];?>,
<?php echo $tab['mot_de_passe'];?>,
<?php echo $tab['adresse_ip'];?>,
<?php echo $tab['raccordement_domaine'];?>,
<?php echo $tab['creation_users'];?>,
<?php echo $tab['base_mp'];?>,
<?php echo $tab['mp_intranet'];?>,
<?php echo $tab['maj_mp'];?>,
<?php echo $tab['office'];?>,
<?php echo $tab['symantec'];?>,
<?php echo $tab['vnc'];?>,
<?php echo $tab['adobe_reader'];?>,
<?php echo $tab['config_boite_mail'];?>,
<?php echo $tab['pdf_creator'];?>,
<form action="modifier.php" method="POST">
<?php echo " "?>
</form>,

<?php
}
?>

<center>

[ajout.php Ajouter] |
[modifier.php Modifier] |
[suppression.php Supprimer]

</center>


Voici mon code...
Merci beaucoup, bisou à tous.

71 réponses

tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010
6 janv. 2010 à 16:12
Merci beaucoup de ton aide
dit t'aurai pas une adresse msn par hasard??
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
6 janv. 2010 à 16:40
Regarde ça, Complète ce qui manque, et poste tes question si tu comprends pas la moindre chose :
<?php
/*************************************
 * GESTION DES ACTIONS
 *************************************/

// = ======== ACTION SUPRESSION =========
// Si on demande la suppression
// mapage.php?action=del&id=NUM
if(isset($_GET['action']) and $_GET['action'] == 'del')
{
// Si l user clique sur un lien supprimé, il charge cette page avec l'information de suppression dans la variable d url id
if(isset($_GET['id']))
{
// On supprime l'id demandée
mysql_query("DELETE FROM matable WHERE identifiant = '".mysql_real_escape_string($_GET['id']).'"') or die("Erreur de suppression");
}
// Si il clique en soumettant le formulaire (Bouton supprimer) c'est alors la variable POST choix qui contiendras un tableau des ID cochées
elseif(isset($_POST['choix']))
{
// Pour chaque choix dans le tableau $_POST['choix']
foreach($_POST['choix'] as $value)
{
if($value=="")
continue;
mysql_query("DELETE FROM matable WHERE identifiant = '".mysql_real_escape_string($value).'"') or die("Erreur de suppression");
}
}
// Redirection vers mapage.php
header( 'HTTP/1.1 301 Moved Permanently' );
header( 'Location: mapage.php' );
exit();
}
// ACTION MODIFICATION
// Si on soumet le formulaire de modification d'un élèment sur la page
// mapage.php?action=edit&id=NUM
elseif(isset($_GET['action']) and $_GET['action'] == 'edit' and isset($_POST['mod']) and $_POST['mod'] == 'Modifier')
{
if(isset($_GET['id']))
{
// On met à jour la ligne
$oldid=mysql_real_escape_string($_GET['id']);
$identifiant = mysql_real_escape_string($_POST['identifiant']);
$date_install = mysql_real_escape_string($_POST['date_installation']);
// Ect...
mysql_query("UPDATE matable SET identifiant='$identifiant', date_install='$date_install'  WHERE identifiant='$oldid'") or die("Erreur de mise a jour");
}
// Redirection vers mapage.php
header( 'HTTP/1.1 301 Moved Permanently' );
header( 'Location: mapage.php' );
exit();
}
// ACTION AJOUT
// Si on soumet le formulaire d'ajout
// mapage.php?action=add&id=NUM
elseif(isset($_GET['action']) and $_GET['action'] == 'add' and isset($_POST['add']) and $_POST['add'] == 'Ajouter')
{
if(isset($_GET['id']))
{
// On met à jour la ligne
$identifiant = mysql_real_escape_string($_POST['identifiant']);
$date_install = mysql_real_escape_string($_POST['date_installation']);
// Ect...
mysql_query("INSERT INTO matable (identifiant, date_install ....) VALUES ('$identifiant', '$date_install')") or die("Erreur de mise a jour");
}
// Redirection vers mapage.php
header( 'HTTP/1.1 301 Moved Permanently' );
header( 'Location: mapage.php' );
exit();
}
/*************************************
 * GESTION DES VUES
 *************************************/
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Gestion parc informatique</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>






<hr>


<?php
// VUE EDITION
// Si on appel mapage.php pour modifier un element avec la variable d'url action et la valeur edit mapage.php?action=edit&id=NUM
if(isset($_GET['action']) and $_GET['action'] == 'edit')
{	
// Securisation des variables...
$id = mysql_real_escape_string($_GET['id']);
$sql "SELECT * FROM ordinateur WHERE identifiant '$id'";
$res = mysql_query($sql) or die ("Erreur SQL");
$total = mysql_num_rows($res);
// Si pas de ligne correspondante
if($total==0)
{
?>
 Aucune ligne ne correspond à cet identifiant. 

[mapage.php Retour]
<?php
}
else
{
// On associe les resultats :
$tab  = mysql_fetch_array($res);
?>
<form id= "Formulaire" name="Formulaire" method="post" action="">
<!-- Formulaire de modification -->
 MODIFICATION FICHE INSTALLATION ORDINATEUR  |

----

Date installation :,
" />,

----

Identifiant :,
" />,

----

Nom PC :,
" />,
etc ....... je te laisse continuer le tableau
----

Adresse IP :,
" />


</form>
<?php
}
}
//  == ======= VUE AJOUT =========
elseif(isset($_GET['action']) and $_GET['action'] == 'add')
{
?>
<form id="Formulaire" name="Formulaire" method="post" action="">
<!-- Formulaire d'ajout -->
 AJOUT FICHE INSTALLATION ORDINATEUR  |

----

Date installation :,
,

----

Identifiant :,
,

----

Nom PC :,
,
etc ....... je te laisse continuer le tableau
----

Adresse IP :,



</form>
<?php
}
//  == ======= VUE Générale =========
else
{
// Si on appel mapage.php sans variables
$sql = "SELECT * FROM ordinateur";
$res = mysql_query($sql) or die ("Erreur de selection SQL");
?>
<form id="Formulaire" name="Formulaire" method="post" action="mapage.php?action=del">
   |
Date installation |
Identifiant |
Nom PC |
Affectation |
Agence |
Users |
Mot_de_passe |
Adresse IP |
Raccordement domaine |
Création Users |
Base MP |
MP_Intranet |
MAJ_MP |
Office |
Symantec |
VNC |
Adobe Reader |
Config. Boîte email |
PDF Creator |

<?php
while ($tab  = mysql_fetch_array($res))
{
?>
----

">,
<?php echo $tab['date_installation'];?>,
<?php echo $tab['identifiant'];?>,
<?php echo $tab['nom_pc'];?>,
<?php echo $tab['affectation'];?>,
<?php echo $tab['agence'];?>,
<?php echo $tab['users'];?>,
<?php echo $tab['mot_de_passe'];?>,
<?php echo $tab['adresse_ip'];?>,
<?php echo $tab['raccordement_domaine'];?>,
<?php echo $tab['creation_users'];?>,
<?php echo $tab['base_mp'];?>,
<?php echo $tab['mp_intranet'];?>,
<?php echo $tab['maj_mp'];?>,
<?php echo $tab['office'];?>,
<?php echo $tab['symantec'];?>,
<?php echo $tab['vnc'];?>,
<?php echo $tab['adobe_reader'];?>,
<?php echo $tab['config_boite_mail'];?>,
<?php echo $tab['pdf_creator'];?>,

----

[ajout.php Ajouter] | 
[javascript:; Supprimer]




</center>
</form>
<script type="text/javascript">
<!--// J Ai pas vérifier si ca marche... :-D
function checkUcheckAll(toCheck)
{
var mesCheck = document.Formulaire.choix;
if(toCheck)
{
for (var i=0; i<mesCheck.length; i++)
{
  mesCheck[i].checked = 'checked';
}
}
else
{
for (var i=0; i<mesCheck.length; i++)
{
  mesCheck[i].checked = '';
}
}
}
// -->
</script>
<?php
}
?>
            

        

    
</html>


J'attends tes observations..

PS : J ai toujours pas testé le javascript checkUcheckAll, ca marche ?
_________________________________
Min iPomme
0
tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010
6 janv. 2010 à 17:26
je ne sais pas pour le javascript, je n'y connais rien, mais comme j'ai deja un autre probleme avec mon while =/
0
tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010
7 janv. 2010 à 10:01
Coucou TheGorgo tu pourrais m'envoyer des explications pour la solution stp?? Merci pour ta réponse.
Bisous
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
7 janv. 2010 à 11:02
Salut,

Désolé, je n'avais pas posté ma solution car Tonio_35 en avait posté une vraiment bien détaillée.
A ta demande, voici ce que je te propose. Je n'ai pas vraiment l'habitude de commenter mon code, si tu as la moindre question, n'hésites pas, tu as mon adresse MSN .

<?php

// Ce qui se passe quand on click sur le bouton Ajouter dans le formulaire de saisie d'un nouvel enregistrement
if(isset($_POST['ValiderAjout']) && !empty($_POST['ValiderAjout']))
{
/* Ton code pour insérer un nouvel enregistrement */
$qr =  "INSERT INTO [TABLE] (date, identifiant, nom_pc, affectation, agence, users, mdp, ip) VALUES (".$_POST['date'].", ".$_POST['identifiant'].", ".$_POST['nom_pc'].", ".$_POST['affectation'].", ".$_POST['agence'].", ".$_POST['users'].", ".$_POST['mdp'].", ".$_POST['ip'].")";
$rs = mysql_query($qr) or die();

header("Location:".$_SERVER['PHP_SELF']);
exit;
}
// Ce qui se passe quand on click sur le bouton Modifier dans le formulaire de modification d'un enregistrement
if(isset($_POST['ValiderUpdate']) && !empty($_POST['ValiderUpdate']))
{
/* Ton code pour modifier un enregistrement */
$qr "UPDATE [TABLE] SET date '".$_POST['date']."', 
identifiant = '".$_POST['identifiant']."', 
nom_pc = '".$_POST['nom_pc']."', 
affectation = '".$_POST['affectation']."', 
agence = '".$_POST['agence']."', 
users = '".$_POST['users']."', 
mdp = '".$_POST['mdp']."', 
ip = '".$_POST['ip']."'	
WHERE id = ".$_POST['id'];
$rs = mysql_query($qr) or die();

header("Location:".$_SERVER['PHP_SELF']);
exit;
}

// Si on clique sur le lien ajouter on appelle la page mapage.php?action=add
// On veut ajouter un enregistrement en base
// La page contiendra donc un formulaire qui permet d'ajouter un enregistrement
// La valeur $_SERVER['PHP_SELF'] est une variable d'environnement de PHP, elle contient le nom de la page qui appelle le script.
// Ici, si ta page s'appelle mapage.php, $_SERVER['PHP_SELF'] contiendra la valeur "mapage.php".
// Si tu as bien compris, ici, je demande de rediriger vers la page actuelle car tout le code qui permet toute action est contenu sur celle-ci.
if(isset($_GET['action']) && $_GET['action'] == 'add')
{
?>
<!-- Formulaire Ajout -->
<form name="Formulaire" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 AJOUT FICHE INSTALLATION ORDINATEUR  |

----

Date installation :,
,

----

Identifiant :,
,

----

Nom PC :,
,

----

Affectation :,
,

----

Agence :,
,

----

Users :,
,

----

Mot de passe :,
,

----

Adresse IP :,
,

----


</form>
<?php
}

// Si on clique sur le lien ajouter on appelle la page mapage.php?action =edit
// On veut modifier un enregistrement en base
// La page contiendra donc un formulaire qui permet de modifier un enregistrement
// Celui  -ci contiendra les valeurs de cet enregistrement 
elseif(isset($_GET['action']) && $_GET['action'] = = 'edit')
{
if(isset($_POST['id']))
{
?>
<form name="Formulaire" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php$rq \"SELECT * FROM [TABLE] WHERE identifiant \".$_POST['id'];
$rs = mysql_query($rq) or die();
$R = mysql_fetch_assoc($rs);
?>
<table>
----

 MODIFICATION FICHE INSTALLATION ORDINATEUR  |

----

Date installation :,
" />,

----

Identifiant :,
" />,

----

Nom PC :,
" />,

----

Affectation :,
" />,

----

Agence :,
" />,

----

Users :,
" />,

----

Mot de passe :,
" />,

----

Adresse IP :,
" />,

----

" />,

<?php
}
?>
----


</form>
<?php
}

// Code qui permet de supprimer un ou plusieurs enregistrements en base
// Si tu appelles la page mapage.php?action =del&id= xx tu ne supprimeras que l'enregistrement xx de la table
// Si tu appelles la page mapage.php?action=del on regardera si la variable $_POST['choix'] est renseignée, si c'est le cas, $_POST['choix']  sera un tableau de valeurs contenant tous les identifiants des lignes que tu as cochées dans ton tableau
// Donc, pour chaque identifiant, on exécutera une requete de suppression foreach($_POST['choix'] as $iValue) ...
elseif(isset($_GET['action']) && $_GET['action'] == 'del')
{
if(isset($_GET['id']))
{
$qr "DELETE FROM [TABLE] WHERE identifiant ".$_GET['id'];
$rs = mysql_query($qr) or die();
}
elseif(isset($_POST['choix']))
{
foreach($_POST['choix'] as $iValue)
{
$qr "DELETE FROM [TABLE] WHERE identifiant ".$iValue;
$rs = mysql_query($qr) or die();
}
}
header("Location:".$_SERVER['PHP_SELF']);
exit;
}
else
{
?>
<form id="Formulaire" name="Formulaire" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?action=del">
   |
Date installation |
Identifiant |
Nom PC |
Affectation |
Agence |
Users |
Mot_de_passe |
Adresse IP |
Raccordement domaine |
Création Users |
Base MP |
MP_Intranet |
MAJ_MP |
Office |
Symantec |
VNC |
Adobe Reader |
Config. Boîte email |
PDF Creator |

<?php
while ($tab  = mysql_fetch_array($res))
{
?>
----

">,
<?php echo $tab['date_installation'];?>,
<?php echo $tab['identifiant'];?>,
<?php echo $tab['nom_pc'];?>,
<?php echo $tab['affectation'];?>,
<?php echo $tab['agence'];?>,
<?php echo $tab['users'];?>,
<?php echo $tab['mot_de_passe'];?>,
<?php echo $tab['adresse_ip'];?>,
<?php echo $tab['raccordement_domaine'];?>,
<?php echo $tab['creation_users'];?>,
<?php echo $tab['base_mp'];?>,
<?php echo $tab['mp_intranet'];?>,
<?php echo $tab['maj_mp'];?>,
<?php echo $tab['office'];?>,
<?php echo $tab['symantec'];?>,
<?php echo $tab['vnc'];?>,
<?php echo $tab['adobe_reader'];?>,
<?php echo $tab['config_boite_mail'];?>,
<?php echo $tab['pdf_creator'];?>,

----

[<?php echo $_SERVER['PHP_SELF']; ?>?action=add Ajouter] | [# Supprimer]




</center>
</form>
<script type="text/javascript">
<!--// J Ai pas vérifier si ca marche... :-D
function checkUcheckAll(toCheck)
{
var mesCheck = document.Formulaire.choix;
if(toCheck)
{
for (var i=0; i<mesCheck.length; i++)
{
  mesCheck[i].checked = 'checked';
}
}
else
{
for (var i=0; i<mesCheck.length; i++)
{
  mesCheck[i].checked = '';
}
}
}
// -->
</script>
<?php
}
?>
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
7 janv. 2010 à 11:07
Attention à ta fonction header("Location:"... tel que tu l'as fais, il risque d'y avoir un retour html avant et donc il risque d'y avoir une erreur... Sinon t as verifier si le JS fonctionne ??


_________________________________
Min iPomme
0
Utilisateur anonyme
7 janv. 2010 à 11:27
Pour le header(), je pense que tout est bon puisque à chaque fois qu'on la rencontre il n'y a pas de HTML qui s'affiche avant.
Pour checkUcheckAll() ça fonctionne pas. Je pense que ça vient du fait que j'ai remplacé le nom des champs par choix[] au lieu de choix.
0
Utilisateur anonyme
7 janv. 2010 à 11:36
C'est corrigé. Il faut juste remplacer




par






function checkUcheckAll()
{
var vE = document.getElementsByName('choix[]');
for(var i = 0; i < vE.length; i++)
{
vE[i].checked = document.getElementById('ucuc').checked;
}
}

0
Utilisateur anonyme
7 janv. 2010 à 11:37
Raté j'ai encore oublié un truc. Il faut aussi enlever le "this.checked"
0
tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010
7 janv. 2010 à 11:43
Merci pour l'explication c'est gentil. Mais la faute est toujours au while... Je crois que je vais abandonner =/ Ca fait deux semaine je suis sur cette page.
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
7 janv. 2010 à 11:45
getElementsByName Compatible all navigateur ?


_________________________________
Min iPomme
0
tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010
7 janv. 2010 à 11:57
Je suis vraiment désoler je ne comprend rien au javascript et comme y a d'autre blockage sur cette page, je ne peux pas te dire si cette fonction marche ou même si elle existe =(. Vraiment désoler, mais un énorme merci pour ta participation.
0
Utilisateur anonyme
7 janv. 2010 à 12:03
Tagadax ne désespère pas lol.

Peux tu m'expliquer ce qui se passe exactement avec ton while stp ?
0
Utilisateur anonyme
7 janv. 2010 à 12:09
@Tonio_35 : j'ai testé sous IE et Firefox. Ca fonctionne.
0
tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010
7 janv. 2010 à 12:18
Voila l'erreur qu'on me dit:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Gestion_dun_parc_informatique\index.php on line 293
J'ai repris le code que tu as posté dernierement.
Moi j'en déduit que ça vient du while, mais je trouve pas d'erreur!Toutes les variables sont déclarées!

Merci pour le vérification de javascript pour Tonio_35
0
Utilisateur anonyme
7 janv. 2010 à 12:35
Je pense plutot que ca doit venir de ta requete.
Essaye de tracer les erreurs de sql.

Remplace tous les mysql_query(..) or die() par mysql_query(..) or die(mysql_error()) et poste moi les messages stp.
0
tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010
7 janv. 2010 à 14:02
Alors docteur c'est grave????
0
Utilisateur anonyme
7 janv. 2010 à 14:05
Je peux pas te dire. Il faut que tu retest en remplaçant tous les die() de ta page par die(mysql_error()).
Ensuite, tu m'envoies les messages d'erreur et je te dirai ce qui va pas.
0
tagadax Messages postés 97 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 27 mars 2010
7 janv. 2010 à 14:14
Heu... "Query was empty" sa te dit quelque chose moi non
0
Utilisateur anonyme
7 janv. 2010 à 14:17
Oui en fait apparement la variable qui est insérée dans ton mysql_query est vide.
Peux tu me renvoyer tout ton code actuel ainsi que le nom de la table sql que tu utilises et le nom de chaque champs de cette table.

Merci d'avance
0
Rejoignez-nous