SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.08.2008, 10:22:43
uta uta ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 63
Beiträge: 3
Datenbankabfrage ist Megalangsam

Hallo,

ich habe einen Account bei 1und1, und habe eine meiner Meinung nach recht einfach DB-ABfrage, die aber leider ewig läuft (der baut die HTML Datei Zeile für Zeile auf, man kann zuschauen).

1und1 meint, die DB wäre schnell, das würde an meiner Abfrage liegen - ich finde aber nichts. Könnt ihr mal einen Blick draufwerfen und mir evtl. sagen, wo ich da was drehen könnte?

Code:
$sql="SELECT * FROM branche WHERE status<75 order by bezeichnung";
$rs=mysql_db_query($db,$sql,$conn);
$i=0;
echo "<tr>";
while ($line=mysql_fetch_array($rs)){
// Anfangsbuchstabenwechsel?
	$first=substr($line["bezeichnung"],0,1);
	if ($first!=$first_alt){
		echo "</tr><tR><tr><td  colspan=".$var_anzahl_spalten_branche." height=5></td></tr><tR><td  colspan=".$var_anzahl_spalten_branche." height=1 ><img src=../bilder/linie_rot.gif width=100% height=1></td></tr><tr><td  colspan=".$var_anzahl_spalten_branche." height=5 ></td></tr><tr>";
		$first_geschrieben=1; 
		$i=0;
	}
	

	$sql_anz="SELECT count(adresse2branche.id) FROM adresse2branche LEFT JOIN adresse ON adresse_id=adresse.id WHERE branche_id=${line["id"]} AND freigabe_branche=1";

	$rs_anz=mysql_db_query($db,$sql_anz,$conn);
	echo mysql_error();
	$anz=mysql_fetch_row($rs_anz);

	anzahl=$anz[0];


	echo "<td class=zeige_branche><a href=\"zeige_branche.php?branche_id=".$line["id"]."\">".$line["bezeichnung"]."</a> (".$anzahl.")</td>\n";



	if ($first_geschrieben==1) // schon linie geschrieben?
		$first_geschrieben=0;
	else
	{	
		$vergl1=$i%$var_anzahl_spalten_branche;
		$vergl2=$var_anzahl_spalten_branche-1;
	
		if
			 ($vergl1==$vergl2){
				echo "</tr><tr>";
		}
	}	
	$first_alt=$first;
	$i=$i+1;
		// Zeilenwechsel?

}
Die Tabelle adresse hat 1190 Sätze, ich habe auf die id einen Index und ein Primary gesetzt.

Die Tabelle adresse2branche hat 1730 Sätze, und auch hier auf die id index und Primary, übrigens jeweils mit autoincrement.

Also, ich finde, dass sollte jede DB ohne zwinkern schaffen, aber vielleicht bin ich ja auf dem Holzweg?

Viele Dank im voraus,

Uta
Mit Zitat antworten
  #2  
Alt 25.08.2008, 11:24:27
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Datenbankabfrage ist Megalangsam

du hast nicht eine abfrage, sondern du hast hunderte (je nachdem, wie oft die schleife durchlaufen wird).

wieso bildest du in der schleife immer wieder das kreuzprodukt und suchst daraus den aktuellen datensatz raus?

besser wäre sowas in etwa:

SELECT count(adresse2branche.id) FROM adresse2branche LEFT JOIN adresse ON adresse_id=adresse.id WHERE freigabe_branche=1 AND adresse.status < 75 ORDER By adresse.bezeichnung

und zwar _vor_ der whileschleife _ein_ mal.
Mit Zitat antworten
  #3  
Alt 25.08.2008, 11:52:32
uta uta ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 63
Beiträge: 3
AW: Datenbankabfrage ist Megalangsam

Hallo Feuervogel,

Vielen Dank für Deine schnelle Antwort.

Zitat:
du hast nicht eine abfrage, sondern du hast hunderte (je nachdem, wie oft die schleife durchlaufen wird).
Eigentlich hätte ich ja gerne pro Datensatz (also aus der ersten Abfrage) die Anzahl der Sätze in der Tabelle adresse2branche - das heisst, ich muss das doch eigentlich jedesmal machen, pro Satz der ersten While Schleife die Anzahl auslesen.

Also ich lese die Branche aus, zähle dann, in der COUNT Abfrage die Anzahl der Sätze, und das eben in einer JOIN-Abfrage.

Ist das zuviel für eine MYsql-Datenbank? Dann würde ich nämlich evtl. bei jeder Stammsatzänderung die Sätze pro Branche berechnen oder irgendwie sowas.

LG

UTa
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fehlermeldung bei Datenbankabfrage - brauche Hilfe!!! Lins56 PHP Grundlagen 2 31.10.2007 10:01:07
Datenbankabfrage und Baummenü Neuling2000 PHP Grundlagen 3 30.12.2005 16:38:36
mailto und Datenbankabfrage TomSP PHP Grundlagen 6 14.12.2003 15:39:33
Performance bei Datenbankabfrage crowl PHP für Fortgeschrittene und Experten 6 04.06.2003 18:16:51
datenbankabfrage leerzeichen werden durch \ ersetzt ????! langwebdesign PHP für Fortgeschrittene und Experten 3 19.02.2003 18:31:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:21:53 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt