PHP Code für MySQL-Abfrage optimieren?

pl_90

Angesehenes Mitglied
Hallo,
Nicht lachen, das ist mein erster Code... hehe..
biggrin.gif


Wie kann ich folgenden Code optimieren?
Die Datenbankabfragen dauern "ewigkeit"...

Danke schön im Voraus....


Sieht vielleicht lang aus, ist es aber in echt nicht..
rolleyes.gif

CODE
<?php
if (!empty ($_GET['page'])) {
include("templates/php/head.php");
} else {
include("templates/php/head_index.php");
}
?>

<?php

include("inc_include/datenbank.inc.php");

require_once "require/sprache/$_SESSION[lang].php";
require_once "templates/php/impressum.php";
require_once "templates/php/kontakt.php";


$template = implode("",file("templates/tpl/template.tpl"));


$aktion = $_GET['aktion'];




function email_check($email) {
if( ereg("^[a-zA-Z0-9-]+([._a-zA-Z0-9.-]+)*@[a-zA-Z0-9.-]+\.([a-zA-Z]{2,4})$",$email))
return TRUE;
else return FALSE;
}



if ($_GET['order'] == 'zufall') {
$result = mysql_query("select * from LINKEINTRAEGE WHERE STATUS = '1' AND BACKLINK = '0' ORDER BY RAND()");
$reihen = mysql_num_rows($result);

} else {

$result = mysql_query("select * from LINKEINTRAEGE WHERE STATUS = '1' AND BACKLINK = '0' ORDER BY ID DESC");
$reihen = mysql_num_rows($result);
}



#$zufall_abfrage = mysql_query("select * from LINKEINTRAEGE ORDER BY RAND() LIMIT 1");
#$zufall_ausgabe = mysql_num_rows($zufall_abfrage);


$result_b = mysql_query("select * from LINKEINTRAEGE WHERE STATUS = '1' AND BACKLINK = '1' ORDER BY ID DESC");
$reihen_b = mysql_num_rows($result_b);



#$partner = "$links_partner";
#$anzeigen = "$anzeige";



#if (mysql_num_rows($zufall_abfrage)) {
#while($row=mysql_fetch_array($zufall_abfrage)) {

#$url = $row['URL'];
#$statuszeile = $row['STATUSZEILE'];
#$titel_tag = $row['TITEL_TAG'];

#$zufallslink = "<a onmouseover=\"statusIn('$statuszeile'); return true;\" onmouseout=\"statusOut(); return true\" target=\"_blank\" title=\"$titel_tag\" href=\"$url\">Das ist ein Zufallslink</a>";

#}
#}





if (mysql_num_rows($result_b)) {
while($row=mysql_fetch_array($result_b)) {

$linktext = $row['LINKTEXT'];
$beschreibung = $row['BESCHREIBUNG'];
$statuszeile = $row['STATUSZEILE'];
$titel_tag = $row['TITEL_TAG'];
$url = $row['URL'];


$script .= "<table cellpadding=\"0\" cellspacing=\"0\" class=\"b_eintrag_1\" width=\"100%\">
<tr>
<td valign=\"top\" rowspan=\"2\" align=\"justify\">

<table cellpadding=\"0\" cellspacing=\"0\" class=\"b_eintrag_2\" width=\"100%\">
<tr>
<td valign=\"top\" width=\"70\" rowspan=\"2\">
<img border=\"0\" src=\"http://www.m-software.de/screenshot/Screenshot.png?url=$url&scale=6&width=68&height=50&delay=6&commingsoonimg=http://spammen.online-web24.de/images/cs_img.gif\" width=\"68\" height=\"50\">
</td>
<td width=\"*\" valign=\"top\"><a target=\"_blank\" onmouseover=\"statusIn('$statuszeile'); return true\" onmouseout=\"statusOut(); return false;\" title=\"LINK BY SPAMMEN & WERBEN!: $titel_tag\" href=\"$url\"><b>$linktext</b></a>
<img border=\"0\" src=\"images/stern-popup.gif\" width=\"16\" height=\"16\"></td>
</tr>
<tr>
<td width=\"*\">$beschreibung</td>
</tr>
</table>

</td>
</tr>
</table>
<hr class=\"hr_link\" />
";
}
}





############ LINKS AUSGABE ###############


$werbung_abfrage = mysql_query("select * from werbung ORDER BY RAND() LIMIT 1");
$werbung_ausgabe = mysql_num_rows($werbung_abfrage);

while($row=mysql_fetch_array($werbung_abfrage)) {
$werbung = stripslashes($row['CODE']);
$script .= "<table cellpadding=\"0\" cellspacing=\"0\" class=\"none\" width=\"100%\">
<tr>
<td valign=\"top\" width=\"11%\" rowspan=\"2\" align=\"justify\">

<table cellpadding=\"0\" cellspacing=\"0\" class=\"none_2\" width=\"100%\">
<tr>
<td width=\"42\"><img border=\"0\" src=\"images/tipptipp.gif\" width=\"38\" height=\"12\" border=\"0\"></td>
<td width=\"*\"><b>$werbung</b></td>
</tr>
</table>

</td>
</tr>
</table>
<hr class=\"hr_link\" />
";

}




$i = 1;


while($row=mysql_fetch_array($result)) {

$linktext = $row['LINKTEXT'];
$beschreibung = $row['BESCHREIBUNG'];
$statuszeile = $row['STATUSZEILE'];
$titel_tag = $row['TITEL_TAG'];
$banner_url = $row['BANNER_URL'];
$url = $row['URL'];

$script .= "<table cellpadding=\"0\" cellspacing=\"0\" class=\"none\" width=\"100%\">
<tr>
<td valign=\"top\" width=\"11%\" rowspan=\"2\" align=\"justify\">

<table cellpadding=\"0\" cellspacing=\"0\" class=\"none_2\" width=\"100%\">
<tr>
<td width=\"90%\" valign=\"top\"><a target=\"_blank\" onmouseover=\"return escape('<img src=\'$banner_url\'>');\" onmouseout=\"return false;\" title=\"LINK BY SPAMMEN & WERBEN!: $titel_tag\" href=\"$url\"><b>$linktext</b></a></td>
</tr>
<tr>
<td width=\"90%\">$beschreibung</td>
</tr>
</table>

</td>
</tr>
</table>
<hr class=\"hr_link\" />
";



if( ($i % 5) == 0) {


$werbung_abfrage = mysql_query("select * from werbung ORDER BY RAND() LIMIT 1");
$werbung_ausgabe = mysql_num_rows($werbung_abfrage);

while($row=mysql_fetch_array($werbung_abfrage)) {
$werbung = stripslashes($row['CODE']);
$script .= "<table cellpadding=\"0\" cellspacing=\"0\" class=\"none\" width=\"100%\">
<tr>
<td valign=\"top\" width=\"11%\" rowspan=\"2\" align=\"justify\">

<table cellpadding=\"0\" cellspacing=\"0\" class=\"none_2\" width=\"100%\">
<tr>
<td width=\"42\"><img border=\"0\" src=\"images/tipptipp.gif\" width=\"38\" height=\"12\" border=\"0\"></td>
<td width=\"*\"><b>$werbung</b></td>
</tr>
</table>

</td>
</tr>
</table>
<hr class=\"hr_link\" />
";

}

}

$i++;

}


################ LINKS AUSGABE ENDE #################







if($_GET['page'] == "impressum") {
$script = "$impressum";
}


if($_GET['page'] == "kontakt") {
$script = "$kontaktformular";
}




if($aktion == "send_email") {

$mail_empfaenger = "EMAIL";
$from = "EMAIL";

$name = $_POST['name'];
$vorname = $_POST['vorname'];
$strasse = $_POST['strasse'];
$hausnummer = $_POST['hausnummer'];
$plz = $_POST['plz'];
$wohnort = $_POST['wohnort'];
$email = $_POST['email'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];

$text = "Name, Vorname: $name, $vorname\nStrasse, Hausnummer: $strasse, $hausnummer\nPLZ, Wohnort: $plz, $wohnort\n\nEmail-Adresse: $email\n\nNachricht: $nachricht";
$text_bst = "Sehr geehrte(r) Frau/Herr $name $vorname,\n\nVielen Dank für Ihre Email. Ich werde Ihnen schnellstmöglich auf Ihre Nachricht:\n\n\"$nachricht\"\n\n antworten.\n\n\nMit freundlichen Grüßen\n\nDawid Drobisz\n\nwww.online-web24.de\nwww.spammen.online-web24.de\n\n\n\n\nDiese Email wurde automatisch generiert und versendet. Bitte antworten Sie nicht, da die Emails an diese Email-Adresse nicht verarbeitet werden.\nHaben Sie noch Fragen, können Sie eine Nachricht an info@online-web24.de schicken.";



if ($name == "" || $vorname == "" || $betreff == "" || $email == "" || $nachricht == ""){
$fehlermeldung = "<table cellpadding=\"0\" cellspacing=\"0\" style=\"border: 1px solid #EE0000; background-color: #FFD2D2; padding: 8px; font-size: 11px; font-family: Tahoma; text-align: center; color: #FF0000; font-weight: bold;\" width=\"99%\">
<tr>
<td width=\"99%\">Bitte füllen Sie alle mit einem Sternchen * versehenden Felder aus.</td>
</tr>
</table>
<br>
";
}

elseif (!(email_check($email))) {
$fehlermeldung = "<table cellpadding=\"0\" cellspacing=\"0\" style=\"border: 1px solid #EE0000; background-color: #FFD2D2; padding: 8px; font-size: 11px; font-family: Tahoma; text-align: center; color: #FF0000; font-weight: bold;\" width=\"99%\">
<tr>
<td width=\"99%\">Ihre Email-Adresse ist ungültig. Bitte überprüfen Sie Ihre Eingabe.</td>
</tr>
</table>
<br>
";
}


else {

mail($mail_empfaenger, $betreff, $text,"from:$email");
mail($email, "RE: Ihre Nachricht an mich. - \"$betreff\"", $text_bst,"from:$from");

$fehlermeldung = "<table cellpadding=\"0\" cellspacing=\"0\" style=\"border: 1px solid #00BB5E; background-color: #CAFFCA; padding: 8px; font-size: 11px; font-family: Tahoma; text-align: center; color: #00A452; font-weight: bold;\" width=\"99%\">
<tr>
<td width=\"99%\">Vielen Dank. Ihre Nachricht wurde versendet. Ich werde Ihnen schnellstmöglich antworten.</td>
</tr>
</table>
<br>
";

}
}


$template = str_replace("{fehlermeldung}", $fehlermeldung, $template);
$template = str_replace("{script}", $script, $template);

echo ($template);

?>






Nochmals Danke schön...



Grüße

Dawid
 
Google mal nach 'Group By' und les dir von der ersten Fundstelle den allerletzten Abschnitt durch.

Paßt genau.
 
Hallo

Vielen Dank für schnelle Antwort.
Ich glaube Group By bringt nicht, weil ich hab zwei verschiedene Templates (für die Abfragen) und die Ausgaben sollen auch in unterschiedlichen Positionen doch sein...
Andere Idee?
 
Zitat aus dem oben erwähnten Artikel:

QUOTE In PHP-Foren findet sich wiederholt Code, mit welchem die Zahl der Zeilen in einer Tabelle ermittelt werden soll. Dieser Code ist wie folgt aufgebaut:

$select = mysql_query("Select * From Artikel");
$reihen = mysql_num_rows($select);

Eine solche Verarbeitung widerspricht sämtlichen Prinzipien ressourcenschonender Programmierung.


Den Rest findest Du dort.

Lustig - sogar die Variablen sind gleich benannt wie bei dir - obwohl das obige Zitat schon einige Monate älter ist.
 
Achso das meintest du...
Ok, Danke schön.. werddddddddddddddd ich versuchen....
 
Hallo,

Ich habe das so gemacht:
CODE
$result = mysql_query("select Count(*) from LINKEINTRAEGE WHERE STATUS = '1' AND BACKLINK = '0' ORDER BY ID DESC");
$reihen = mysql_fetch_rows($result);



und so:

CODE
$result = mysql_query("select * from LINKEINTRAEGE WHERE STATUS = '1' AND BACKLINK = '0' ORDER BY ID DESC");
$reihen = mysql_fetch_rows($result);



Aber kommt immer folgender Fehler:
Call to undefined function mysql_fetch_rows()


Was ist los?
 
Zurück
Oben