Bonjour,

J'affiche une table de ma BDD dans un tableau.
J'aimerai faire que si le compte n'est pas activer, cliquer sur le bouton pour que ça active le compte.

<?  
 mysql_connect("", "", "");  
               mysql_select_db("");  
// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT Nom_Entreprise,nom,prenom,Adresse_Email,Compte_Active FROM Comptes_Utilisateurs WHERE Nom_Entreprise != NULL OR Nom_Entreprise != \'\'';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
    echo '<table width="809px" border="0" cellspacing="1" cellpadding="0">'."\n";
        // première ligne on affiche les titres prénom et surnom dans 2 colonnes
        echo '<tr align="center">';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Nom Entreprise</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Nom</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Prenom</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Email</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Compte Active</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Activation</strong></td>';
      echo '</tr>'."\n";
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
    while($row = mysql_fetch_array($result)) {
       echo '<tr align="center">';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"Nom_Entreprise"].'</td>';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"nom"].'</td>';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"prenom"].'</td>';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"Adresse_Email"].'</td>';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"Compte_Active"].'</td>';
        echo '<td height="40" class="TABLE-BODY" valign="middle"><a href="modification.php"><button type="button">Activation</button></a></td>';
      echo '</tr>'."\n";
    }

    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
?>

Je sais qu'il faut que j'utilise UPDATE, mais j'arrive pas a faire ce que je veux faire.

J'espère que vous avez compris.

Merci d'avance.

5 réponses


Mopire
Auteur
Réponse acceptée

J'ai réussi à faire ce que je voulais faire. Problème résolu.

Mopire
Auteur

j'ai commencé à faire ça :

<?php
 mysql_connect("", "", "");
               mysql_select_db("");
$nom_entreprise = $_COOKIE"NOM_ENTREPRISE"];
if ($_COOKIE"Compte_Active"] == non) {
$modifier = 'UPDATE Comptes_Utilisateurs SET Compte_Active = \'oui\' WHERE nom_entreprise=$nom_entreprise';
$result = mysql_query($modifier) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
}
if ($result) {
header("Location: liste.php");
}
else {
    header("Location: index.php");
}
?>

Mais ça me renvoie toujours a la page index.php

avant ton if met un print_r($result); die(); Pour voir ce que contient ton tableau.
Mais rien que là je peux te dire qu'il y a une erreur dans ta requête dans le WHERE tu colle la variable alors que tu devrais faire :

$modifier = 'UPDATE Comptes_Utilisateurs SET Compte_Active = \'oui\' WHERE nom_entreprise=\''.$nom_entreprise.'\'';
Mopire
Auteur

J'ai mis ce code :

<?php  
 mysql_connect("mysql5-59", "chsaintachsta", "Alexia2007");
               mysql_select_db("chsaintachsta");
$nom_entreprise = $_COOKIE"NOM_ENTREPRISE"];  
if ($_COOKIE"Compte_Active"] == non) {  
$modifier = 'UPDATE Comptes_Utilisateurs SET Compte_Active = \'oui\' WHERE nom_entreprise=\''.$nom_entreprise.'\''; 
$result = mysql_query($modifier) or die ('Erreur : '.mysql_error() );  
$total = mysql_num_rows($result);
print_r($result);
die();
}  
?>

Mais il y a rien qui s'affiche, j'ai une page blanche.

Mopire
Auteur

J'ai changé ma première page, pour que le bouton ne s'affiche seulement si le compte n'est pas activé comme ceci :

<?
mysql_connect("", "", "");
mysql_select_db("");
// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
// récupère tous les enregistrements
$select = 'SELECT Nom_Entreprise,nom,prenom,Adresse_Email,Compte_Active,ID_Utilisateur FROM Comptes_Utilisateurs WHERE Nom_Entreprise != NULL OR Nom_Entreprise != \'\'';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
    echo '<table width="809px" border="0" cellspacing="1" cellpadding="0">'."\n";
        // première ligne on affiche les titres prénom et surnom dans 2 colonnes
        echo '<tr align="center">';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Nom Entreprise</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Nom</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Prenom</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Email</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Valide</strong></td>';
        echo '<td width="14%" class="TABLE-HEAD"><strong>Action</strong></td>';
      echo '</tr>'."\n";
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
    while($row = mysql_fetch_array($result)) {
       echo '<tr align="center">';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"Nom_Entreprise"].'</td>';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"nom"].'</td>';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"prenom"].'</td>';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"Adresse_Email"].'</td>';
        echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"Compte_Active"].'</td>';
        if ($row'Compte_Active'] == "non"){ ?>
            <td height="40" class="TABLE-BODY" valign="middle"><a href="modification.php?ID_Utilisateur=<?php $row"ID_Utilisateur"]?>"><img src="Images/valide.jpg"></img></a></td>
            <?php
        }
        else { ?>
            <td height="40" class="TABLE-BODY" valign="middle">
            <?php
        }
      echo '</tr>'."\n";
    }

    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
?>

Je me suis rendu compte qu'il vaut mieux que je transmette le id que le nom_entreprise donc c'est pour ça mon <a href="modification.php?ID_Utilisateur=<?php $row"ID_Utilisateur"]?>">.

la page modification.php donne ça :

<?php  
mysql_connect("", "", "");
mysql_select_db("");
  $id = $_GET"ID_Utilisateur"];
$result = mysql_query('UPDATE Comptes_Utilisateurs SET Compte_Active = \'oui\' WHERE ID_Utilisateur='.$id) or die ('Erreur : '.mysql_error() );  
$total = mysql_num_rows($result);
if ($total) {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }

?>

Mais j'ai une erreur : Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Pourtant sur ma première page si je remplace " echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"Compte_Active"].'</td>'; " par " echo '<td height="40" class="TABLE-BODY" valign="middle">'.$row"ID_Utilisateur"].'</td>'; " Ben il y a bien les ID_Utilisateur qui s'affiche donc mon $id ne doit pas être vide.

Je suis me planté quelque par??

Merci de votre aide.