mysql_fetch_assoc (row) бави 2/3 секунди

nqkafff

Registered
Здравейте, имам следния проблем. На всяка страница съм сложил заявка към базаданни за да взимам текста на footer-a. Заявката в phpmyadmin се изпълнява за 0.0008 sec, по това разбирам че проблема ми е в mysql_fetch_row. Кода е следният:

Код:
<?php
    session_start();
    
    include '../include/config.php';
    
    $result = mysql_query("SELECT footer FROM conf") or
                die('Query грешка: '.mysql_error());
                
    $row= mysql_fetch_assoc($result);
    $foot=$row['footer']; 
?>

Код:
<?php echo $foot;?>
Преди да сложа заявката за фоотера, зареждаше бързо :(

Търсих в гоогле за оптимизация на mysql_fetch_row, но без успех.

Благодаря предварително :wink: (бтв: фоотера ми е varchar(100), а самият фоотер е "© 2013 All Rights Reserved | Privacy Policy")
 
6182128A.png


http://prikachi.com/images/128/6182128A.png
 
Мисля че ти е грешна схемата. Няма ли да е по-добре следната структура на conf:

- id (int, primary key auto increment)
- key (varchar)
- value (varchar)


по този начин е доста по-гъвкаво

Това е само предложение, не знам дали има общо със забавянето :)
 
nqkafff каза:
не ми трябва id защото ще ползвам само една column. Няма да има 2ра

винаги ползвай id това е нещо като закон :)
 
същата работа, дропнах таблицата и направих нова
id: int ai
nav: varchar(100)
footer: varchar(100)
 
ivo75 каза:
Аз не мога да разбера защо за футър ползваш данни от бд!?

клиента иска от админ панела да може да сменя текста на фоотера за всички страници

едит: Иска нещо като wordpress да може всичко да се едитва през админ панел
 
Провери колко връзки имаш към базата данни, колко заявки.
Дай на таблицата , id да е primary key. AI би трябвало да ти го изиска...но не съм сигурен.

Ако ще има толкова много информация , която да се редактира , най-добре си ги кръсти колоните key - value и търси по уникален ключ.

А ако все още продължава да се забавя погледни сървъра. Ако не от него. то пробвай да прегледаш нещата през xdebuder : http://xdebug.org/docs/
 
По-вероятно е проблема да е на друго място. Провери какво имаш преди footer-a, преди мястото където включваш този файл, преди config.php и във config.php файла.

Другия вариант е да кешираш. Защо на всяка страница трябва да изпълняваш заявка, която връща същия резултат, докато клиента ти не промени текста?
 
Пробвай

SELECT footer FROM conf LIMIT 1

А ти как update-ваш данните на футъра като нямаш id?
 
Просто му е супер грешна таблицата, не знам защо не иска да я направи id - key - value ......
 
deam0n каза:
Пробвай

SELECT footer FROM conf LIMIT 1

А ти как update-ваш данните на футъра като нямаш id?

Код:
<?php

    session_start();
    //error_reporting(0);
    include '../../include/config.php'; //Връзка с база данни
    
    if($_SESSION['is_logged']==true) {
        $foot=$_POST['foot'];

        // Create database
        $result = mysql_query("UPDATE conf SET footer='$foot'") or 
                    die('Query error result: '.mysql_error());
                    
        header('Location: ../edit.php?succ=1');
    }
    else {
        header('Location: ../../index.php');
    }
?>


djman каза:
Просто му е супер грешна таблицата, не знам защо не иска да я направи id - key - value ......

направих я ид-кей-валуе ..



-------------------------------------------
code на index.php

Код:
<?php 
    session_start();
    
    include 'include/config.php';
    
    $result = mysql_query("SELECT footer FROM conf LIMIT 1") or
                die('Query грешка: '.mysql_error());
                
    $row= mysql_fetch_row($result);
    $foot=$row[0];                                
?>
<!DOCTYPE html>
<html lang="en">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="keywords" content="keywords...">
	<meta name="description" content="some description">
	<meta name="author" content="MGMDesignBG">
        
        <link type="text/css" rel="stylesheet" href="css/style.css">
    </head>
    <body>
        <div id="top"><p class="topp">AllSpec Professional Property Inspections Inc is an independent home inspection company serving Broward, Palm Beach and Miami Dade Counties</p></div>
        <header>
            <div id="logo"><a href="index.html"><img src="img/logo.png" alt="logo"></a></div>
            
            <nav class="nav1">
                    <ul>
                        <li><a href='index.php'><span>Home</span></a></li>
                        <li><a href='#'><span>Starting Place</span></a></li>
                        <li><a href='faq.php'><span>FAQ</span></a></li>
                        <li><a href='#'><span>Foreclosure</span></a></li>
                        <li><a href='#'><span>Rentaspector</span></a></li>
                        <li><a href='#'><span>Info</span></a></li>
                        <li><a href='#'><span>Contacts</span></a></li>
                    </ul>
            </nav>
        </header>
        <div id="bg_top"> </div>
        <div id="slider"><a href="#"><img src="img/slider.jpg" alt="slider"></a></div>
        <div class="tabs">
            <div class="tab">
                <p class="he1">What</p>
                <p class="he2">Allspec is an Independent
Home Inspection 
Company
                </p>
                <p class="he3">The home inspection is a visual non-
intrusive examination of the structural 
systems, mechanicalvsystems and 
appliances in and on the property...</p>
                <a href="#more"><img class="more" src="img/button_more.jpg" alt="more"></a>
            </div>
            <div class="tab">
                <p class="he1">Why</p>
                <p class="he2">Why choose AllSpec
Professional Property 
Inspections
                </p>
                <p class="he3">Because we offer an independent 
objective inspections so that you will know 
the conditions and most of the costs 
associated with the home you...</p>
                <a href="#more"><img class="more" src="img/button_more.jpg" alt="more"></a>
            </div>
            <div class="tab">
                <p class="he1">Where</p>
                <p class="he2">Know more about
Our Service Areas
                </p>
                <p class="he3">Home inspections in Broward County, 
Palm Beach County, and Miami Dade 
County by a certified, professional, 
licensed, and independent home 
inspector...
                </p>
                <a href="#more"><img class="more" src="img/button_more.jpg" alt="more"></a>
            </div>
            <div class="tab">
                <p class="he1">Bank Servicing</p>
                <p class="he2">Why choose AllSpec
Professional Property 
Inspections
                </p>
                <p class="he3">Because we offer an independent 
objective inspections so that you will know 
the conditions and most of the costs 
associated with the home you...
                </p>
                <a href="#more"><img class="more" src="img/button_more.jpg" alt="more"></a>
            </div>
        </div>
        <div id="content">
            <br><br><br><br><br><br><br><br><br><br><br><br><br>
            <div class="cimg">
                <a href="#"><img src="img/img.jpg" alt="img"></a>
                <p class="ce1">Buying a home is like getting married...</p>
                <p class="ce2">You really don't know what you are getting into until you live together. Well...
 We will tell you what you are getting into before you move in.</p>
                <p class="ce3">AllSpec Professional Property Inspections Inc., is a Florida State Corporation, licensed and insured to do 
property inspections. Me, Mitchell Captain, is the owner and incorporator, belongs or has belonged to the 
American Society of Home Inspectors, (ASHI) GulfStream ASHI (local chapter of the American Society of 
Home Inspectors), SBCCI (Southern Building Code Conference International Inc), Independent home 
inspectors of North America, (IHINA) past senior inspector of NAPI (National Association of Property 
Inspectors).</p>
            </div>
            <br><br><br>
            <p class="ce4">AllSpec Professional Property Inspections Inc., is a Florida State Corporation</p>
            <img id="mail_img" src="img/mail.jpg" alt="mail_img">
            <p class="ce5">Send an email to info@allspec.us</p>
            <p class="ce6">And I'll deliver the home inspection report to you via 
email within hours after the inspection.</p>
            <img id="phone_img" src="img/phone.jpg" alt="phone_img">
            <p class="ce7">Call us at 954 572-8877</p>
            <p class="ce8">Fusce suscipit varius mi. Sociis natoque penatibus 
parturient.</p>
            <br><br><br>
        </div>
        <div id="navs">
                    <nav class="nav2">
                        <ul>
                            <li>
                                <ul class="sub-menu">
                                    <li class="li1"><a href="#"><span>HOME</span></a></li>
                                    <li><a href="#"><span>Home</span></a></li>
                                    <li><a href="#"><span>About</span></a></li>
                                    <li><a href="#"><span>Info</span></a></li>
                                </ul>
                            </li>
                            <li>
                                <ul>
                                    <li class="li1"><a href="#"><span>FAQ</span></a></li>
                                    <li><a href="#"><span>What</span></a></li>
                                    <li><a href="#"><span>Why</span></a></li>
                                    <li><a href="#"><span>Where</span></a></li>
                                </ul>
                            </li>
                            <li>
                                <ul>
                                    <li class="li1"><a href="#"><span>STARTING PLACE</span></a></li>
                                    <li><a href="#"><span>Starting Place</span></a></li>
                                </ul>
                            </li>
                            <li>
                                <ul>
                                    <li class="li1"><a href="#"><span>FORECLOSURE</span></a></li>
                                    <li><a href="#"><span>Foreclosure</span></a></li>
                                </ul>
                            </li>
                            <li>
                                <ul>
                                    <li class="li1"><a href="#"><span>RENTOSPECTOR</span></a></li>
                                    <li><a href="#"><span>Rentospector</span></a></li>
                                </ul>
                            </li>
                        </ul>
                    </nav>
        </div>
        <br><br><br><br><br><br><br>
        
        <footer>
            <div id="foota"><a href="#" class="allspec"><span class="allspec">AllSpec</span></a><span class="foot">  <?php echo $foot;?></span></div>
        </footer>
        
    </body>
</html>
[/code]
 
След като го качих на хоста нямаше такива забавяния (бяха по малки). Може и нещо от xampp да е. Машината ми е добра за да е от нея :lol:
 
Препоръките за Key & Value добре, но защо карате човека да слага и 'id' в таблицата? В този случай изобщо няма нужда от id-то и противоположно на това което някой каза по-рано, не е закон да има id във всяка таблица.
 
Аз бих ги сложиш тези стойности в един php файл който да include.
Лесно се редактира,и няма никакви заявки и прочие...
:)
 
Hous каза:
Аз бих ги сложиш тези стойности в един php файл който да include.
Лесно се редактира,и няма никакви заявки и прочие...
:)

А ако искаш да ги променяш от сайта (каквато е идеята на автора)? :)

Да, @qazxsw е прав, от id няма нужда, самото поле key трябва да е уникално само по себе си.
 
djman каза:
Hous каза:
Аз бих ги сложиш тези стойности в един php файл който да include.
Лесно се редактира,и няма никакви заявки и прочие...
:)

А ако искаш да ги променяш от сайта (каквато е идеята на автора)? :)

Да, @qazxsw е прав, от id няма нужда, самото поле key трябва да е уникално само по себе си.

Като искаш да ги променяш, ще си направиш една форма и едно скриптче, което пише и чете от файла в административната част. Проблемът решен..

Според мен да се прави таблица в базата данни и после връзки и заявки за един ред от 50 символа е непрактично и безсмислено.. Подкрепям Hous в този случай. Дори да не е отделен файл само за footera по-добрия вариант според мен е да си направи един файл, в който да запише всички тези съобщения и т.н.(сам си реши как да ги запишеш). След това, при всяко зареждане на сайта, вместо да правиш 10 или повече заявки ще инклуднеш само 1 файл. Моя съвет е да си напишеш един алгоритъм, с който да вземеш написаното от инклуднатия файл и да го вкараш в масив. После там където ти трябва да се появи дадено съобщение, просто хвърляш едно echo и си готов.
Не казвам, че това е най-добрия вариант, но всеки, който има по-добра идея нека да си я сподели.

Поздрави ;)
 
Благодаря за идеята, ще пробвам така, наистина няма нужда от всички тези заявки :) :?: :lol:
 

Back
Горе