rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Pbs UPDATE et INSERT dans un script PHP !

pottepei, le mercredi 19 décembre 2007 à 13:45:20
Bonjour,

Voilà, cette fois, je jette mon gant car voilà 4 jours que je suis dessus !

J'explique : dans un des prgs de mon forum PHPbb, le modcp.php, j'ai un MOD attributes (ci-dessous en italique et fonctionne très bien ! Dans ce MOD, je crée un script (en gras) avec une condition (si l'attribute = 9, il doit exécuter ce que je lui indique) :

-- mod : quick title edition -------------------------------------------------
//-- add
]case 'attribute':
if (empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id))
{
message_die(GENERAL_MESSAGE, $lang['None_selected']);
}

$topics = isset($HTTP_POST_VARS['topic_id_list']) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
$topic_id_sql = '';

for ($i = 0; $i < count($topics); $i++)
{
$topic_id_sql .= ( !empty($topic_id_sql) ? ', ' : '' ) . $topics[$i];
}

$attribute = ($row['attribute_id'] > -1) ? implode(',', array($row['attribute_id'], $userdata['user_id'], time())) : '';


//-- mod : quick title ziever début -------------------------------------------------
if ($attribute_id == 9 )
{
$result = mysql_query("SELECT topic_poster
FROM phpbb_topics
WHERE topic_id = $topic_id");
if (!$result)
{
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
$topic_poster = intval($row[0]);
$sql = "UPDATE phpbb_users
SET user_rank = 4
WHERE user_id = $topic_poster";

$sql = "INSERT INTO phpbb_user_group (group_id, user_id, user_pending)
VALUES (11024,$topic_poster,0)";
}
//-- mod : quick title ziever fin ---------------------------------------------------


$sql = 'UPDATE ' . TOPICS_TABLE . '
SET topic_attribute = \'' . $attribute . '\'
WHERE topic_id IN (' . $topic_id_sql . ')
AND topic_moved_id = 0';
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['Attr_Error_Message_12'], '', __LINE__, __FILE__, $sql);
}

if (!empty($topic_id))
{
$redirect_page = $get->url('viewtopic', array(POST_TOPIC_URL => $topic_id, 'sid' => $userdata['session_id']), true);
$message = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
}
else
{
$redirect_page = $get->url('modcp', array(POST_FORUM_URL => $forum_id, 'sid' => $userdata['session_id']), true);
$message = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
}

$message = $message . '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . $get->url('viewforum', array(POST_FORUM_URL => $forum_id, 'sid' => $userdata['session_id']), true) . '">', '</a>');
$template->assign_vars(array('META' => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">'));

message_die(GENERAL_MESSAGE, $lang['Attribute_Edited'] . '<br /><br />' . $message);
break;
//-- fin mod : quick title edition ---------------------------------------------



Mon problème est le suivant : le $topic_poster a bien la valeur souhaitée (vérifiée par un echo au début et à la fin de mon script), mais mes 2 requêtes sur la BD ne se font pas ! Pas de messages d'erreur et la fonction quick little edition (attribute) continue de façon normale... juste mes 2 requêtes qui ne modifient pas la BD ! Pourtant, si j'effectue la même procédure en langage SQL, tout est nickel et fonctionne !

Si quelqu'un a une idée ? Merci d'avance à tous !
Configuration: Windows XP
Internet Explorer 7.0
Répondre à pottepei  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
le père, le mercredi 19 décembre 2007 à 14:16:55
Bonjour

Tu parles des 2 requêtes dans la partie en gras ?!?!?!?!?!?!
Mais tu ne fais pas de requête !
Tu mets le texte d'une requête dans $sql mais ensuite tu ne fais pas de $db->sql_query($sql)

Au passage, c'est l'éponge que tu jettes. Quand tu jettes ton gant, c'est pour provoquer quelqu'un en duel.
Répondre à le père

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pottepei, le mercredi 19 décembre 2007 à 15:06:32
merci, ok pour l'éponge, et sorry !

Oui, cela concerne le texte en gras effectivement ! Pourtant, dans le gras, je fais bien une requête (tout au début) qui me donne bien la valeur du $topic_poster ($row = mysql_fetch_row($result); $topic_poster = intval($row[0]);). Aurais-je oublié quelque chose pour le UPDATE et le INSERT INTO ?

Merci de ton aide,
Répondre à pottepei

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pottepei, le mercredi 19 décembre 2007 à 15:46:09
Merci à toi : j'ai compris et réussi !

J'ai donc bien rajouté dans le script les 2 requêtes ce qui donne :

//-- mod : quick title ziever début -------------------------------------------------
if ($attribute_id == 9 )
{
$result = mysql_query("SELECT topic_poster
FROM phpbb_topics
WHERE topic_id = $topic_id");
if (!$result)
{
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
$topic_poster = intval($row[0]);
$sql = "UPDATE phpbb_users
SET user_rank = 4
WHERE user_id = $topic_poster";
$db->sql_query($sql);
$sql = "INSERT INTO phpbb_user_group (group_id, user_id, user_pending)
VALUES (11024,$topic_poster,0)";
$db->sql_query($sql);
}
//-- mod : quick title ziever fin ---------------------------------------------------
Répondre à pottepei

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ABDev, le samedi 22 décembre 2007 à 17:18:42
Bonjour pottepei,
Je suis l'un des deux auteurs du MOD phpBB que vous avez installé. Juste par curiosité, votre requête est censée quoi ?
Cordialement
ABDev, OxyGen Powered
Répondre à ABDev

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pottepei, le samedi 22 décembre 2007 à 18:31:31
Bonjour et félicitations pour votre MOD qui, soit dit en passant, est SUPER !

Ce que je voulais faire et ai réussi, grâce aussi à le Père qui m'a rappelé que j'avais oublié de faire les requêtes :

j'ai utilisé, dans mes forums, l'attribut n°9 comme suit "Activé par..." : ainsi mes modérateurs indiquent par ce biais qu'ils ont activé le compte d'un de mes membres. Mon ajout permet que, dès qu'ils l'ont donc activé, ce membre soit placé automatiquement dans un groupe intitulé "Membres Activés" (ce qui leur donne, dans leur pseudo, une couleur différente), et aussi, automatiquement, qu'ils aient le rang de "Membre Activé" (ce qui apparaîtra ainsi en dessous de leur pseudo, dans le forum) !

Voilou : j'espère que tu as compris...

Bien cordialement,
Répondre à pottepei

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ABDev, le samedi 22 décembre 2007 à 21:45:37
Intéressant, et pas bête du tout en effet ^^.
Est-ce que cela vous dérange que je propose votre requête, sous forme d'un addon afin qu'elle puisse servir à d'autres personnes éventuellement ? ;).
Cordialement.
ABDev, OxyGen Powered

PS : Pensez à vous mettre à jour sur la version 1.6.2a, qui corrige une faille de sécurité ;).
Répondre à ABDev

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pottepei, le samedi 22 décembre 2007 à 23:49:07
Aucun souci, que du contraire ! Evidemment, il faudra un peu arranger cela, au niveau de la condition de l'attribut (mettre une variiable définie par l'utilisateur à la place du if ($attribute_id == 9 ), puisque, chez moi, c'était 9 et aussi du ranks (rang) : VALUES (11024,$topic_poster,0)";
que j'ai bien sûr personnalisé à mon forum.

PS : je suis en 1.6.2a !
http://forum.fte-team.com/fteteam.php

Bien cordialement aussi,
Répondre à pottepei

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
padu1, le jeudi 14 février 2008 à 09:08:27
Bonjour

il n y a plus d acces à la FTE team depuis deux jours
est ce normal ?
merci
Répondre à padu1

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
psg85, le jeudi 1 mai 2008 à 17:40:31
salut il n y a plus d acces à la FTE team merci
Répondre à psg85

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
padu1, le vendredi 2 mai 2008 à 07:39:44
C est revenu
Bonne journée
Répondre à padu1

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
padu1, le vendredi 2 mai 2008 à 07:42:23
excuse
juste le site
pas d accès au forum
je pense qu il faut patienter
Répondre à padu1

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 padu1, le vendredi 2 mai 2008 à 16:06:15
re bonjour
ca remarche
bonne journée à toi
Répondre à padu1

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pottepei, le jeudi 14 février 2008 à 13:40:32
Bonjour,
Content de te voir ici !
Oui, hélas, gros problèmes de serveurs chez notre hébergeur : réparations en cours, mais très long....
A bientôt,
Répondre à pottepei

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
padu1, le jeudi 14 février 2008 à 15:25:21
merci de me (nous) rassurer
A tres bientot
Répondre à padu1

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
FoUnY, le vendredi 15 février 2008 à 16:15:55
Si il fallait un ne firmware, il n'y a pas une adresse alternative?? ou une personne à contacter???
Répondre à FoUnY

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
padu1, le mardi 19 février 2008 à 11:00:52
bonjour
hier le site fonctionnait
Ils transfert aujourd hui et normalement demain ca devrait refonctionné
J ai eut le temps de prendre le dernier firm le 021
bonne journée
Répondre à padu1

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pottepei, le jeudi 1 mai 2008 à 17:58:48
oui, gros pb ! Disque Dur sur serveur fichu ! On va tenter de remettre en ligne du "temporaire"....
Répondre à pottepei
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger All In One Video Script 1.0All In One Video Script - All In One Video Script est un script pour l'extension GreaseMonkey pour le navigateur Firefox permettant de détecter la...Catégorie: Vidéo
Licence: Freeware/gratuit
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger Delphi 6 Edition personnelle 6.0Delphi 6 Edition personnelle - La société Borland (Inprise) a mis à disposition gratuitement, pour un usage non-commercial, la version 6 de son...Catégorie: Delphi
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « Pbs UPDATE et INSERT dans un script PHP ! »