8797 sujets

Développement web côté serveur, CMS

Bonjour à tous.

Je boss sur un projet assez spécial, que je ne développerais pas ici.
Une des étapes est donc d'enregistrer un morceau de texte qui change toute les heures, il est situé au même endroit, mais compôse parfois plusieurs carractére, et est à la suite d'une ligne compôsant plusieurs fois des carractères qui "recule".

Exemple :
"
Lundi, 0h du matin :
-5 -4 -3,00 -2 -1 0,00<= chiffe le plus récent a droite.
Lundi, 1h du Matin
-4 -3,00 -2 -1 0,00 1,00
2h
-3,00 -2 -1 0,00 1,00 2,0
3h
-2 -1 0,00 1,00 2,0 3
"

Voila, le chiffre le plus à droite est le plus récent (et le plus à gauche le plus ancien).
Déjà, première question : comment "récupérer" le plus à droite, comme vous pouvez le constater, il y a parfois des chiffres de 2, 3 ou 4 carractères ("-" "1" "," "00"), ducoup, même si c'est toujours le 6ème groupe de carractère, il n'est pas vraiment facile de le localiser.




Ensuite, seconde question, comment je pourrais l'enregistrer dans un fichier .txt, avec une incrémentation "passer une ligne puis écrire" toute les heures, exemple :

"
0,00
1,00
2,0
3
"

"Pouquoi ne pas inscrire ces données dans une base de donnée SQL tout simplement ?"
Car, même si je connais à peut près le charabia SQL, je n'aime tout simplement pas, trop de truk écris à droite à gauche soit disant "rangé", moi je veux pouvoir voir simplement si l'incrémentation ce fait en regardant un .TXT !
"il te suffirais de faire une page récapitulant la liste des incrémentations SQL !"
C'trop l'bordel SQL te dis-je xD !
Nan mais c'est tout simplement qu'il y a trop de mot, de truk à retenir, pour simplement faire une liste qui pourra être traité simplement.
Mais je pense que SQL est également une solution plus pratique, mais ... je suis réticent (Je sais bidouiller, je sais comment aller voir un message de Forum PHPBB par exemple, mais les lignes de code, même si je copie colle, c'est trop le bordel, c'est mystique pour moi Smiley lol !) ...
Je ne sais pas créer une table de base de donnée correcte, il faut toujours jongler entre des mots mystique du style "type", "défaut", "attribut", "valeurs" ... Pas la peine que je cherche des tutos sur les BDD ils ne m'apprendraient rien de potable et de significatif, je préfére du concret, du solide, pas du prémâché.


[Voila, une des prochaines étapes, qui n'est pas le sujet de ce topic, sera "comment faire un graphique grace à PHP&Co en récupérant des données à un endroit précis".]

Merci bien pour vos futures conseil Smiley smile .

---

EDIT :
Alors, bon et bien je regarde quand même les outils donnée par une base SQL, et c'est pareil, c'est le bordel, et vasy qu'il y a des termes comme "CHAV" "VARCHAR" "SMALLINT" "TIMESTAMP" a droite et à gauche qui ne veule rien me dire de concret, dois-je prendre la date et l'heure séparément ? ensemble ? comment la traité par la suite ? dois-je mettre un champ pour le numéro de la ligne ? dois-je quoi faire boudiou ?
Trop de mot barbare rien que pour créer une table @lacon, c'est à peine rebutant quoi >< ...
Bon ... avec un peu de bonne volonté je devrais réussir à faire quelque chôse ... ou pas ...
SMALLINT c'est du 16bit bidule, c'est en Héxadécimal visiblement, mais on a droit a des données négative, et pour les autres Attributs de valeur ? on y a pas le droit ? c'est obligatoirement de l'Hexa ? le Décimal c'est possible que cela soit du négatif ?
Si la valeur tombe sur "0%" ou "0" le champ peut être en "NONULL" quand même ? ou justement non.
Bouhouhouh...
Modifié par nemesis666 (08 Feb 2009 - 03:34)
Merci bien Smiley smile , pour ce qui est du pourquoi du comment, les grands principe du SQL, je connais, c'est le reste que je ne sait pas gérer, tout les mots barbares relatif aux bases de données, le "quoi mettre ici pour que cela fasse ça".
Modifié par nemesis666 (08 Feb 2009 - 22:00)
Salut,

c'est clair que Mysql ça change la vie. Smiley cligne

Sinon pour ce que tu veux faire il me semble qu'il suffit de repérer l'heure dans la phrase "Jour, 1h du mat" et ça te donne la dernière heure à droite. Si tu as besoin des autres il suffit de faire -1 autant de fois que nécessaire :
<?php
$chaine = "Lundi, 0h du matin :" ;
$regex  = "#(?:, )([0-9]+)(?:h )#" ;
if(preg_match($regex, $chaine, $matches)) {
	$heure = intval($matches[1]);
	echo "<p>L'heure est égale à ".$heure.".</p>";
}
?>