За последние 24 часа нас посетили 54036 программистов и 1733 робота. Сейчас ищут 823 программиста ...

Вопрос для знатоков

Тема в разделе "PHP для новичков", создана пользователем 715kg, 11 янв 2014.

  1. 715kg

    715kg Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    147
    Симпатии:
    0
    Добрый вечер, у меня такой вопрос.

    Код (Text):
    1. $q = dbquery("SELECT * FROM `graph` WHERE `id`='".$id."'");
    2. $q = dbarray_fetch($q);
    При каждом обращение к файлу, выполняется данный запрос. Можно ли поместить информацию с запроса в сессии?

    Примерно хочу так


    Код (Text):
    1.  
    2. session_start();
    3. if (!isset($_SESSION['counter'])){
    4. $q = dbquery("SELECT * FROM `graph` WHERE `id`='".$id."'");
    5. $q = dbarray_fetch($q);
    6. $_SESSION['counter']=$q;
    7. }else{
    8.  
    9. //тут уже вытаскивать из ссесии
    10. } ;
    Можно ли такое делать? И будет ли это лучше чем постоянно просить запрос у базы?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А что, у тебя такая бешеная нагрузка? я каждый раз запрашиваю кучу всего и ничо.
     
  3. 715kg

    715kg Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    147
    Симпатии:
    0
    Что то подвисает при опросе, долго думает.


    Код (Text):
    1. <?php
    2. // MYSQL DB + others
    3. include '../../../maincore.php';
    4.  
    5. $id = $_GET['id'];
    6. $id  = htmlspecialchars(mysql_real_escape_string($id ));
    7. if(is_numeric($id)){
    8.  
    9. $q = dbquery("SELECT * FROM `amx_graph` WHERE `id`='".$id."'"); //Вывод
    10. $q = dbarray_fetch($q);
    11.  
    12. }
    13. if($q['00'] == ''){
    14. $q['00'] = '0';
    15. $q['01'] = '0';
    16. $q['02'] = '0';
    17. $q['03'] = '0';
    18. $q['04'] = '0';
    19. $q['05'] = '0';
    20. $q['06'] = '0';
    21. $q['07'] = '0';
    22. $q['08'] = '0';
    23. $q['09'] = '0';
    24. $q['10'] = '0';
    25. $q['11'] = '0';
    26. $q['12'] = '0';
    27. $q['13'] = '0';
    28. $q['14'] = '0';
    29. $q['15'] = '0';
    30. $q['16'] = '0';
    31. $q['17'] = '0';
    32. $q['18'] = '0';
    33. $q['19'] = '0';
    34. $q['20'] = '0';
    35. $q['21'] = '0';
    36. $q['22'] = '0';
    37. $q['23'] = '0';
    38. }
    39.  
    40. // x arrays
    41. $c1 = $q['00'];
    42. $c2 = $q['01'];
    43. $c3 = $q['02'];
    44. $c4 = $q['03'];
    45. $c5 = $q['04'];
    46. $c6 = $q['05'];
    47. $c7 = $q['06'];
    48. $c8 = $q['07'];
    49. $c9 = $q['08'];
    50. $c10 = $q['09'];
    51. $c11 = $q['10'];
    52. $c12 = $q['11'];
    53. $c13 = $q['12'];
    54. $c14 = $q['13'];
    55. $c15 = $q['14'];
    56. $c16 = $q['15'];
    57. $c17 = $q['16'];
    58. $c18 = $q['17'];
    59. $c19 = $q['18'];
    60. $c20 = $q['19'];
    61. $c21 = $q['20'];
    62. $c22 = $q['21'];
    63. $c23 = $q['22'];
    64. $c24 = $q['23'];
    65.  
    66. // y arrays
    67. $y1 = 21;
    68. $y2 = 18;
    69. $y3 = 15;
    70. $y4 = 12;
    71. $y5 = 9;
    72. $y6 = 6;
    73. $y7 = 3;
    74. $y8 = 0;
    75.  
    76. //Максимальное число массива.
    77. $max = max($q['00'], $q['01'], $q['02'], $q['03'], $q['04'],$q['05'],$q['06'],$q['07'],$q['08'],$q['09'],$q['10'],$q['11'],$q['12'],$q['13'],$q['14'],$q['15'],$q['16'],$q['17'],$q['18'],$q['19'],$q['20'],$q['21'],$q['22'],$q['23']);
    78. $pmax=$max; //Наибольшее значение
    79. $pmax2=round($max/2); //Средние значение. Наибольшее делим на 2
    80.  
    81.  
    82.  
    83.  
    84.  
    85.  
    86. // don't forget to update the path here
    87. require 'libchartx/GoogleChart.php';
    88. $chart = new GoogleChart('lc', 150, 45);
    89.  
    90. // punctele pe grafic
    91. $chart->chf = 'bg,s,00000077';
    92.  
    93. // punctele pe grafic
    94. $chart->setGridLines(14,50);
    95.  
    96.  
    97. $chart->setScale(0,$pmax+2);
    98. $data = new GoogleChartData(array($c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$c10,$c11,$c12,$c13,$c14,$c15,$c16,$c17,$c18,$c19,$c20,$c21,$c22,$c23,$c24));
    99. $data->setThickness(1);
    100. $chart->addData($data);
    101.  
    102. //$chart->grid_lines(20,50,1,5);
    103.  
    104. // linia din stana
    105. $y_axis = new GoogleChartAxis('y');
    106. $y_axis->setDrawTickMarks(false)->setLabels(array(0,$pmax2,$pmax));
    107. $y_axis->setLabelColor('ffffff');
    108. $y_axis->setFontSize('8');
    109. $chart->addAxis($y_axis);
    110.    
    111. // linia de jos
    112. $x_axis = new GoogleChartAxis('x');
    113. $x_axis->setDrawTickMarks(false)->setLabels(array($y8,$y7,$y6,$y5,$y4,$y3,$y2,$y1));
    114. $x_axis->setLabelColor('ffffff');
    115. $x_axis->setFontSize('8');
    116. $chart->addAxis($x_axis);
    117.  
    118. header('Content-Type: image/png');
    119. echo $chart;
    120. ?>
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а ключи есть?
     
  5. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    это зовется кэширование
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Это зовётся забыл сделать индексы.
     
  7. 715kg

    715kg Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    147
    Симпатии:
    0
    Какие индексы, вы о чем? Я что то еще не знаю? Ссылку на описание в студию если не сложно
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    сколько в бд записей?
    Какие есть индексы?

    Чувак, если тебя вопрос про индексы в бд ставит тебя в тупик, то дело плохо с подготовкой. БД не будет работать быстро без индексов на больших базах. Праймари кей какой? Сделай экспорт бд без данных и покажи тут что там.
     
  9. 715kg

    715kg Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    147
    Симпатии:
    0
    Вы про это имели введу?
    Да, с бд у меня пока что напряг. На форумах узнаю много нового. Так и учусь
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Сделай id индекс primary key auto increment, смени тип, начерта он у тебя варчар?
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Названия полей - гиперосмысленные :)