Avatar billede hansen Nybegynder
25. maj 2013 - 18:32 Der er 8 kommentarer og
1 løsning

Langsom opdatering efter MySql kald

Hej, jeg er begyndt at 'lege' lidt med PHP og MySQL, jeg undrer mig dog over hastigheden, eller mangel på samme.

Der er ingen problemer med hastigheden når den bare skal vise noget PHP, men ved en opdatering/sletning af noget indhold i databasen, så kan der godt gå op til 1 minut før slettet indhold slår igennem på hjemmesiden, også ved manuel opdatering i browser, har forsøgt i IE, Chrome og Firefox med samme resultat.

Et kig i DB samtidig med at der slettes, viser at posten er slettet med det samme, problemet er på hjemmesiden, her ligesom hænger tingene et stykke tid, nogen gange kortere tid, og andre gange længere tid.

Har søgt højt og lavt, uden resultat, har forsøgt scriptet hos Surftown og Meebox, med samme resultat.

Kan du hjælpe, så vil jeg meget gerne høre fra dig, tak
Avatar billede michael_stim Ekspert
25. maj 2013 - 19:26 #1
1. Få orden på dine åbne spørgsmål
2. For at vi skal have en jordisk chance for at hjælpe dig, må du nok forklare dig bedre. Med det menes at vi som minimum skal se lidt kode
Avatar billede hansen Nybegynder
25. maj 2013 - 19:49 #2
Arbejder på de åbne spørgsmål :-)

Her kommer en længere smøre, tre filer!
Jeg har udeladt formfelterne, de lægger variablerne over i insert_DB.php

List tabelindhold - list_DB.php er den del der er langsom ved visning af nye poster

--------------------------------------------

Kald til databasen - zzz.php
------------------------------------
<?php
$con = mysql_connect("yyy","xx","zz");
mysql_select_db("zzz",$con) or die("Couldn't select database");
?>



List tabelindhold - list_DB.php
------------------------------------
<?php
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Vis liste over DB indhold</title>
</head>

<body>
<?php

//MySQL Database Connect
include_once 'zzz.php';

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");


    $result = mysql_query("SELECT * FROM POI");
   
    echo "<table border='1'>
    <tr>
        <th>ID</th>
        <th>Fodnote</th>
        <th>Titel</th>
        <th>Rediger</th>
    </tr>";
   
    while($row = mysql_fetch_array($result))
      {
      echo "<tr>";
      echo "<td>" . $row['id'] . "</td>";
      echo "<td>" . $row['footnote'] . "</td>";
      echo "<td>" . $row['title'] . "</td>";
      echo "<td><a href='POI_edit_DB.php?UID=". $row['id'] . "'>Rediger</a> - <a href='POI_delete_DB.php?UID=". $row['id'] . "'>Slet</a></td>";
      echo "</tr>";
      }
    echo "</table>";
   
    mysql_close($con);
    ?>
<a href="new_DB.php">Tilføj ny tekst</a> - <a href="list_DB.php">Opdater side</a>
</body>

</html>




Indsæt i tabel - insert_DB.php
------------------------------------
<?php
ob_start();
//MySQL Database Connect
include_once 'zzz.php';

//mysql_query("SET NAMES 'utf8'");
//mysql_query("SET CHARACTER SET utf8");
//mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");


$sql="INSERT INTO POI (footnote, title,layerID) VALUES ('$_POST[footnote]','$_POST[title]','$_POST[layerID]')";
$result = mysql_query($sql);
echo $sql;

// if successfully deleted
if($result){
    echo "Updated Successfully";
}

else {
    echo "ERROR";
}

mysql_close($con);

header("Location: http://zzz/list_DB.php");
ob_end_flush();
?>
Avatar billede michael_stim Ekspert
25. maj 2013 - 20:19 #3
1. Nu ved jeg ikke hvor meget du har i din base, men er den indexeret?
2. Jeg ville droppe den der ob_start() og sende min tekst med i adressefeltet i stedet for i dine if's
Avatar billede erikjacobsen Ekspert
25. maj 2013 - 20:20 #4
Ligger din hjemmeside på din PC? Hos en udbyder - hvilken?

Nogle udbydere, har jeg hørt, laver store krumspring for at cache siderne.
Avatar billede hansen Nybegynder
25. maj 2013 - 21:18 #5
Min base har maks. ti poster pt.

ob_start() er for at kunne lave en header location, alle andre forsøg på at redirecte er fejlet

Hjemmesiden er forsøgt kørt på både surftown og meebox
Avatar billede hansen Nybegynder
25. maj 2013 - 21:24 #6
Har lige prøvet at sætte SQL_NO_CACHE ind i SELECT * FROM ....

Nu ser det ud til at virke, måske.
Melder lige tilbage
Avatar billede hansen Nybegynder
28. maj 2013 - 08:32 #7
Det ser ud til at SQL_NO_CACHE har løst problemet, nu er der bareen irrerterende CACHE af siden, den leder jeg efter :-)

Tak for hjælpen, lægger i et svar, tak.
Avatar billede michael_stim Ekspert
28. maj 2013 - 13:08 #8
Næ tak, du har jo selv klaret den, desuden samler jeg ikke på point.

Ang. den der ob_start, kan du let komme uden om den, ved at fjerne udskriften i din if.
Avatar billede hansen Nybegynder
03. juli 2014 - 18:41 #9
Lukker, tak for input
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester