Table mysql avec nom en variable PHP

Fermé
era - 7 juil. 2010 à 21:50
 era - 8 juil. 2010 à 02:45
Bonjour,
je débute en php et
J'ai vraiment un gros problème il faut que je modifie une table mysql via une page php et le nom de cette table doit être définie dans une variable.

Voici mon code :

$query='UPDATE '.$scen.' SET payer="'.$paiement.'"
WHERE idmembres='.$id .'';
$query= mysql_query($query);


Là ca ne marche pas mais si je met le nom en dur comme ceci :

$query='UPDATE mon_de_ma_table SET payer="'.$paiement.'"
WHERE idmembres='.$id .'';
$query= mysql_query($query);


ca fonctionne nickel

j'ai également esayyer de définir mon nom en dur dans la variable comme ceci :

$scen="mon_de_ma_table";

$query='UPDATE '.$scen.' SET payer="'.$paiement.'"
WHERE idmembres='.$id .'';
$query= mysql_query($query);

ca fonction

a la base je récupère le nom comme ceci

$scen = $_POST['nomtbl'];

et je fais un echo de $scen et le resultat est bon c'est exactement ca dont j'ai besoin donc là je galère






5 réponses

Utilisateur anonyme
7 juil. 2010 à 22:09
slt,

Fais une vérif avant :

if(isset($_POST['nomtbl']) && $_POST['nomtbl']!= null)
{
    $scen = $_POST['nomtbl']; 

    $query='UPDATE '.$scen.' SET payer="'.$paiement.'"
    WHERE idmembres='.$id .'';
    $query= mysql_query($query); 
}else
    echo "Erreur";


Normalement ca doit fonctionner !!
0
Merci de m'avoir répondu si rapidement j'ai passer ta condition mais ceci ne me retourne aucune erreur et ma table ne se met toujours pas à jour
0
Voici tous mon code de la page si ca peux plus éclairer

<!DOCTYPE html PUBLIC « -//W3C//DTD XHTML 1.0 Strict//EN » « http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd »>
<html xmlns= »http://www.w3.org/1999/xhtml » xml:lang= »en »>
<LINK rel="stylesheet" type="text/css" href="resource/design.css">
<head>
<title>enregistrement</title>
</head>
<body>


<?php

// enregistre les information relative au paiement

$serveur = mysql_connect("localhost","root","");
$db_exemple1 = mysql_select_db('menbrestr38', $serveur);
$scen = $_POST['nomtbl'];
$query = "select * from inscris";
$result = mysql_query("select * from inscris");

while ($info = mysql_fetch_array($result))

{


echo '<form name="formulaire_contact" method="post">';
$paiement = $_POST[$info['id']];
echo '</form >';

$id =$info['id'];
echo $id;
echo $paiement;
echo $scen;

if(isset($_POST['nomtbl']) && $_POST['nomtbl']!= null)
{
$scen = $_POST['nomtbl'];

$query='UPDATE '.$scen.' SET payer="'.$paiement.'"
WHERE idmembres='.$id .'';
$query= mysql_query($query);
}else
echo "Erreur";


$query='UPDATE '.$scen.' SET payer="'.$paiement.'"
WHERE idmembres='.$id .'';
$query= mysql_query($query);



}
?>
</body>
</html>
0
Utilisateur anonyme
7 juil. 2010 à 23:42
Je réécris pas tout, ca à merdé !!

Bref je comprend pas tout et en gros tu veux récup la valeur d'une variable qui n'existe pas !!

$_POST['nomtbl'] n'existe pas a moins que tu arrives sur cette page depuis une autre page qui exécute un formulaire rempli auparavant, mais vu comment tu as fait ton formulaire sur cette page j'en doute ^^ :)

Car ici tu créé un formulaire pour chaque enregistrement de ta table mais il ne servent a rien tes formulaire... dans un formulaire tu dois avoir des zones de saisie du genre :
input type="text" mais surtout il te faut un bouton d'envois ce qui n'apparait pas ici !!
du style <input type=submit value=Valider>

en gros un formulaire de base ca peut ressembler à ça
<form action="page_a_executer.php" method="post">
<input type="text" name="Prenom">
<input type="submit" value="Enregistrer mon prénom">
</form>

et là tu pourras avoir accès à $_POST['Prenom'] par exemple ...

Ensuite tu n'as pas besoin de te prendre la tête à mettre une variable pour le nom de table à moins que tu ais plusieurs tables avec des champs nommés :
'payer' et 'idmembres'

Voilà j'espère t'avoir aider !! ;) ( bon je crois que j'ai presque tout réécris tout compte fais !)
0
Non en faite bien sur j'ai généré une vue sur une page précédent ou l'on sélection si un membre a payer ou pas. si le membre a payer ceci doit mettre a jour l'information dans une table.

echo '<form name="formulaire_contact" method="post">';
$paiement = $_POST[$info['id']];
echo '</form >';

cette partie du code a été obligatoire sinon j'avais un conflit mais il y a bien un autre formulaire sur une page précédente d'ailleurs m'a variable contiens bien la valeur
0
Utilisateur anonyme
8 juil. 2010 à 00:09
Bah écoutes si :
echo $id;
echo $paiement;
echo $scen;

obtiennent les bonnes valeurs alors essayes ceci pour voir :

$query= mysql_query("UPDATE ".$scen." SET payer='".$paiement."' WHERE idmembres='".$id ."'");
0
et oui en faite chaque réunion a payer est une table différente donc j'en ai plusieurs
0

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

Posez votre question
J'ai trouvé... je crois que j'ai envie de pleurer..., j'avais mal refermer un <input> sur le formulaire précédent... juste une une dizaine d'heure de perdu...lol
0