probleme update

Mammouth du PHP | 19672 Messages

11 oct. 2005, 18:25

Bon, je viens de parcourir le code: il y a deux fois l'attribut name avec la valeur word dans le formulaire, corrige déjà ce point.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

11 oct. 2005, 18:45

  <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$word"; ?>" class="input01"></td> 
    <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$replacement"; ?>" class="input01"></td> 
J ai corrige et quand je lance l update ca me laisse les champs vides

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 oct. 2005, 19:16

  <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$word"; ?>" class="input01"></td> 
    <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$replacement"; ?>" class="input01"></td> 
SAlut, ce code est en dehors des balises <form> et </form>

c'est pas pas les bon input pour faire l'affichage ! (a faire dans le formulaire :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 45 Messages

11 oct. 2005, 19:34

toujours ne marche pa

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 oct. 2005, 19:59

C'est logique puisque tu veut valide le formulaire avec un lien:
<a href="index.php?menu=GuestBookCensure&action=update&id=<?php echo($censure[id]); ?>" onClick="return conf();">Update</a>
tu ne peut donc pas récupèrer les variables POST
ajoute un id dans la balise <form id="form"> et remplace la fonction javascript par celle-ci
function conf()
{
    if(confirm("Are you sure?"))
       document.getElementById('form').submit();
}

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 45 Messages

12 oct. 2005, 21:55

ca fonctionne pas comme toujours

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 oct. 2005, 22:59

Montre nous ton code tel qu'il est maintenant, apres les modifications (histoire de repartir sur des "bonnes" bases :wink: )

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 45 Messages

13 oct. 2005, 05:02

Je vais refaire par une autre methode et voir si ca marche

Eléphanteau du PHP | 45 Messages

14 oct. 2005, 18:52

voila tout le code:
<?php
$date        = (isset($_POST['date']))        ? $_POST['date']        : "";
$hour        = (isset($_POST['hour']))        ? $_POST['hour']        : "";
$word        = (isset($_POST['word']))        ? $_POST['word']        : "";
$replacement = (isset($_POST['replacement'])) ? $_POST['replacement'] : "";
$action      = (isset($_GET['action']))       ? $_GET['action']       : "";
$id          = (isset($_GET['id']))           ? $_GET['id']           : "";

$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'test';

$date = date("d/m/Y");
$hour = date("H:i");

$connection = mysql_connect($host, $user, $pass) or die(mysql_error());
$db = mysql_select_db($db_name, $connection) or die(mysql_error());

if ($action == 'add')
{
    $sql1 = "INSERT INTO censure VALUES ('','". $word ."','". $replacement ."','". $date ."','". $hour ."')";
    $result1 = mysql_query($sql1,$connection) or die('Erreur SQL insertion: '.mysql_error());
    echo "<meta http-equiv=\"refresh\" content=\"0;url=index.php?menu=GuestBookCensure\">\n ";
}

elseif($action == 'del')
{
    $sql2 = "DELETE FROM censure WHERE id='". $id ."'";
    $result2 = mysql_query($sql2,$connection) or die('Erreur SQL Delete: '.mysql_error());
    echo "<meta http-equiv=\"refresh\" content=\"0;url=index.php?menu=GuestBookCensure\">\n ";
}

elseif($action == 'update')
{

    $sql3 = "UPDATE censure SET word='". $word ."', replacement='". $replacement ."' WHERE id='". $id ."'";

    $result3 = mysql_query($sql3,$connection) or die('Erreur SQL Update: '.mysql_error());
    echo "<meta http-equiv=\"refresh\" content=\"10;url=index.php?menu=GuestBookCensure\">\n ";
}
else
{
?>
<form action="index.php?menu=GuestBookCensure&action=add" method="post" name="form">
  <table width="100%" class="DivStyle2">
    <tr>
      <td width="40%" align="right">Word:</td>
      <td width="60%"><input type="text" name="word" maxlength="30" size="20" value="" class="input01"></td>
    </tr>
    <tr>
      <td width="40%" align="right">Replace with:</td>
      <td width="60%"> <input type="text" name="replacement" maxlength="30" size="20" value="***" class="input01"></td>
    </tr>
    <tr>
      <td colspan="2" align="center">
        <input type="submit" value="Send" class="input02">
      </td>
    </tr>
  </table>
<?php
    $sql = "SELECT * FROM ". $table_gbook_censure ." ORDER BY id DESC";
    $result = mysql_query($sql,$connection) or die(mysql_error());
    $total = mysql_num_rows($result);
    if ($total == '')
    {
        echo "<p>No bad words</p>\n";
    }
    else
    {
        echo "<p style=\"color: #f00; text-align: center\">There is ". $total ." bad words</p>\n";
        //echo "There is $total Rows";
    }
?>
<script language="JavaScript" type="text/javascript">
<!--
function conf()
{
    return (confirm("Are you sure?"));
}
//-->
</script>
<table width="100%" class="DivStyle2">
  <tr>
    <td width="20%" align="left">Date</td>
    <td width="20%" align="left">Word</td>
    <td width="20%" align="left">Replacement</td>
    <td width="40%" align="center">Actions</td>
  </tr>
<?php
    while($censure = mysql_fetch_array($result))
    {
        $date        = $censure['date'];
        $hour        = $censure['hour'];
        $word        = $censure['word'];
        $replacement = $censure['replacement'];
?>
  <tr>
    <td width="20%" align="left"><?php echo "$date"; ?> &nbsp; <?php echo "$hour"; ?></td>
    <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$word"; ?>" class="input01"></td>
    <td width="20%" align="left"><input type="text" name="replacement" maxlength="30" size="20" value="<?php echo "$replacement"; ?>" class="input01"></td>
    <td width="40%" align="right">
      <a href="index.php?menu=GuestBookCensure&action=update&id=<?php echo($censure[id]); ?>" onClick="return conf();">Update</a>&nbsp;&nbsp;
      <a href="index.php?menu=GuestBookCensure&action=del&id=<?php echo($censure[id]); ?>" onClick="return conf();">Delete</a>
    </td>
  </tr>
<?php
    }
}
?>
</table>
</form>

Mammouth du PHP | 19672 Messages

14 oct. 2005, 18:58

Est-ce que tu pourrais être plus explicite ? "Ça marche pas", ou "Ça marche toujours pas", ça nous aide pas des masses. Tu sembles oublier qu'on peut pas tester en local parce qu'on a pas la base de données qui va avec le code.

Explique ce que tu essayes de faire, ce que tu attends et ce que tu obtiens (Messages d'erreur ou autre) Et ce que tu as fait pour cibler l'origine du problème.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 45 Messages

14 oct. 2005, 19:08

je m'explique:

il y a trois actions dans la form des censures:
* ajouter
* supprimer
* modifier

les 2 premieres marchent bien (ajouter + supprimer), ms celle de modifier, ca me redonne les champs vides, quand je modifie les valeurs (mot et son remplacement) ca me donne le resultat nul, des champs vides, meme dans la base de donnee

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 oct. 2005, 19:09

je me lance dans l'erreur possible:
<?php echo($censure['id']); ?>
manquait des quotes

sinon il y a deux fois les meme noms de champs dans le meme formulaire (erreur qui ta deja été signalée)

et tu ne peut pas faire de requete d'update puisque tu clique sur un lien pour ce faire hors tu récupère avec POST, il faut donc valider le formulaire sur clique (sur lien "update")(aussi signalé :wink: )

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 45 Messages

14 oct. 2005, 19:19

<a href="index.php?menu=GuestBookCensure&action=update&id=<?php echo($censure['id']); ?>" onClick="return conf();">Update</a>
meme resultat ca m'envoi des requetes vides