Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

variables MySql

34 réponses
Avatar
docanski
Bonjour toutes/tous,

Retiré depuis un bon bout de temps du code destiné au Web, suis obligé
de créer un "chat", avec stockage des messages dans une BdD, Free
refusant ceci dans un fichier tete. Pour ce faire, j'ai récupéré dans
mes archives une série de scripts/pages plus ou moins correctes (enfin,
je pense ...) et envoyé le tout sur site. Ça "marche", c'est déjà un bon
point. Néanmoins, j'ai quelques petites problèmes, le 1er étant
essentiellement la profondeur du stockage et son affichage dans la
fenêtre du chat : cet affichage se limite aux 2/3 de la fenêtre et les
messages les plus anciens disparaissent au fur et à mesure de l'arrivée
des suivants. Or, dans la BdD (qui ne comporte qu'une table, celle qui
stocke les messages), j'ai une profondeur de stockage bien plus
importante. Mais elle ne s'affiche pas et je ne vois pas pourquoi.
Dans les variables de cette table, j'ai ceci, lors de leur création :
<code>
`pseudo` VARCHAR(30) NOT NULL,
`message` VARCHAR(255) NOT NULL,
`date` VARCHAR(30) NOT NULL,
`formatage` VARCHAR(10) NOT NULL,
`temp` INT(30) NOT NULL,
</code>
Pour les 4 premiers, pas de problème, j'en comprends l'intérêt et la
présence.
C'est pour le 5ème que je m'interroge et je ne trouve aucune information
sur le web, du moins en français. Serait-ce celle à modifier ?

La requête vers la BdD destinée à l'affichage comporte le code suivant :

<code>
$ide= MYSQL_CONNECT($host_mysql,$user_mysql,$pass_mysql);
mysql_select_db("$bd_mysql");
$tm=microtime();$tm2=explode(" ",$tm);$tm3=$tm2[1];
$query = "DELETE FROM $table WHERE (temp+7777)<$tm3";
mysql_query($query,$ide);
$query = "SELECT * FROM $table ORDER BY id DESC";
$result = mysql_query($query,$ide);
$cpt=0;
while($row = mysql_fetch_row($result))
{
$cpt++;
$coul=substr($row[4],0,1);
$tail=substr($row[4],1,1);
$appa=substr($row[4],2,1);
$msg=$row[2];
if ($appa==1){$msg.=$row2;}
if ($appa==2){$msg2="<B>";$msg2.=$msg;$msg2.="</B>";$msg=$msg2;}
if ($appa==3){$msg2="<I>";$msg2.=$msg;$msg2.="</I>";$msg=$msg2;}
if ($appa==4){$msg2="<U>";$msg2.=$msg;$msg2.="</U>";$msg=$msg2;}
if ($appa==5){$msg2="<STRIKE>";$msg2.=$msg;$msg2.="</STRIKE>";$msg=$msg2;}
if ($coul==1){$msg2='<FONT
COLOR="#000000">';$msg2.=$msg;$msg2.="</FONT>";$msg=$msg2;}
if (snip la suite des couleurs) ...
echo"- <u>$row[1]</u> <font color=\"999999\">[$row[3]]</font> : $msg<br>";
if ($cpt==20) {break;}
}
MYSQL_CLOSE();
?>
</code>

Celle structurant le message est la suivante :

<code>
<?
$ide= MYSQL_CONNECT($host_mysql,$user_mysql,$pass_mysql);
mysql_select_db("$bd_mysql");
$query = "SELECT * FROM $table";
$result = mysql_query($query,$ide);
$taille = "1";
$datime = date("H:i");
$message2 = htmlentities($txt);
$message3 = nl2br($message2);
$formatage=$couleur;
$formatage.=$taille;
$formatage.=$attrib;
$tmp=microtime();$tmp2=explode(" ",$tmp);$tmp3=$tmp2[1];
if ($txt != "" and $pseudo != "")
{
$query = "INSERT INTO $table VALUES
('0','$pseudo','$message3','$datime','$formatage','$tmp3')";
$result = mysql_query($query,$ide);
}
MYSQL_CLOSE();
?>
</code>

Quelqu'un peut me dépanner sur ce coup ?

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/

10 réponses

1 2 3 4
Avatar
docanski
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, Antoine Polatouche ecrit ce qui suit en ce 16/05/2013 15:01 :

$cpt=0;
while($row = mysql_fetch_row($result))
{
$cpt++;



Je n'ai lu qu'en vitesse ce fil de discussion, est-ce que tu te demandes
pourquoi ça n'affiche que 20 enregistrements ?
Si oui retire les 3 lignes avec $cpt...



Bingo !
Le "break" m'avait effectivement mis la puce à l'oreille, je l'avais
éliminé lors de mes essais ... mais oublié les 2 premières lignes :-(

Merci !

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Avatar
docanski
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, Olivier Miakinen ecrit ce qui suit en ce 16/05/2013 18:52 :

Ok, ça doit être un mot-clé réservé alors. Un jour peut-être je
me mettrai à SQL... comme toi un jour peut-être tu te mettras
à PHP. ;-)



Suis trop vieux, mon disque dur est saturé.
J'en arrive même parfois à oublier où j'ai mis mes lunettes ... alors
qu'elles chevauchent mon tarin. :-)

Là où tu as :

$result = mysql_query($query,$ide);
while ($row = mysql_fetch_row($result)) {
...
}

Faire :

$result = mysql_query($query,$ide);
if ($result === FALSE) {
... afficher une page d'erreur...
} else while ($row = mysql_fetch_row($result)) {
...
}



Ok, vu. Mais comme le bouzin fonctionne maintenant, le code n'a plus
besoin d'être testé.
Reste à espérer qu'il ne soit pas à revoir entièrement, vu les éléments
dépréciés ...
Merci pour ton aide !

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Avatar
Otomatic
docanski écrivait :

Suis trop vieux, mon disque dur est saturé.


La connaissance, ce n'est jamais saturé.
Une journée passée sans avoir appris quelque chose, est une mauvaise
journée.
Bientôt 70 piges et je viens de migrer mon site chez un autre hébergeur
pour pouvoir tâter des possibilités de PHP 5.4.14 au lieu de 5.1.3.
--
Les gens que l'on considère comme des fous de travail sont, peut-être,
tout simplement entrain de s'amuser. Einstein
Avatar
Olivier Miakinen
Le 16/05/2013 19:50, Otomatic a écrit :

Suis trop vieux, mon disque dur est saturé.


La connaissance, ce n'est jamais saturé.
Une journée passée sans avoir appris quelque chose, est une mauvaise
journée.
Bientôt 70 piges et je viens de migrer mon site chez un autre hébergeur
pour pouvoir tâter des possibilités de PHP 5.4.14 au lieu de 5.1.3.



« La vieillesse c'est pas automatique » ;-)
Avatar
docanski
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, Otomatic ecrit ce qui suit en ce 16/05/2013 19:50 :
docanski écrivait :

Suis trop vieux, mon disque dur est saturé.


La connaissance, ce n'est jamais saturé.



Je me suis donc mal exprimé mais la suite était explicite : c'est la
mémoire qui flanche.

Une journée passée sans avoir appris quelque chose, est une mauvaise
journée.



Pas faux.

Bientôt 70 piges et je viens de migrer mon site chez un autre hébergeur
pour pouvoir tâter des possibilités de PHP 5.4.14 au lieu de 5.1.3.



Bravo pour la verdeur ! ;-)
Perso, j'en suis même arrivé à délaisser les quelques sites que j'ai commis.

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Avatar
Antoine Polatouche
Le 16/05/2013 19:23, docanski a écrit :
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, Antoine Polatouche ecrit ce qui suit en ce 16/05/2013 15:01 :

$cpt=0;
while($row = mysql_fetch_row($result))
{
$cpt++;





Je n'ai lu qu'en vitesse ce fil de discussion, est-ce que tu te demandes
pourquoi ça n'affiche que 20 enregistrements ?
Si oui retire les 3 lignes avec $cpt...



Bingo !
Le "break" m'avait effectivement mis la puce à l'oreille, je l'avais
éliminé lors de mes essais ... mais oublié les 2 premières lignes :-(



Non, tu as cru: en supprimant le break tu aurais résolu ton problème, et
les lignes $cpt=0 et $cpt++ ne serviraient simplement à rien...


Merci !


De rien ;)
Avatar
docanski
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, Antoine Polatouche ecrit ce qui suit en ce 17/05/2013 03:23 :

Le 16/05/2013 19:23, docanski a écrit :
Le "break" m'avait effectivement mis la puce à l'oreille, je l'avais
éliminé lors de mes essais ... mais oublié les 2 premières lignes :-(



Non, tu as cru: en supprimant le break tu aurais résolu ton problème, et
les lignes $cpt=0 et $cpt++ ne serviraient simplement à rien...


Merci !


De rien ;)



Bonjour,

J'ai relu mes notes (bien obligé de noter ou de stocker les anciens
fichiers modifiés quand il m'arrive encore de taper dans le code) depuis
le début de mes essais et j'ai retrouvé les modifs que j'avais faites,
il y a 3 mois : j'avais alors allongé et non élimliné cette variable
qui, en effet, était destinée à limiter l'affichage, la fenêtre étant à
cette époque réglée sur des plus petites dimensions.
Comme je bidouille directement sur site, j'avais envoyé ce fichier
modifié puis actualisé l'affichage "pour voir". Et malgré cette
actualisation, aucun changement ... :-(
J'ai donc remis le compteur à zéro (enfin ... à 20) et laissé tomber
pendant un moment.
Cela soulève une question : logiquement, l'écrasement d'un fichier sur
site doit tout de même être automatiquement suivi d'effet quand on
actualise la page, non !?
Dans ce cas, Arora (comme je vois que tu es linuxien, tu connais
peut-être ?) que j'utilise habituellement pour cela aurait-il des
défaillances de ce côté-là ou le serveur Free pourrait-il être mis en
cause ?

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Avatar
Olivier Miakinen
[diapublication et suivi]

Bonjour,

Le 17/05/2013 10:20, docanski a écrit :

[...]
Comme je bidouille directement sur site, j'avais envoyé ce fichier
modifié puis actualisé l'affichage "pour voir". Et malgré cette
actualisation, aucun changement ... :-(
[...]
Cela soulève une question : logiquement, l'écrasement d'un fichier sur
site doit tout de même être automatiquement suivi d'effet quand on
actualise la page, non !?



Tout dépend du type d'« actualisation ». Selon les paramètres de cache
que tu as (ou non) configurés sur le serveur, et selon ta commande de
rafraîchissement, la page qui se réaffiche peut être celle en cache dans
ton navigateur, celle en cache sur l'un des éventuels proxys traversés,
ou celle du serveur.

Je diapublie ma réponse sur fciwn et fciwa, avec suivi vers ce dernier,
car je ne suis pas un expert et que d'autres sauront t'expliquer tout ça
bien mieux que moi.

Cordialement,
--
Olivier Miakinen
Avatar
docanski
Alors que les eleveurs et agriculteurs empoisonnent toujours la
Bretagne, docanski ecrit ce qui suit en ce 14/05/2013 17:38 :

Celle structurant le message est la suivante :

<code>
<?
$ide= MYSQL_CONNECT($host_mysql,$user_mysql,$pass_mysql);
mysql_select_db("$bd_mysql");
$query = "SELECT * FROM $table";
$result = mysql_query($query,$ide);
$taille = "1";
$datime = date("H:i");
$message2 = htmlentities($txt);
$message3 = nl2br($message2);
$formatage=$couleur;
$formatage.=$taille;
$formatage.=$attrib;
$tmp=microtime();$tmp2=explode(" ",$tmp);$tmp3=$tmp2[1];
if ($txt != "" and $pseudo != "")
{
$query = "INSERT INTO $table VALUES
('0','$pseudo','$message3','$datime','$formatage','$tmp3')";
$result = mysql_query($query,$ide);
}
MYSQL_CLOSE();
?>
</code>



Il me reste un petit problème à résoudre : l'ordre d'affichage des messages.
En ce moment, chaque nouveau message est affiché au sommet de la fenêtre.
Or, je voudrais qu'il le soit au bas de la fenêtre, dans l'ordre logique
de l'arrivée de ces messages, soit de haut en bas.

Cordialement,
--
docanski

Portail et annuaire du nord-Bretagne : http://armorance.free.fr/
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Avatar
Olivier Miakinen
Le 17/05/2013 12:53, docanski a écrit :

Il me reste un petit problème à résoudre : l'ordre d'affichage des messages.
En ce moment, chaque nouveau message est affiché au sommet de la fenêtre.
Or, je voudrais qu'il le soit au bas de la fenêtre, dans l'ordre logique
de l'arrivée de ces messages, soit de haut en bas.



Ne serait-ce pas 'ORDER BY temp' au lieu de 'ORDER BY id' ou bien
'ASC' au lieu de 'DESC' ?
1 2 3 4