PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

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

#1 Re : MySQL, PostgreSQL, etc... » LIMIT qui ne porte pas sur le nombre de résultats » 19-11-2013 07:30:05

Ah je me suis piégé moi-même, je n'ai pas de borne à droite (donc pas de :b) et dans ta requête il va y avoir tous les résultats (alors que je veux pouvoir n'en prendre qu'un certain nombre).

Je corrige mon problème et ma requête :

SELECT id FROM t WHERE num IN ( SELECT num FROM t WHERE :a < num GROUP BY num ORDER BY num ASC LIMIT :x );

Si ma table ressemble à

1 | 1
2 | 1
3 | 2
4 | 3
5 | 3
6 | 3
7 | 4
8 | 4

et que je bind a = 0 et x = 3 je veux récupérer les enregistrements d'id entre 1 et 6 (inclus).

#2 MySQL, PostgreSQL, etc... » LIMIT qui ne porte pas sur le nombre de résultats » 19-11-2013 07:30:05

moijhd
Réponses : 3

Bonjour,

Soit une table t à deux colonnes id et num.
num est une valeur qui peut être sur plusieurs lignes.

SELECT id FROM t WHERE num IN ( SELECT num FROM t WHERE :a < num AND num <= :b GROUP BY num LIMIT :x );

Comment améliorer cette requête (en supprimant la requête secondaire) ?

Merci.

#3 Re : Forum Général PHP » Rechercher une valeur directement supérieur dans une table MYSQL. » 18-07-2013 21:25:45

Bonsoir,

Je ferais deux requêtes avec une union entre les deux résultats. Pour trouver D=4, je cherche les valeurs qui sont inférieurs à 4,5, je les trie par ordre décroissant, et je récupère la première. Pareil pour la E=5 avec supérieur et croissant.

#5 MySQL, PostgreSQL, etc... » Présence ou non d'un élément dans une table » 25-06-2013 12:26:05

moijhd
Réponses : 3

Bonjour,

Je n'arrive pas à mettre les mots sur ce que je veux faire : voici un exemple.

Dans une table j'ai juste des entiers triés : 2, 3, 6, 7, 9.

Je voudrais en sortie de requête : 1, 1, 0, 0, 1, 1, 0, 1
soit un premier 1 pour dire que 2 est présent dans l'étendue 2 - 9,
un second pour dire que 3 est présent,
un 0 pour dire que 4 est absent...etc.

Je demande une requête toute faite (je sais que vous détestez ça) ou un morceau de requête pour m'aider smile

Merci !

#6 Re : Forum Général PHP » Erreur dans mon code » 08-03-2013 18:59:10

Visiblement tes chemins d'accès sont érronés. Mais a priori tu as corrigé.

Pour la page blanche je ne sais pas trop surtout s'il n'y a plus d'erreur.

#7 Re : Forum Général PHP » Erreur dans mon code » 08-03-2013 18:59:10

Ca serait plus facile avec l'erreur PHP qui va avec surtout...

#8 Javascript » (Pré-)Compiled Javascript Template » 27-01-2015 07:38:50

moijhd
Réponses : 1

Bonjour,

Pour pousuivre la discussion précédente (qui a un peu dérivé), je propose la discussion suivante.

J'ai beaucoup regardé les systèmes de template en Javascript. Le dernier arcticle que j'ai lu est, je pense, un bon résumé des considérations à avoir et des principaux systèmes existants.

L'une des conclusions à laquelle je suis arrivé c'est que pour avoir un système de templates efficace, il fallait avoir des templates pré-compilés (ou au moins compilés).

La définition que j'ai trouvé pour cette notion est la suivante : une fonction qui prend en paramètres les données, qui contient une chaine de caractères avec l'emplacement des données (et les éventuelles structures conditionnelles) et qui retourne la chaine de caractères avec les données aux bons endroits smile soit les fonctions suivantes par exemple :


function render_precompiled_template(data){
 return 'Coucou ' + data.prenom;
}

function render_precompiled_template_with_conditional_structures(data){
 var html = '';
 if(data.tab.length == 0){
  html += 'Pas d\'enregistrement';
 }
 else{
  for(var d in data.tab){
   html += '<li>' + d.prenom + '</li>';
  }
 return html;
}
 

Est-ce bien ça la définition ? Ou plus généralement, est-ce bien ça la but ?

#9 Re : Javascript » Une requête ajax, plusieurs <div> rafraichis » 15-01-2013 15:04:15

Bonsoir,

Je relance avec une question :

Il a été évoquée la récupération du HTML statique (et la cache). Comment est-ce que je récupère ce fichier HTML ?

Ma solution : mon serveur retourne un JSON avec data, directives, html statique et id de l'élément à modifier ?

Qu'en pensez-vous ?

PS1 : requète AJAX avec jQuery, PURE pour le rendu.
PS2 : plus précisément, je place le HTML statique dans un élément de la page, puis j'applique PURE sur cet élément avec data et directives.

#10 Re : Javascript » Une requête ajax, plusieurs <div> rafraichis » 15-01-2013 15:04:15

J'ai bien vu tout ça mais ça me plait pas ^^ (surement à tort)

#11 Re : Javascript » Une requête ajax, plusieurs <div> rafraichis » 15-01-2013 15:04:15

Hey !

Un up pour que vous ne vous ennuyiez pas pendant les vacances : d'un point de vue formel, n'est-il pas génant d'avoir des directives du style "#{size.val} - #{size.name}" où d'une part le tiret devrait appartenir au template HTML et où d'autre part on est contraint d'utiliser des "variables" du style "#{xxx}" ?

Là où je veux en venir c'est que le tiret ne devrait pas faire parti des directives mais du template (et donc du code HTML) ? Le template HTML que l'on a est incomplet. De la même façon, j'ai l'impression que si l'on voulait par exemple ajouter un attribut du style name="element_id_XXXX" (où XXXX est un identifiant quelconque, une donnée), il faudrait dans les directives indiquer "element_id_XXXX" qui devrait, de mon point de vue, appartenir au fichier HTML.

Finalement, un template HTML qui fonctionnerait avec du Javascript et DOM serait contraint de ne pouvoir écrire que des attributs entièrement ou des données entre deux balises (setAttribute ou innerHTML).

Directives extraites de l'exemple 10 de PURE :


{
  "option": {
    "size <- sizes": {
      ".": "#{size.val} - #{size.name}",
      "@value": "size.val",
      "@selected": "size.sel"
    }
  }
}
 

#12 Re : Javascript » Une requête ajax, plusieurs <div> rafraichis » 15-01-2013 15:04:15

Si j'ai bien compris les premières lignes, si j'ai un nouvel affichage, je vais pouvoir utiliser la méthode 2 et si je veux mettre à jour l'affichage qui existe déjà je peux utiliser la méthode 4 et jouer avec DOM ?

Quant aux résultats sur les templates javascript j'en ressors un qui me plait plus que les autres : PURE qui permet de garder à la fois le HTML et l'objet JSON de data intact (en contre partie il y a un script d'adaption). C'est pour le cas où je voudrais générer une page en HTML entièrement du côté client.

#13 Re : Javascript » Une requête ajax, plusieurs <div> rafraichis » 15-01-2013 15:04:15

Donc ok pour la structure Solution 4 smile que nous prenons.

Je fais une requète SQL, j'obtiens un tableau PHP de résultats, j'applique la fonction json_encode à ce tableau, je récupère les données du côté client et...et comment je fais pour générer mon HTML et pour gérer un système de template en JSON !?

(
j'ai pas encore fait fini ma recherche google :
Solution 4.1 : côté client donc, transfomer le JSON en XML puis XSLT big_smile Je rigole déjà de cette solution smile
Solution 2 : c'est quand même assez facile les templates PHP...qu'est ce qui peut battre :

<html>
<table>
<?php
foreach($objets as $objet)
{
?>
<tr><td><?php echo $objet->tdValue;?></td></tr>
<?php
}
?>
</table>
</html>

 

ou alors à quel point est-ce mal ?

Et de la même façon, le template XSL est assez facile à gérer.

)

#14 Re : Javascript » Une requête ajax, plusieurs <div> rafraichis » 15-01-2013 15:04:15

J'avais un second problème : jusqu'à présent je générais la page compléte avec un système simple de template où j'incluais des fichiers. Dans la mesure où je veux pouvoir par exemple créer deux variables dans mon objet JSON, il fallait que je récupère le contenu de mon include dans une variable. C'est la solution que j'ai trouvé sur le net.

Plus précisément, à la place de


<?php
// ...
include('menu.phtml');
// ...
include('page.phtml');
//...
?>
 

j'ai


<?php
// ...
ob_start();
include('menu.phtml');
$tab['menu'] = ob_get_clean();
// ...
ob_start();
include('page.phtml');
$tab['page'] = ob_get_clean();
//...
echo json_encode($tab);
?>
 

Il me reste maintenant à générer par exemple le renouvellement ou non de la page ou du menu (ou de tout autre partie).

#15 Re : Javascript » Une requête ajax, plusieurs <div> rafraichis » 15-01-2013 15:04:15

En conclusion, je vais partir sur l'objet JSON comme dans les liens que j'ai donnés. En utilisant effectivement json_encode et ob_start() pour générer mon html depuis des include.

#17 Re : Javascript » Une requête ajax, plusieurs <div> rafraichis » 15-01-2013 15:04:15

Oui effectivement j'ai aussi envisagé une solution à base de XML. Appellons cette solution 3 smile

J'avais d'ailleurs, il y a quelques temps, ouvert un sujet avec du XML et du XSLT : SQL => XML => XSLT & PHP => HTML. La conclusion était que le système était lourd en particulier parce qu'il fallait traduire le résultat d'une requète SQL en un document XML avant de pouvoir le transposer en HTML. Dans le cas présent, c'est toujours le cas. C'est l'une des raisons qui me poussait à vouloir renvoyer du HTML et non des données XML à transformer !

En résumé, le serveur retourne au client un code XML du style <root><data id='id_div1'>...</data ><data id='id_div2'>...</data ></root> puis du côté client on applique une transformation avec XSLT ?

Pour revenir à mon tableau javascript, la solution 2, disons que c'est un simple objet JSON dont les variables contiennent du HTML. Et la solution 1, c'est un objet JSON qui contient par exemple l'id d'un div et la référence d'une vue dans la session à récupérer (c'est pas très clair, je reviendrai dessus s'il y a des questions smile).

#18 Javascript » Une requête ajax, plusieurs <div> rafraichis » 15-01-2013 15:04:15

moijhd
Réponses : 27

Bonjour,

Généralement, on envoie une requète et on récupère du code HTML que l'on place par exemple dans le div que l'on veut. Comment fait-on si on veut récupérer plusieurs portions de code pour mettre dans différents div.

Mes solutions :
1. Retourner non pas du HTML mais un json avec plusieurs requètes à éxécuter pour rafraichir les différents div
2. Retourner un tableau javascript tab['id_div1'] = '<html>...';  tab['id_div2'] = '<html>...';

Aucune des deux solutions auxquelles j'ai pensées ne me plait.

Pouvez-vous me donner plus de méthodes ?

Merci !

PS : finalement la question porte sur la structure des données que l'on peut échanger.

J'ai eu d'autres idées tordues où je stocke dans une $_SESSION les paramètres des parties de page à afficher. Puis j'envoie une requète sur chaque div en créant un affichage suivant les paramètres de la session.

#19 Re : Forum Général PHP » Un site internet compilé ? » 10-11-2012 20:34:43

Je suis en train de chercher un premier emploi. J'ai eu des interviews chez Facebook, Amazon et Amadeus. D'une part, ils touchent maintenant à beaucoup de technologies différentes. D'autre part, les offres qu'ils ont sont pour beaucoup sur du C/C++. Bon évidement, ils font du software. Mais je suppose qu'à un moment ou un autre, s'ils font développer des gens en C/C++, c'est pour l'interphaser avec du PHP ou autre chose à la limite.

Je me trompe peut-être. Ma question est très ouverte par rapport aux principes et aux raisons "de mon impression" et par rapport aux techniques envisageables.

[En relisant ce que je viens d'écrire, je fais peut-être mal la différence entre un site internet et une application pour le Cloud.]

#20 Re : Forum Général PHP » Un site internet compilé ? » 10-11-2012 20:34:43

Justement quand je parle de gros sites, je pense facebook ou d'autres sites à grand traffic ou des comparateurs d'offres, et maintenant, j'ai l'impression qu'ils ne développent plus qu'en C/C++ d'où ma question de savoir comment un tel développement s'organise.

#21 Re : Forum Général PHP » Un site internet compilé ? » 10-11-2012 20:34:43

Je pense que le PHP a de beaux jours devant lui. Néanmoins, si on avait un script PHP lourde et lent, comment et par quoi pourrait-ton le remplacer (tout en maximant les autres critères (portabilités par exemple) ?

#22 Forum Général PHP » Un site internet compilé ? » 10-11-2012 20:34:43

moijhd
Réponses : 8

Bonjour,

On m'a laissé comprendre que de grands sites web redéveloppaient leur site internet avec des technologies compilées. Je suppose donc que cela signifie supprimer le PHP pour le remplacer par du C et du C++ ? Les raisons : économie d'énergie et vitesse (ce qui est un peu lié) ! Excepté l'allongement - a priori - du temps de production, cela parait plutôt s'inscrire dans le contexte d'aujourd'hui.

J'ai fait une rapide recherche sur internet. La méthode qui revient immédiatement consiste à utiliser la librairie CGI.

Avez-vous d'autres hypothèses techniques et logiques ? Qu'en pensez-vous plus généralement ?

Merci !

#23 Re : Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

Hey !

D'abord, je voudrais savoir à quoi sert le substr ? Si le champ DateDebut est une date alors il y a des traitements plus apropriés pour récupérer le mois que le substr (en utilisant des traitements sur le type date).

C'est par là que je commencerais smile

#24 Re : MySQL, PostgreSQL, etc... » compter le nombre de ville sans connaitre les nom. » 10-09-2011 22:54:31

Bonjour,

Je crois que pour faire ça il faut utiliser la fonction "COUNT(*)" avec "GROUP BY ville". Il faut remplacer l'étoile par le champ qu'il faut.

Ca donne quelque chose du style

SELECT COUNT(*) FROM ma_base GROUP BY ville

Je ne sais plas trop mais ça devrait t'orienter.

#25 Re : Forum Général PHP » SQL => XML => XSLT & PHP => HTML » 19-09-2012 11:36:15

Je ne fais toujours rien ! Je pense à faire smile

J'essaie d'arriver à un modèle théorique à peu près convenable - bien que lourd - et voir ce que cela donne ^^

Merci pour vous indications, je vais encore réfléchir !

Pied de page des forums

Propulsé par FluxBB