Hoe maak ik dit script sneller???

Status
Niet open voor verdere reacties.

hitme007

Gebruiker
Lid geworden
16 jun 2004
Berichten
131
Ben ik weer... :)
script gemaakt maar retetraag... hoe krijg ik dit sneller???
Iemand ideeen??

PHP:
<html>
<head>
<title>Ledenlijnst</title>
<link rel="stylesheet" type="text/css" href="./stylesheets/ledenlijsten.css">
</head>
<body>

<div align="center">
  <center>

<table width="775" cellpadding="20" class="border_table">
  <tr>
    <td width="775" bgcolor="#FFFFCC">
    <a href="ledenlijst.php?table=Leden_A"><font face="Verdana" size="2"><b>Ledenlijst A-orkest</b></font></a> &nbsp;-&nbsp; 
<a href="ledenlijst.php?table=Leden_B"><font face="Verdana" size="2"><b>Ledenlijst LL-orkest</b></font></a> &nbsp;-&nbsp; 
<a href="ledenlijst.php?table=Leden_O"><font face="Verdana" size="2"><b>Overige</b></font></a></b><br><br>

<table width="100%" border="0">

<tr>
<td><b>Naam:</b></td>
<td><b>Adres:</b></td>
<td><b>Postcode:</b></td>
<td><b>Woonplaats:</b></td>
<td><b>Telefoon:</b></td>
<td><b>E-mail Adres:</b></td>
</tr>

<?

require("./admin/config.php");

$table = $_GET['table'];

$query = mysql_query("SELECT * FROM $table WHERE dirigent!='ja' AND erelid!='ja' ORDER BY naam ASC");
if(!$submit){

while($object = mysql_fetch_object($query)){

?>

  <tr><td><? echo $object->naam ?> &nbsp; </td>
  <td><? echo $object->adres ?> &nbsp; </td>
  <td><? echo $object->postcode ?> &nbsp; </td>
  <td><? echo $object->woonplaats ?> &nbsp; </td>
  <td><? echo $object->telefoon ?> &nbsp; </td>
  <td><? echo $object->email ?></td></tr>

<?
}
}
?>

<?
if($table=='Leden_A' OR $table=='Leden_B'){
?>
  <tr><td>&nbsp;</td></tr>
  <tr><td><b>Dirigent:</b></td></tr>
<?
}
?>

<?

$query2 = mysql_query("SELECT * FROM $table WHERE dirigent='ja'");
if(!$submit){

while($object = mysql_fetch_object($query2)){

?>

  <tr><td><? echo $object->naam ?> &nbsp; </td>
  <td><? echo $object->adres ?> &nbsp; </td>
  <td><? echo $object->postcode ?> &nbsp; </td>
  <td><? echo $object->woonplaats ?> &nbsp; </td>
  <td><? echo $object->telefoon ?> &nbsp; </td>
  <td><? echo $object->email ?></td></tr>

<?
}
}
?>

<?
if($table=='Leden_O'){
?>
  <tr><td>&nbsp;</td></tr>
  <tr><td><b>Erelid:</b></td></tr>
<?
}
?>

<?

$query3 = mysql_query("SELECT * FROM $table WHERE erelid='ja'");
if(!$submit){

while($object = mysql_fetch_object($query3)){

?>

  <tr><td><? echo $object->naam ?> &nbsp; </td>
  <td><? echo $object->adres ?> &nbsp; </td>
  <td><? echo $object->postcode ?> &nbsp; </td>
  <td><? echo $object->woonplaats ?> &nbsp; </td>
  <td><? echo $object->telefoon ?> &nbsp; </td>
  <td><? echo $object->email ?></td></tr>

<?
}
}
?>

</table>

<br><a target="_top" href="Index2.htm"><font color="#000080"><b>Terug naar Index</b></font></a>

</td>
</tr>
</table>

</center>
</div>

</body>

</html>
 
Laatst bewerkt:
Van die 3 aparte query's 1 hoofdquery maken, met 3 ORDER BY statements.
Wat superglobals en isset() functies zouden ook niet verkeerd zijn :)

Succes :thumb:
 
Tip: Zet 'n parsetijd in je script.

Zet dit bovenaan:
PHP:
$starttijd = exlode(" ", microtime());
$tijd1 = $starttijd[0] + $starttijd[1];

En zet dit onderaan:
PHP:
$eindtijd = explode(" ", microtime();
$tijd2 = $eindtijd[0] + $eindtijd[1];
$parsetijd = round($tijd2 - $tijd1, 4);
echo "<center>Parsetijd: " . $parsetijd . "sec. </center>";

Ik dacht iets in die richting :o
 
Dat parsetimescript is toch alleen maar om te meten hoe snel hij de pagina genereerd? :rolleyes:

En noobquestion: Wat zijn superglobals??? :o
 
Laatst bewerkt:
Geplaatst door hitme007



Dit is toch alleen maar om te meten hoe snel hij de pagina genereerd? :rolleyes:

uhu, maar zo weet je hoe veel sneller je bent gegaan :rolleyes:
 
Geplaatst door hitme007
En noobquestion: Wat zijn superglobals??? :o
$_POST, $_GET, $_SERVER, $_COOKIE, $_SESSION, $_FILES, $_ENV, $_REQUEST en $GLOBALS :)
 
Is dit de juiste notatie van superglobals???

PHP:
$query = mysql_query("SELECT * FROM ".$_GET['table']." WHERE dirigent!='ja' ORDER BY naam ASC");
 
Dit beter???
PHP:
$query2 = mysql_query("SELECT * FROM '$_GET['table']' WHERE dirigent='ja'");

parsetime is zo wel sneller lijkt wel.....
 
PHP:
<?
  function slashes($tekst)
  {
    if(get_magic_quotes_gpc() == FALSE)
    {
    $tekst = addslashes($tekst);
    }
  return $tekst;
  }

  if(isset($_GET["table"]) == FALSE)
  {
  die("Geen tabel opgegeven !");
  }

$query = mysql_query("SELECT * FROM '" . slashes($_GET["table"]) . "' WHERE dirigent = 'ja'");
Zo :)

// Edit: ) bijgepropt :o
 
Laatst bewerkt:
thx, zal dat eens proberen...

wat doe ik hier fout???

PHP:
<? echo "$_GET['table']" ?>

zal wel weer iets simpels zijn...:o
 
Allereerst mogen die "" wel weg.
De functie addslashes() is hier niet zozeer nodig, omdat je niets uitvoert dat hiervoor gevoelig is. Query's zijn bijv. gevoelig voor het teken ':
PHP:
$query = "SELECT * FROM tabel WHERE blaat = '" . $_GET["waarde"] . "'";
Als $_GET["waarde"] bijv "blaat ' blaat" bevat en magic quotes zijn op de server uigeschakeld (standaard aan) dan komt de query er zo uit te zien:
PHP:
$query = "SELECT * FROM tabel WHERE blaat = 'blaat ' blaat'";
Die ' tussen blaat en blaat verstoort de query, waardoor de query een fout op kan leveren ;)
Verder kan de bezoeker in zijn adresbalk die '?table=...' zo weghalen. Als je server een beetje goeie installeingen heeft, dan zal hij ook alle errors en notices weergeven. Wanneer je bezoeker die '?table=...' dan weghaalt, zal je script een foutmelding opleveren.
 
Ok, die functie slashes werkt :thumb: , maar wat doet dat precies? behalve een bericht geven wanneer er geen table is opgegeven...


Dit is het script geworden na de nodige aanpassingen, het toevoegen van superglobals en de toevoeging van de functie slashes.... damn, met jullie hulp ben ik in no-time geavanceerd php-er ;)

PHP:
<?
@session_start();
if($_COOKIE["adminin"] != "Yes" && $_SESSION["adminin"] != "Yes"){
header("Location: login.php");
exit();
}
?>

<?
  function slashes($tekst)
  {
    if(get_magic_quotes_gpc() == FALSE)
    {
    $tekst = addslashes($tekst);
    }
  return $tekst;
  }

  if(isset($_GET["table"]) == FALSE)
  {
  die("Geen tabel opgegeven !");
  }
?>

<font face="Verdana" size="2"><b>Ledenlijst</b></font><br><br>
<? include('./submenu.php'); ?>
</b><br><br>
<a href="./nieuw.php?table=<? echo " " . slashes($_GET["table"]) . " " ?>">Nieuw lid toevoegen</a><br><br>

<table width="100%" border="0">

<tr>
<td><b>Naam:</b></td>
<td><b>Adres:</b></td>
<td><b>Postcode:</b></td>
<td><b>Woonplaats:</b></td>
<td><b>Telefoon:</b></td>
<td><b>E-mail Adres:</b></td>
</tr>

<?

require("./config.php");

$query = mysql_query("SELECT * FROM " . slashes($_GET["table"]) . " WHERE dirigent!='ja' ORDER BY naam ASC");
if(!$submit){

while($object = mysql_fetch_object($query)){

?>

  <tr><td><? echo $object->naam ?> &nbsp; </td>
  <td><? echo $object->adres ?> &nbsp; </td>
  <td><? echo $object->postcode ?> &nbsp; </td>
  <td><? echo $object->woonplaats ?> &nbsp; </td>
  <td><? echo $object->telefoon ?> &nbsp; </td>
  <td><? echo $object->email ?></td>
  <td><a href="./wijzig.php?table=<? echo " " . slashes($_GET["table"]) . " " ?>&id=<? echo $object->id ?>">Wijzig</a></td>
  <td><a href="./delete.php?table=<? echo " " . slashes($_GET["table"]) . " " ?>&id=<? echo $object->id ?>">Verwijderen</a></td></tr>

<?
}
}
?>


<?

$query2 = mysql_query("SELECT * FROM " . slashes($_GET["table"]) . " WHERE dirigent='ja'");
if(!$submit){

while($object = mysql_fetch_object($query2)){

?>

  <tr><td>&nbsp;</td></tr>
  <tr><td><b>Dirigent:</b></td></tr>
  <tr><td><? echo $object->naam ?> &nbsp; </td>
  <td><? echo $object->adres ?> &nbsp; </td>
  <td><? echo $object->postcode ?> &nbsp; </td>
  <td><? echo $object->woonplaats ?> &nbsp; </td>
  <td><? echo $object->telefoon ?> &nbsp; </td>
  <td><? echo $object->email ?></td>
  <td><a href="./wijzig.php?table=<? echo " " . slashes($_GET["table"]) . " " ?>&id=<? echo $object->id ?>">Wijzig</a></td>
  <td><a href="./delete.php?table=<? echo " " . slashes($_GET["table"]) . " " ?>&id=<? echo $object->id ?>">Verwijderen</a></td></tr>

<?
}
}
?>


</table>

<br><a href="./logoff.php">Afmelden</a>

Valt er nog wat aan te verbeteren, zoja, wat? :rolleyes:
 
Laatst bewerkt:
Het doel van die functie is om te detecteren of magic quotes aanstaat. Als het niet aanstaat past ie de waarde aan met addslashes()

verder

Wat wil je met die " " bij

PHP:
=<? echo " " . slashes($_GET["table"]) . " " ?>">
doen?

En waarom wil je slashes() bij echo gebruiken? Die functie is meer bedoelt voor Get, Post en Cookie voor het verwerken. Haal dat echo " " maar weg en die slashes() ook :)

Verder kan het NET door de bocht, je zou bijna denken dat je eruit valt maar schijn bedrieg :p
 
hmm, Hier ging iets fout ..

There seems to have been a slight problem with the database. Please try again by pressing the refresh button in your browser.

An E-Mail has been dispatched to our Technical Staff, who you can also contact if the problem persists.

We apologise for any inconvenience.

Woei :thumb:
 
Op deze manier???

PHP:
?table=<? " . $_GET["table"] . " ?>

Dan werkt t niet meer... "expecting T_STRING, T_VARIABLE....blablabla"
 
Waarom zet je je variable nou tussen "" ;)

En als je het wilt outputten (in de browser weergeven) moet je wel het echo / print commando gebruiken. Het komt er dan ongeveer zo uittezien:

PHP:
?table=<? echo $_GET['table']; ?>
 
en net moest ik echo nog weghalen....;)

maar kun je mij uitleggen wat het verschil is tussen:
PHP:
<? echo $_GET['table']; ?>

en:

PHP:
<? echo " . $_GET["table"] . " ; ?>

Dat snap ik nog niet helemaal :o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan