Page 1 sur 2

colonnes smileys

Posté : 13 juin 2007, 13:04
par thebest321
Salut tout le monde.
Pour faire simple, j'ai une page http://ftpteamnon.free.fr/siteteam/web/ ... tbox_texte
Et j'aimerais que les smileys s'affichent sur plusieurs colonnes au lieu d'une seule, est ce possible ?
Il me semble que on peut créér un tableau en les mettant un par un mais là il suffit que j'ajoute un smiley sur mon site et il apparaît automatiquement sur cette page donc c'est pratique
Voilà

Posté : 13 juin 2007, 13:55
par Megadeth
Salut,

Si je comprends bien tes smileys sont dans ta base ?
Dans ce cas, pour faire du multicolonnage en sortie d'une requête tu peux utiliser la soluce modulo ou le code suivant :
<? echo '<table>';//on ouvre un tableau HTML
  require_once("connex.php");//on se connecte à la base
   $nbcol = 6;// nombre de colonnes voulues, LA VALEUR A VOTRE CONVENANCE ;)
   $i = 0;// pointeur nombre de colonnes
    $q = "SELECT * FROM ta table ORDER BY ce que tu veux";//requête
    $r = mysql_query($q);//envoi de la requête
    $nbe = mysql_num_rows($r);//nombre d'enregistrements
     while ($row=mysql_fetch_array($r)) {//boucle des résultats
      if (($nbe>0) && ($i==0)){ echo '<tr>'; }//première et chaque nouvelle ligne 
     echo '<td>'.$row["nom_uti"].'</td>';//nos gentilles cellules
     $i++;//on incrémente i
     $nbe--;//on décrémente nbe
      if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }//si dernier enregistrement ou i a atteint la limite 
     }//on ferme le while
 echo '</table>';//fermeture du tableau HTML
?>
A adapter à ton cas bien sur ;)

Mega :)

mci

Posté : 13 juin 2007, 15:22
par thebest321
merci beaucoup mais j'ai rien compris j'ai mon bloc notes comme ceci à la fin :
  function smilies()
    {
        global $textarea, $theme, $bgcolor3, $bgcolor2;

       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
       . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n"
       . "<head><title>" . _SMILEY . "</title>\n"
       . "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
       . "<meta http-equiv=\"content-style-type\" content=\"text/css\" />\n"
       . "<link title=\"style\" type=\"text/css\" rel=\"stylesheet\" href=\"themes/" . $theme . "/style.css\" /></head>\n"
       . "<body style=\"background: " . $bgcolor2 . ";\">\n"
       . "<script type=\"text/javascript\" src=\"bbcode.js\"></script>\n";

       echo "<script type=\"text/javascript\">\n"
       . "<!--\n"
       . "\n"
       . "function eff(){\n"
       . "if (opener.document.getElementById('" . $textarea . "').value == '" . _YOURMESS . "')\n"
       . "{\n"
       . "opener.document.getElementById('" . $textarea . "').value='';\n"
       . "}\n"
       . "}\n"
       . "\n"
       . "// -->\n"
       . "</script>\n";

       echo "<div style=\"text-align: center;\"><big><b>" . _LISTSMILIES . "</b></big></div>\n"
       . "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\"><tr><td colspan=\"2\">&nbsp;</td></tr>\n"
       . "<tr style=\"background: $bgcolor3;\"><td align=\"center\"><b>" . _IMAGE . "</b></td></tr>\n";

        $sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
        while (list($code, $url, $name) = mysql_fetch_array($sql))
        {
            $name = stripslashes($name);
            $name = htmlentities($name);
            $code = htmlentities($code);

            echo " <tr><td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td></tr>\n";
        } 

        echo "</table><div style=\"text-align: center;\"><br /><a href=\"#\" onclick=\"javascript:window.close()\"><b>" . _CLOSEWINDOW . "</b></a></div></body></html>";
    }  


switch ($op)
{

    case"smilies":
        smilies();
        break;

    case"index":
        index();
        break;

    default:
        index();
        break;
} 

?> 


?>
Donc je ne sais pas du tout où mettre ce que tu m'as dit et le modifier aussi car je suppose que quand tu dis "ta table" etc je dois mettre quelque chose mais j'y connais vraiment rien
:oops:

Posté : 13 juin 2007, 16:01
par Megadeth
Ok lol.

Essaie en gros, ca :
echo '<table>';//on ouvre un tableau HTML 
  require_once("connex.php");//on se connecte à la base 
   $nbcol = 6;// nombre de colonnes voulues, LA VALEUR A VOTRE CONVENANCE ;) 
   $i = 0;
juste avant :
$sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
Cette ligne :
$nbe = mysql_num_rows($r);//nombre d'enregistrements 
avant :
while (list($code, $url, $name) = mysql_fetch_array($sql)) 
Ceci :
if (($nbe>0) && ($i==0)){ echo '<tr>'; }//première et chaque nouvelle ligne  
     echo 'td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';//nos gentilles cellules 
     $i++;//on incrémente i 
     $nbe--;//on décrémente nbe 
      if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }//si dernier enregistrement ou i a atteint la limite  
     }//on ferme le while 
 echo '</table>';//fermeture du tableau HTML 
à la place de :
echo " <tr><td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td></tr>\n"; 
On attend ton retour...

Mega :)

re

Posté : 13 juin 2007, 19:00
par thebest321
    function smilies()
    {
        global $textarea, $theme, $bgcolor3, $bgcolor2;

       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
       . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n"
       . "<head><title>" . _SMILEY . "</title>\n"
       . "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
       . "<meta http-equiv=\"content-style-type\" content=\"text/css\" />\n"
       . "<link title=\"style\" type=\"text/css\" rel=\"stylesheet\" href=\"themes/" . $theme . "/style.css\" /></head>\n"
       . "<body style=\"background: " . $bgcolor2 . ";\">\n"
       . "<script type=\"text/javascript\" src=\"bbcode.js\"></script>\n";

       echo "<script type=\"text/javascript\">\n"
       . "<!--\n"
       . "\n"
       . "function eff(){\n"
       . "if (opener.document.getElementById('" . $textarea . "').value == '" . _YOURMESS . "')\n"
       . "{\n"
       . "opener.document.getElementById('" . $textarea . "').value='';\n"
       . "}\n"
       . "}\n"
       . "\n"
       . "// -->\n"
       . "</script>\n";

       echo "<div style=\"text-align: center;\"><big><b>" . _LISTSMILIES . "</b></big></div>\n"
       . "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\"><tr><td colspan=\"2\">&nbsp;</td></tr>\n"
       . "<tr style=\"background: $bgcolor3;\"><td align=\"center\"><b>" . _IMAGE . "</b></td></tr>\n";

echo '<table>';//
  require_once("connex.php");//
   $nbcol = 6;// 
   $i = 0; 

        $sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
$nbe = mysql_num_rows($r);//
        while (list($code, $url, $name) = mysql_fetch_array($sql))
        {
            $name = stripslashes($name);
            $name = htmlentities($name);
            $code = htmlentities($code);

            if (($nbe>0) && ($i==0)){ echo '<tr>'; }//
     echo 'td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';//
     $i++;//
     $nbe--;//
      if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }//
     }//
     echo '</table>';//
        } 

        echo "</table><div style=\"text-align: center;\"><br /><a href=\"#\" onclick=\"javascript:window.close()\"><b>" . _CLOSEWINDOW . "</b></a></div></body></html>";
    }  
Il me dit qu'il y a un problème à la dernière ligne j'ai du rater un passage xD

Posté : 13 juin 2007, 21:07
par Megadeth
arf oui le require_once n'est pas valable pour toi, retires cette ligne : require_once("connex.php");//

et aussi car ta variable porte un nom différent met : $nbe = mysql_num_rows($sql); au lieu de $nbe = mysql_num_rows($r);

et reteste ;)

Mega :)

Ps : si tu as des erreurs, indique le message affiché ;)

re

Posté : 13 juin 2007, 21:46
par thebest321
Parse error: syntax error, unexpected '}' in /mnt/157/sdb/1/9/ftpteamnon/siteteam/web/modules/Textbox/index.php on line 199
voilà mon message d'erreur
et dans le php j'ai :

 function smilies()
    {
        global $textarea, $theme, $bgcolor3, $bgcolor2;

       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
       . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n"
       . "<head><title>" . _SMILEY . "</title>\n"
       . "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
       . "<meta http-equiv=\"content-style-type\" content=\"text/css\" />\n"
       . "<link title=\"style\" type=\"text/css\" rel=\"stylesheet\" href=\"themes/" . $theme . "/style.css\" /></head>\n"
       . "<body style=\"background: " . $bgcolor2 . ";\">\n"
       . "<script type=\"text/javascript\" src=\"bbcode.js\"></script>\n";

       echo "<script type=\"text/javascript\">\n"
       . "<!--\n"
       . "\n"
       . "function eff(){\n"
       . "if (opener.document.getElementById('" . $textarea . "').value == '" . _YOURMESS . "')\n"
       . "{\n"
       . "opener.document.getElementById('" . $textarea . "').value='';\n"
       . "}\n"
       . "}\n"
       . "\n"
       . "// -->\n"
       . "</script>\n";

       echo "<div style=\"text-align: center;\"><big><b>" . _LISTSMILIES . "</b></big></div>\n"
       . "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\"><tr><td colspan=\"2\">&nbsp;</td></tr>\n"
       . "<tr style=\"background: $bgcolor3;\"><td align=\"center\"><b>" . _IMAGE . "</b></td></tr>\n";

echo '<table>';//

   $nbcol = 6;// 
   $i = 0; 

        $sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
$nbe = mysql_num_rows($sql);//
        while (list($code, $url, $name) = mysql_fetch_array($sql))
        {
            $name = stripslashes($name);
            $name = htmlentities($name);
            $code = htmlentities($code);

            if (($nbe>0) && ($i==0)){ echo '<tr>'; }//
     echo 'td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';//
     $i++;//
     $nbe--;//
      if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }//
     }//
     echo '</table>';//
        } 

        echo "</table><div style=\"text-align: center;\"><br /><a href=\"#\" onclick=\"javascript:window.close()\"><b>" . _CLOSEWINDOW . "</b></a></div></body></html>";
    }  


switch ($op)
{

    case"smilies":
        smilies();
        break;

    case"index":
        index();
        break;

    default:
        index();
        break;
} 

?> 


?>

re

Posté : 14 juin 2007, 20:26
par thebest321
"phrase" pardon
tu vois où il y a un problème mega ?

Posté : 15 juin 2007, 12:00
par Megadeth
Re, désolé pour le délai...

Essaies de retirer l'accolade sous echo '</table';//
   if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }// 
     }// 
     echo '</table>';// 
        }  
de façon à n'avoir que :
   if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }// 
     }// 
     echo '</table>';// 
et dis moi ;)

Mega :)

Posté : 15 juin 2007, 12:26
par Invité
Essayes d'indenter proprement ton code : dès que tu ouvres une accollade, tu décalles tout ce qui suit vers la droite d'une tabulation ou d'espaces, et dès que tu en refermes une tu reviens à gauche d'une tabulation. Cela t'évitera les problèmes d'accolades mal équilibrées :)

Par ailleurs tu ferme deux fois le tableau :
if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }// 
     }// 
     echo '</table>';// 
        }  

        echo "</table><div .... "
Et il te manque le caractère "<" pour ouvrir ta cellule td ici :
if (($nbe>0) && ($i==0)){ echo '<tr>'; }// 
     echo 'td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';// 
     $i++;// 
Sans parler du fait que des variables php entre apostrophes ne sont pas interprétées et que tu verras donc "$url" et "$name" apparaitre en toutes lettres :)
Enfin, si tu entourre ta chaine d'apostrophes, il est inutile de protéger les guillemets, ca rend ton code illisible inutilement :)
echo '<td align="center"><img style="border: 0;" src="images/icones/"' . $url . '" alt="" title=""' . $name . '" /></a></td>';

Posté : 15 juin 2007, 12:31
par Ryle
Groumpf.... bon ben c'était moi :)

re

Posté : 15 juin 2007, 13:36
par thebest321
http://ftpteamnon.free.fr/siteteam/web/ ... tbox_texte

voici ma page
et vocii mon code :
    function smilies()
    {
        global $textarea, $theme, $bgcolor3, $bgcolor2;

       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
       . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n"
       . "<head><title>" . _SMILEY . "</title>\n"
       . "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
       . "<meta http-equiv=\"content-style-type\" content=\"text/css\" />\n"
       . "<link title=\"style\" type=\"text/css\" rel=\"stylesheet\" href=\"themes/" . $theme . "/style.css\" /></head>\n"
       . "<body style=\"background: " . $bgcolor2 . ";\">\n"
       . "<script type=\"text/javascript\" src=\"bbcode.js\"></script>\n";

       echo "<script type=\"text/javascript\">\n"
       . "<!--\n"
       . "\n"
       . "function eff(){\n"
       . "if (opener.document.getElementById('" . $textarea . "').value == '" . _YOURMESS . "')\n"
       . "{\n"
       . "opener.document.getElementById('" . $textarea . "').value='';\n"
       . "}\n"
       . "}\n"
       . "\n"
       . "// -->\n"
       . "</script>\n";

       echo "<div style=\"text-align: center;\"><big><b>" . _LISTSMILIES . "</b></big></div>\n"
       . "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\"><tr><td colspan=\"2\">&nbsp;</td></tr>\n"
       . "<tr style=\"background: $bgcolor3;\"><td align=\"center\"><b>" . _IMAGE . "</b></td></tr>\n";

echo '<table>';//

   $nbcol = 6;// 
   $i = 0; 

        $sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
$nbe = mysql_num_rows($sql);//
        while (list($code, $url, $name) = mysql_fetch_array($sql))
        {
            $name = stripslashes($name);
            $name = htmlentities($name);
            $code = htmlentities($code);

            if (($nbe>0) && ($i==0)){ echo '<tr>'; }//
     echo '<td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';//
     $i++;//
     $nbe--;//
      if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }//
     }//
     echo '</table>';//


        echo "</table><div style=\"text-align: center;\"><br /><a href=\"#\" onclick=\"javascript:window.close()\"><b>" . _CLOSEWINDOW . "</b></a></div></body></html>";
    }  


switch ($op)
{

    case"smilies":
        smilies();
        break;

    case"index":
        index();
        break;

    default:
        index();
        break;
} 

?> 
mais j'ai pas tout compris dans le message de ryle :oops: donc c'est possible que j'ai raté un truc important

Posté : 15 juin 2007, 14:58
par Invité
Cf la dernière ligne de code de Ryle...
echo '<td align="center"><img style="border: 0;" src="images/icones/"' . $url . '" alt="" title=""' . $name . '" /></a></td>';
La tienne ne correspond pas :)

re

Posté : 15 juin 2007, 16:49
par thebest321
j'ai modifié mais les images ne s'affichent pas

dsl

Posté : 17 juin 2007, 16:43
par thebest321
désolé d'être lourd mais vous savez d'où viens le problème ? :?