modifier / supprimer des champs

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 déc. 2006, 15:31

Affiche les variables... :roll:

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

Invité
Invité n'ayant pas de compte PHPfrance

01 janv. 2007, 12:28

salut,

J ai pas pige ce que vous voulez dire par
Affiche les variables...

Mammouth du PHP | 19672 Messages

01 janv. 2007, 12:33

<?php
/* Affichage de vérification: */
echo("<p>Valeur de \$variable : ". $variable ."</p>\n");
?>
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

01 janv. 2007, 12:41

<?php 
include ('config.php'); 
if(isset($_POST['titre'])) $titre = $_POST['titre']; 
else $titre = ''; 
if(isset($_POST['message'])) $message = $_POST['message']; 
else $message = ''; 
if(isset($_POST['url'])) $url = $_POST['url']; 
else $url = ''; 
if(isset($_POST['date'])) $date = $_POST['date']; 
else $date = ''; 
$act = ( isset($_GET["act"]) ) ? $_GET["act"] : Null; 
if(isset($_GET['id'])) $id = $_GET['id']; 
else $id=''; 

...


if($act=="del") 
   { 
$QueryDelete = "Delete from $scroll_table WHERE id=".$_GET['id']; 
$QueryDeleteResult = mysql_query ($QueryDelete) or die($ErrorDelete); 
$Total1 = mysql_affected_rows($QueryDeleteResult);  
if ($Total1 == '1'){ 
echo "deleted";
echo $titre;
echo $ErrorDeleteQuery1;
echo $Refresh1;
} 
else 
{ 
echo "item not deleted"; 
} 
} 
if($act=="update") 
   { 
$sql2 = "Update $scroll_table set titre=$titre , url=$url , message=$message WHERE 
 id=".$_GET['id']; 
$result2 = mysql_query($select,$connection) or die ($ErrorUpdate);   
$Total2 = mysql_num_rows($result2);  
if ($Total2 == '1'){ 
echo "item updated"; 
echo "<meta http-equiv=\"refresh\" content=\"5;url=http://google.com\">\n "; 
} 
else 
{ 
echo "item not updated<br>"; 
echo var_dump($titre);
} 
    mysql_close(); 
} 
    ?> 
j ai mis toutes les possibilites mais sont des variables vides

Invité
Invité n'ayant pas de compte PHPfrance

01 janv. 2007, 13:13

c est bizare de ne pas recuperer mes variables meme en utilisant le POST

Mammouth du PHP | 19672 Messages

01 janv. 2007, 13:28

On va commencer par ré-écrire tout ça proprement : j'y ajoute quelques éléments et quelques commentaires, ça t'éclairera peut-être :
<?php 
include ('config.php');
$titre   = (isset($_POST['titre']))   ? $_POST['titre']   : '';
$message = (isset($_POST['message'])) ? $_POST['message'] : '';
$url     = (isset($_POST['url']))     ? $_POST['url']     : '';
$date    = (isset($_POST['date']))    ? $_POST['date']    : '';
$act     = (isset($_GET["act"]) )     ? $_GET["act"]      : Null;
$id      = (isset($_GET['id']))       ? $_GET['id']       : '';

//...
// On vérifie qu'il y a bien un identifiant avant toute opération
// et qu'il y a bien une opération définie.
if(!empty($id) && isset($act))
{
    if($act == "del")
    {
        $QueryDelete = "DELETE FROM ". $scroll_table ." ".
                       "WHERE id=". $id; // Si on récupère $_GET['id'] dans une variable, on utilisera cette variable
        $QueryDeleteResult = mysql_query ($QueryDelete) or die($ErrorDelete);
        $Total1 = mysql_affected_rows($QueryDeleteResult);
        if ($Total1 == '1')
        {
            echo "deleted";
            echo $titre;
            echo $ErrorDeleteQuery1;
            echo $Refresh1;
        }
        else
        {
            echo "item not deleted";
        }
    }
    elseif($act=="update")
    {
        $sql2 = "Update ". $scroll_table ." ".
                "SET titre   = '". $titre ."' , 
                     url     = '". $url ."' , 
                     message = '". $message ."' ".
                "WHERE id=".$id; 
        $result2 = mysql_query($select,$connection) or die ($ErrorUpdate);
        $Total2 = mysql_num_rows($result2);
        if ($Total2 == '1')
        {
            echo "item updated";
            echo "<meta http-equiv=\"refresh\" content=\"5;url=http://google.com\">\n ";
        }
        else
        {
            echo "item not updated<br>";
            echo var_dump($titre);
        }
        mysql_close();
    }
    else
    {
        // opération demandée non conforme : ni "del" ni "update"
    }
}
?> 
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

01 janv. 2007, 14:02

Code : Tout sélectionner

 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /mnt/122/sdb/f/b/............/Scroll/scroll_action.php on line 40
voila la ligne 40:
        $result2 = mysql_query($select,$connection) or die ($ErrorUpdate); 

Invité
Invité n'ayant pas de compte PHPfrance

01 janv. 2007, 14:06

c etait une petite faute de frappe, et quand je modifie ca donne:

Code : Tout sélectionner

 item not updated string(0) ""

Mammouth du PHP | 19672 Messages

01 janv. 2007, 14:24

Je n'ai pas tout corrigé dans ton code : mais il y a une fonction qui n'a rien à faire là : mysql_num_rows() : on utilise cette fonction à la suite d'une requête SQL SELECT : or là, tu fais une requête UPDATE. Donc la fonction appropriée serait plutôt mysql_affected_rows()

Et pour que ça aie une chance de marcher, il faudrait exécuter la bonne requête :

Là, tu fais :
//...
        $sql2 = "Update ". $scroll_table ." ".
                "SET titre   = '". $titre ."' , 
                     url     = '". $url ."' , 
                     message = '". $message ."' ".
                "WHERE id=".$id; 
        $result2 = mysql_query($select,$connection) or die ($ErrorUpdate);
        $Total2 = mysql_num_rows($result2); 
//...
Alors que ce devrait être :
//...
        $sql2 = "Update ". $scroll_table ." ".
                "SET titre   = '". $titre ."' , 
                     url     = '". $url ."' , 
                     message = '". $message ."' ".
                "WHERE id=".$id; 
        $result2 = mysql_query($sql2,$connection) or die ($ErrorUpdate);
        $Total2 = mysql_affected_rows($result2); 
//...
Que t'en semble ?? La programmation, c'est pas juste copier/coller du code, c'est aussi lire ce qu'on écrit ou colle et ça demande un petit minimum d'attention ;)
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

02 janv. 2007, 20:27

j ai fait les modifications necessaires mais les champs deviennent vides

Invité
Invité n'ayant pas de compte PHPfrance

02 janv. 2007, 22:15

utiliser les sessions est ce bon a recommander:
<?php
$_SESSION['titre'] = $titre;
?>

Mammouth du PHP | 19672 Messages

02 janv. 2007, 22:16

Alors fais afficher ta requête, il y a fort à parier que ta requête envoie des variables vides en guise de valeurs : alors logiquement, tes champs se vident dans la table.
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

02 janv. 2007, 22:31

Alors fais afficher ta requête, il y a fort à parier que ta requête envoie des variables vides en guise de valeurs : alors logiquement, tes champs se vident dans la table.
ca donne:
Update scroll_table SET titre = '' , url = '' , message = '' WHERE id=14
1
item not updated
string(0) ""

Mammouth du PHP | 19672 Messages

02 janv. 2007, 23:56

VOilà, le valeurs sont vide, donc les variables ne sont pas initialisées ou n'ont pas été récupérées : le problème est donc en amont.
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

03 janv. 2007, 18:54

dans la page ou je recupere toutes les variables elle sont recuperees, je pense qu il ya pas une coordination entre la 1ere page et la 2eme quand je veux executer l action de modification