[PHP/MySQL] Hilfe bei Code.

mydoys.de

Well-known member
ID: 84968
L
20 April 2006
2.743
123
ERST LESEN BITTE!!! was unter dem Code steht


PHP:
<?php
include("../config.php");

	$abfrage = "SELECT * FROM werbung_neu where aktiv='ja' AND art='layer2' order by rand() LIMIT 1";
	$ergebnis = mysql_query($abfrage);
	while($row = mysql_fetch_array($ergebnis))
	{
	$code=$row[werbungcode];
	$DBwerbungrelodspeere=$row[relodspeere];
	$werbeid=$row[id];
	$viewed1=$row[viewed];
	$views1=$row[views];
	$viewed2=$viewed1+1;
	$views2=$views1-1;
	}

	$ip = $_SERVER["REMOTE_ADDR"];
	$zur = time();
	$counter2=$counter+1;
	$time = time()+ ($DBwerbungrelodspeere);
	$stats_url=$_SERVER["HTTP_REFERER"];
	$next = time()+$DBwerbungrelodspeere;
	mysql_query("UPDATE werbung_neu set aktiv = 'nein' where views = 0");
	MYSQL_QUERY("DELETE FROM reload_werbung_neu WHERE (zeit < '$zur')");


	$anzahl=MYSQL_NUM_ROWS(MYSQL_QUERY( "SELECT * FROM reload_werbung_neu WHERE (ip = '$ip') AND werbeid='$werbeid'")); echo mysql_error();
               	if ($anzahl == "0")
	{
		$action = "ja";
	}
	else
	{
		$action = "nein";
	}
	if ($action == "ja")
	{
	MYSQL_QUERY("INSERT INTO logfiles (domain, ip, zeit, reloadspeere, ref, art) VALUES('$domain', '$ip', '$next', '$reloadspeere', '$stats_url', 'do')"); echo mysql_error();
	MYSQL_QUERY( "INSERT INTO reload_werbung_neu (ip, zeit, reloadspeere,werbeid) VALUES('$ip', '$next', '$DBwerbungrelodspeere', '$werbeid')"); echo mysql_error();
	MYSQL_QUERY("UPDATE deine_domain SET counter = '$counter2' WHERE (url = '$domain')"); echo mysql_error();
	MYSQL_QUERY("UPDATE werbung_neu SET views = '$views2' WHERE (id = '$werbeid')");
	MYSQL_QUERY("UPDATE werbung_neu SET viewed = '$viewed2' WHERE (id = '$werbeid')");
	}
	elseif ($action == "nein")
	{
	}

?>


Wie ich sehe ist der Code nicht der beste diesen habe ich von einem Kollegen bekommen.
Er möchte gerne das dieser Optimiert wird und das er funzt.

Was er will:

Und ist das eine Art Relodspeere (sagt er) und er wie man auch ein wenig sehen kann wird immer etwas in die Tabelle "reload_werbung_neu" geschrieben er möchte jetzt das wenn in der "reload_werbung_neu" die WerbeID1 steht das dann diese WerbeID nicht mehr Angezeigt wird sondern die anderen die nicht in der "reload_werbung_neu" stehen!


Ich hoffe ihr könnt verstehen was ich meine...

Wer kann mir dabei helfen da ich leider keine zeit habe weil ich selber gerade vor etwas sitze..

Danke!
 
Eine erste Optimierung wäre wohl schon, deinem Kollegen zu verraten, dass MySQL mehr Datentypen als nur Strings besitzt ;)

Nächste Optimierung: Du holst genau ein Ergebnis und iterierst per while über alle Ergebnisse drüber...

Code-Sauberkeit bzw. Speicheroptimierung: Keine Speicherlecks erzeugen (ja, ich weiß, am Ende des Scripts, aber trotzdem...)

Ne Bedingung mit "falls, dann tue nichts" ist auch Quark.
 
Wer kann mir dabei helfen da ich leider keine zeit habe weil ich selber gerade vor etwas sitze..

wir sind nicht dazu da dir eine fertige Lösung zu geben, sondern für Hilfestellungen. Wenn du keine Zeit hast, dann sag das deinem Kumpel :!:

Eine erste Optimierung wäre wohl schon, deinem Kollegen zu verraten, dass MySQL mehr Datentypen als nur Strings besitzt ;)
Stimmt doch gar nicht! KETZER!

Nächste Optimierung: Du holst genau ein Ergebnis und iterierst per while über alle Ergebnisse drüber...

letzte Optimierung: ich habe mal von jemandem gehört, der hieß "Läft Tschoin" (^^) oder so ähnlich, der soll sowas wohl richtig gut können :biggrin:

das Ding heisst natürlich Left Join ;)