Aller au contenu

Alonnka

Actif
  • Compteur de contenus

    26
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par Alonnka

  1. Salut, Je n'ai pas essayé... J'ai simplement modifié le code qui lançait les procédures stockées pour en faire des requêtes. Ca n'a rien d'une vraie solution mais ça fonctionne.
  2. Salut à tous , Je me réponds tout seul pour vous dire que j'ai un peu avancé. Le soucis sur le message"undefined reference to 'tds_get_size_by_type'" venait simplement du fait que je recompilais tout PHP4 et non que le module MSSQL. Je me suis donc débarrassé de ce problème. Résultat des courses, après compilation et exécution du module j'ai la réponse "255 is an illegal value for the maxlen parameter" à l'exécution de mssql_bind. Je suis donc toujours bloqué... Si vous avez des idées voir une solution nhésite pas.
  3. Bonjour à tous, Je suis sur un souci depuis des heures et Google n'arrive pas à m'aider. J'ai un applicatif web fonctionnant en PHP qui va taper dans une base MS-SQL à coup de procédures stockées. Jusqu'ici cet applicatif tournais sur un serveur Windows 2K avec IIS. Je suis en train d'essayer de le passer sous Linux (Debian) avec Apache (PHP-4.4.9 en CGI). Le module MSSQL m'a obligé à installer FreeTDS, ce que j'ai fait sans trop de difficulté et les requêtes MS-SQL sont bien envoyées au serveur. Mon souci arrive au moment où je souhaite envoyer une procédure stockée au serveur. Jai systématiquement le retour "stored procedure execution failed" que la procédure est 5 paramètres ou 0. J'ai fouillé un peu partout sur le net et la piste la plus prometteuse que j'ai trouvé est ici mais j'ai de nouveau un souci. Je modifie bien le code mais au moment de compiler PHP (make) j'ai un message "undefined reference to 'tds_get_size_by_type'" et là je suis bloqué. Si quelqu'un à une idée je suis preneur. PS : j'ai mis mon message ici car c'est un problème système et non un souci de script PHP, j'espère ne pas m'être trompé.
  4. Non . Comme tu l'as dis le principe de PHP c'est de charger une page et si tu en lance une autre tu la recharge. L'IFRAME c'est inclure une page HTML dans une autre. L'INCLUDE de PHP c'est faire un copier/coller du fichier cible à l'endroit de lINCLUDE.
  5. Oui, d'une façon générale il est préférable d'avoir le maximum de similarités entre ta plateforme de DEV et celle de PROD. Bien souvent la même version dApache/PHP suffit mais ton cas particulier prouve que ce nest pas toujours le cas . Je te suggère donc de créer un sous domaine pour ton site sur ton serveur local (en utilisant un port différent par exemple) et là tu remet les lignes que je t'ai donné plus haut et ça devrait marcher.
  6. Salut, Si je comprends bien, ce qui est un sous-domaine sur le serveur de PROD n'est qu'un sous-répertoire sur ton serveur de DEV... Déjà, ça c'est pas tip top mais bon, tu dois pouvoir bricoler quelque chose. Dans le fichier de configuration de ton serveur local il y a aussi un paragraphe qui traite des alias pour tout ton serveur. Donc, je pense que tu peux faire : ScriptAlias /site_dev/sd/includes/ "f:/site_dev/includes/" Après, à ce stade je n'ai jamais testé.
  7. Je te la refait alors . Ton code, à la fin, il donne ça : $totalquery = doquery("SELECT SUM(valeur) FROM {{table}} WHERE id IN ($userrow["prodlist"])", "valeur"); $total = mysql_result($totalquery,0); En faite dans la requête SQL : WHERE id = '98' OR id = '99' OR id = '100' C'est la même chose que : WHERE id IN (98,99,100) Donc il est inutile de faire tout ton bricolage pour transformer ta liste de produits. Quand au SELECT et bien SUM(valeur) veux dire que tu veux la somme du champ "valeur". Voila, j'espère que tu as compris . Normalement non, - Si tu index les champs sur lesquels tu fais souvent des WHERE - Si tu fait des "SELECT champ1, champ2" plutot que des "SELECT *"
  8. Bonsoir, CODE $valeursomme=0;$itemslist = explode(",",$userrow["prodlist"]); $querystring = ""; foreach($itemslist as $a=>$ { $querystring .= "id='$b' OR "; } $querystring = rtrim($querystring, " OR "); $itemsquery = doquery("SELECT * FROM {{table}} WHERE $querystring ", "valeur"); while ($row = mysql_fetch_array($itemsquery)) { $valeursomme=$valeursomme+$row["valeur"]; } $updatequery = doquery("UPDATE {{table}} SET somme='$valeursomme' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); Si c'est ça que tu cherches à faire captain_torche avait raison : CODE $itemslist = explode(",",$userrow["prodlist"]);$querystring = ""; foreach($itemslist as $a=>$ { $querystring .= "id='$b' OR "; } $querystring = rtrim($querystring, " OR "); $totalquery = doquery("SELECT SUM(valeur) FROM {{table}} WHERE $querystring ", "valeur"); $total = mysql_result($totalquery,0); $updatequery = doquery("UPDATE {{table}} SET somme='$total' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); Je ne sais pas pour MySQL mais pour MS SQL il n'y a même pas besoin de s'occupé à boucler sur $userrow["prodlist"] pour transformer les "," en "OR" car on peut écrire "WHERE id in ($userrow["prodlist"])" les nombres séparés par des virgules passent très bien.
  9. Moi j'ai proposé ça car apparemment il disait afficher chaque ligne donc une adition à chaque boucle ne me paraissait pas plus compliquer. Apres si il veut juste la somme en effet la requête seule suffit largement. +1 pour les autodidacte .
  10. - Tu définis une variable qui vaut 0 avant ta boucle. - A chaque boucle tu lui ajoutes ta valeur. - A la fin de ta boucle tu l'affiches.
  11. Il semble que le souci sous Firefox c'est les cellules vides mais comme elle sont, apparemment, toujours vide il te suffis de leur donner une couleur de fond blanche.
  12. Salut, Si dans la source de ta page tu modifies : <style type="text/css"> td { white-space: nowrap; background-color:#B0C4DE; } th { background-color:#483D8B; color:#FFFFFF; } </style> En : <style type="text/css"> table { border-collapse:collapse; } td { white-space: nowrap; background-color:#B0C4DE; border-style:solid; border-width:2px; border-color:#FFFFFF; } th { background-color:#483D8B; color:#FFFFFF; } </style> Le résultat te parait-il bon ? Note que sous Firefox ça pose des petits soucis sur certaine cellule mais je pense que c'est plus du au code HTML qu'a l'interprétation CSS.
  13. Oups ! Excuses moi, un boulot prenant . Dans la config d'apache tu peux tout simplement faire un alias de ton répertoire "includes" comme étant un sous répertoire de ton sous domaine exactement comme c'est fait pour le répertoire cgi-bin. Pour cela dans la partie qui gère ton hôte virtuel tu ajoutes : ScriptAlias /includes/ "/ton/chemin/absolu/vers/includes/" Sous Windows c'est pareil sauf que le chemin est à écrire d'une façon un peu barbare : ScriptAlias /includes/ "c:/ton/chemin/absolu/vers/includes/" De cette façon quand tu appelleras un fichier contenu dans &quot;http://sd.monsite.com/includes/" ben le serveur ira le cherche à l'adresse absolu. J'avais eu à utiliser cette solution pour un site abusant des sous domaines et moi ne voulant pas copier 20 fois mon répertoire "class" dans chaque répertoire des sous domaines. Comme toujours il doit y avoir dautres solutions mais j'avais bien aimé celle la .
  14. Salut, As-tu accès à la config du serveur web ?
  15. Bonjour, Personnellement quand j'ai un formulaire de recherche qui une fois validé affiche les résultats dans la même page, je met les informations de recherche de l'utilisateur dans une ou plusieurs variables de session et avec la fonction header() je recharge la même page. Ensuite ma recherche se fait sur les variables de session et non sur celle du formulaire (j'espère avoir été clair ). L'intérêt de la chose c'est que si la personne part de la page et y reviens les variables de session sont elles toujours là et le résultat de la recherche s'affiche de nouveau (même mieux si la page ou est partis l'utilisateur avant de revenir a modifié le résultat de la recherche celui-ci est mis à jour). Seul point négatif : on est plus sur le bon forum pour ma solution car on quitte le (X)HTML et on va vers PHP .
  16. Si tu fais : CODE echo substr($page_produit,31); Ca te convient comme résultat ?
  17. Ca a été mon premier reflex de dire qu'il serait plus simple de ne pas afficher tous les livres mais on me demande d'avoir une visualisation global, sur plusieurs jours et pour plusieurs livres (pas tous mais souvent toute une catégorie). Sur cette visualisation global j'ai des liens vers une fiche de retour de livre (là je part de la page de visualisation et ça va tout de suite mieux). Merci en tout cas à tous pour votre aide, je vais voir ce que je peux faire.
  18. Le javascript en question n'est malheureusement pas de moi et je dois avoué qu'il me dépasse un peu, de ce que j'ai compris de son utilité il gère toute la page ; la page est actuellement qu'une immense fonction javascript (près de 100Ko) qui ne s'arrête jamais d'où certainement une des cause des problèmes de lenteur. Là je vois 3 suggestion :1) indexé les champ : J'ai déjà fait cette demande à la personne qui gère le système et elle a refusé (je vous passe les détails mais vous comprendrez que la personne nest pas forcement très maline), 2) LIMIT, là c'est tout vu le serveur est un serveur MSSQL donc le paramètre LIMIT on l'oublis , 3) Faire les requête en début de script : j'ai toujours fais ça . Je vais potasser ça un peu mais je ne suis pas un fan de javascript.
  19. Alors actuellement le code des pages est en effet extrêmement lourd (surtout à cause d'une utilisation plus qu'abusive du javascript) mais cela n'intervient pas sur le temps de génération de la page mais sur son affichage et son interprétation par le client. Or, mon problème intervient aussi bien sur un vieux PC que sur une machine de course. Ca je ne m'en suis pas caché la BDD est en effet une véritable catastrophe mais j'ai aussi dit que malheureusement pour le moment je ne peu rien y faire. Ce n'est pas une partie de la page mais en faite les nouvelles information de la BDD. Exemple : un livre viens de revenir et il a été rentré par quelqu'un d'autre, je voudrais que la ligne du livre s'enlève chez les autres et ce sans avoir à recharger toute la page. Je me doute bien que je ne peux pas le faire automatiquement mais faire en sorte que les différences se mettent à jour automatiquement une fois par minute.
  20. Bonjour à tous, Je vais tenter de vous expliquer au mieux mon problème. J'ai actuellement un outils de gestion (web) en PHP pour gérer les livres empruntés dans une bibliothèque. Loutil fonctionnait bien au début mais maintenant que le nombre de livre emprunté simultanément a énormément augmenté loutil rencontre des problèmes de lenteur. En effet, il dois à chaque action faite sur la page (ex : livre rentré, livre, sorti, retard prévu, ...) la recharger complètement. Donc requête SQL puis affichage des 150 livres sortis (ou pas) avec des informations diverses et variées et ceci prend un temps considérable (la base de donnée n'est pas forcement super bien structurée non plus mais ça je n'ai pas la main dessus). Bref je cherche un moyen de réduire ce temps d'exécution. La solution de refaire complètement l'outil a été acceptée mais ma question c'est le faire avec quoi. Si je le refais en PHP je risque d'avoir à nouveau des problèmes de lenteur (même en programmant objet). On m'impose un outil web pour des raisons d'utilisation multi-plateforme. Le top ça serais un langage capable de ne pas recharger la page, juste modifier la ligne à l'écran (et dans la BDD) et avec un rafraîchissement des "différences" toute les minutes par exemple (oui car plusieurs personne travail sur l'outil en même temps). Je me suis documenté sur le langage PERL mais jai peur davoir le même problème quavec PHP. Quelqu'un aurait-il un langage à me conseiller ?
  21. Alonnka

    Connexion automatique

    Essaies de mettre : setcookie("2aiconnauto","$_SESSION[d_user]",time()+3600*24*365,"/","",0); Et vérifies bien que ta création de cookie vient avant tout (x)HTML ou quoi que ce soit qui génère un affichage.
  22. Alonnka

    Connexion automatique

    Chez moi le cookie n'est même pas créé, j'ai bien le cookie de session dès que jarrive sur le site mais aucun autre cookie que je test en cochant la case ou pas. Es-tu sûr de ne pas avoir fais une erreur à la création du cookie ? Peux-tu nous montrer cette partie de ton code ?
  23. J'avoue ne pas trop comprendre ce que tu veux faire... Pour le moment tu as ça : <span style="font-size:10px; line-height:normal">Ceci est du texte taille 10<span style="font-size:14px; line-height:normal">Sauf ici c'est du 14</span>Et puis là re du 10.</span> Si ce que tu veux c'est que tout ton texte soit en taille 10, ben tu enlèves ton deuxieme bloc tout simplement mais je doute que ce soit ça la question .
  24. J'ai fais ça : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Test</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em; margin: 0; padding: 0; } #conteneur { width:250px; } #menu { margin-top:10px; width:55px; height:100%; float:left; padding:10px; background-color:#FF00FF; } #bloc { padding-top:10px; margin-left:40px; padding-left:40px; background-color:#FFFF00; } </style> </head> <body> <div id="conteneur"> <div id="menu"> Item 1<br /> Item 2<br /> Item 3<br /> </div> <div id="bloc"> Texte Texte<br /> Texte Texte<br /> Texte Texte<br /> Texte Texte<br /> Texte Texte<br /> Texte Texte<br /> Texte Texte<br /> </div> </div> </body> </html> Je ne sais pas si c'est ce que tu veux mais si c'est le cas ben... Bonne chance pour régler le problème de decalage sous IE . Après relecture je pense que c'est justement ce problème pour lequel tu cherches une solution... Ben je la cherche aussi alors .
  25. Parfait... Facile à prendre en main. J'ai remplacé tout mes cadres fait avec des "table" par ce code et ca marche parfaitement. Merci à toi pour ce lien.
×
×
  • Créer...