Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 19-02-2007 14:30:19

droopy69
Membre

comment ajouter un champ dans table mysql free pour le mod portail V2

bonjour a tous

Je voudrait intaller le mod portail V2 sur mon forum et dans le fichier il est inscrit :

SUR LA TABLE FORUMS DE LA BASE DE DONNEES

ajoutez le champ post_dspl à la table forums, voici la requete mysql :

ALTER TABLE `pun_forums` ADD `post_dspl` TINYINT( 2 ) DEFAULT '1';

je ne connait rien en mysql et je suis heberger par FREE donc je peut acceder a ma base de donner mysql par le site de free, mais apres je suis perdu!!!

si quelqu'un peut m'aider merci d'avance

Hors ligne

#2 19-02-2007 15:14:12

MT
Admin rasé

Re : comment ajouter un champ dans table mysql free pour le mod portail V2

Une fois que tu as accès à ta base de donnée via phpmyadmin (c'est à dire par sql.free.fr, ce que tu fais déjà), dans le cadre de gauche clique sur le nom de ta table (qui devrait être droopy69), ensuite, dans le cadre de droite, clique sur l'onglet "SQL" (entre Structure et Exporter).
Dans la zone de saisie qui apparaît alors, copie colle la requête puis clique sur "exécuter".
Et c'est bon !


(s) MT
ex-Apupv
:faq: :recherche:
Gra.

Hors ligne

#3 19-02-2007 20:24:39

droopy69
Membre

Re : comment ajouter un champ dans table mysql free pour le mod portail V2

merci de ton aide
il dise  :

ajoutez le champ post_dspl à la table forums

je pense qu'il faut ajouter un nouveau champ car celui- la n'existe pas " post_dspl "
comment fait-on?
http://forum.droopy.free.fr/Photo_forum/mysql.jpg
pour etre sur

merci

Dernière modification par droopy69 (19-02-2007 20:25:08)

Hors ligne

#4 19-02-2007 21:15:24

MT
Admin rasé

Re : comment ajouter un champ dans table mysql free pour le mod portail V2

Et bien tu y es presque wink
Dans la zone de saisie où est noté "SELECT * FROM `forums` WHERE 1", tu effaces tout, et tu colles le code suivant : [c]ALTER TABLE `forums` ADD `post_dspl` TINYINT( 2 ) DEFAULT '1';[/c] et le champs sera créé dans la table.
Tu remarqueras que j'ai transformé pun_forums en forums : le créateur du mod avait prévu l'utilisation du préfixe pun_, or toi tu n'as pas de préfixe.

Pour expliquer rapidement cette requête :
Alter Table `forums`: change la table forums
Add `post_dpsl` : rajouter le champs post_dsl
TINYINT(2) DEFAULT '1' : le champ sera de type tiny int (=petit entier) avec deux caractère max, et par défaut sa valeur sera 1.


(s) MT
ex-Apupv
:faq: :recherche:
Gra.

Hors ligne

#5 19-02-2007 22:56:53

droopy69
Membre

Re : comment ajouter un champ dans table mysql free pour le mod portail V2

oki merci pour ton aide :le mysql c'est regler,
par contre une fois les fichier index.php et admin forum.php modifier, j'ai une page blanche a la place de mon forum avec une erreur indiquer sur la derniere ligne de ma page index, alors que la derniere ligne est vide!!!
j'ai effacer la derniere ligne et l'erreur apparait sur la ligne d'avant ect...

en faite le probleme apparait lorsque je modifie ceci :

if ($cur_forum['last_post'] != '')
        $last_post = '<a href="viewtopic.php?pid='.$cur_forum['last_post_id'].'#p'.$cur_forum['last_post_id'].'">'.format_time($cur_forum['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_forum['last_poster']).'</span>';
    else
        $last_post = ' ';

    if ($cur_forum['moderators'] != '')
    {
        $mods_array = unserialize($cur_forum['moderators']);
        $moderators = array();

        while (list($mod_username, $mod_id) = @each($mods_array))
            $moderators[] = '<a href="profile.php?id='.$mod_id.'">'.pun_htmlspecialchars($mod_username).'</a>';

        $moderators = "\t\t\t\t\t\t\t\t".'<p><em>('.$lang_common['Moderated by'].'</em> '.implode(', ', $moderators).')</p>'."\n";
    }

?>
                <tr<?php if ($item_status != '') echo ' class="'.$item_status.'"'; ?>>
                    <td class="tcl">
                        <div class="intd">
                            <div class="<?php echo $icon_type ?>"><div class="nosize"><?php echo $icon_text ?></div></div>
                            <div class="tclcon">
                                <?php echo $forum_field."\n".$moderators ?>
                            </div>
                        </div>
                    </td>
                    <td class="tc2"><?php echo $num_topics ?></td>
                    <td class="tc3"><?php echo $num_posts ?></td>
                    <td class="tcr"><?php echo $last_post ?></td>
                </tr>
<?php

}

par ceci :

$lasts_posts= '';
    $tabs_posts= '';
    $j=0;
    $req2 = ('SELECT t.id, t.poster, t.posted, t.subject
            FROM '.$db->prefix.'topics AS t
            WHERE t.forum_id = '.$cur_forum['fid'].'
            ORDER BY t.posted DESC');
    $result2 = $db->query($req2) or die ('Impossible de trouver les infos concernant les topics : '.mysql_error());
    $ligne = mysql_fetch_array($result2);
    //echo $cur_forum['num_topics'].'///'.$cur_forum['post_dspl'];
    //Si le nombre de posts du forum est supérieur à celui du nombre de posts à afficher...
    if ($cur_forum['num_topics'] > $cur_forum['post_dspl'])
    {
       
        while (($ligne) && ($j != $cur_forum['post_dspl']))
        {
            $req3 = ('SELECT p.id, p.poster, p.message, p.posted
                    FROM '.$db->prefix.'posts AS p
                    WHERE p.topic_id = '.$ligne['id'].'
                    ORDER BY p.posted ASC');
            $result3 = $db->query($req3) or die ('Impossible de trouver les infos concernant les posts : '.mysql_error());
            $ligne2 = mysql_fetch_array($result3);
            $tabs_posts[] = array ("id"=>$ligne2['id'], "poster"=>$ligne2['poster'], "message"=>$ligne2['message'], "posted"=>$ligne2['posted'], "subject"=>$ligne['subject']);
            $ligne = mysql_fetch_array($result2);
            $j += 1;
        }
    }
    //ou si il est inférieur et différent de 0...
    else if (($cur_forum['num_topics'] <= $cur_forum['post_dspl']) && ($cur_forum['num_posts'] != 0))
    {
        while ($ligne)
        {
            $req3 = ('SELECT p.id, p.poster, p.message, p.posted
                    FROM '.$db->prefix.'posts AS p
                    WHERE p.topic_id = '.$ligne['id'].'
                    ORDER BY p.posted ASC');
            $result3 = $db->query($req3) or die ('Impossible de trouver les infos concernant les posts : '.mysql_error());
            $ligne2 = mysql_fetch_array($result3);
            $tabs_posts[] = array ("id"=>$ligne2['id'], "poster"=>$ligne2['poster'], "message"=>$ligne2['message'], "posted"=>$ligne2['posted'], "subject"=>$ligne['subject']);
            $ligne = mysql_fetch_array($result2);
            $j += 1;
        }
    }

for ($i=0; $i<$j; $i++)
{
    if (strlen($tabs_posts[$i]['message']) < 300)
    {
        $text = $tabs_posts[$i]['message'];
    }
    else
    {
        $text = substr($tabs_posts[$i]['message'], 0, 300).'...<a href="viewtopic.php?pid='.$tabs_posts[$i]['id'].'#p'.$tabs_posts[$i]['id'].'">(suite)</a>';
    }
?>
                <tr<?php if ($item_status != '') echo ' class="'.$item_status.'"'; ?>>
                <b><?php echo  ?><?php echo ?></b><br/>
                <?php echo '<a href="viewtopic.php?pid='.$tabs_posts[$i]['id'].'#p'.$tabs_posts[$i]['id'].'">'.format_time($tabs_posts[$i]['id']).' - - posté par : '.$tabs_posts[$i]['poster'].' - -  '.$tabs_posts[$i]['subject']."</a>\n".$moderators ?><br/>
                <?php echo $text ?><br/><br/>
                </tr>

<?php
}

je pense avoir bien suivi l'histoire mais la je comprend pas...

encore un petit coup de pouce sioupli
merci d'avance

Hors ligne

#6 20-02-2007 01:17:47

MT
Admin rasé

Re : comment ajouter un champ dans table mysql free pour le mod portail V2

Vu l'heure j'ai un peu la flemme de tout lire ^^

En général, ce genre de bug vient d'une chose : en faisant ton copié-collé, tu as oublié ou supprimé un } ou un ;
La seule solution c'est de recommencer la modif en faisant très attention wink


(s) MT
ex-Apupv
:faq: :recherche:
Gra.

Hors ligne

Pied de page des forums