| | | | |
| | |
| Benutzer Registriert seit: 15.09.2005
Beiträge: 39
![]() | Hallo Leute, ich bin ein absoluter Anfänger in Sache PHP und MySQL. Hab jetzt mein eigenes Script erstellt mit wohl sehr unprofessionellen Code-Formulierungen. Ich weiß aber, daß bestimmte Aufgaben mit unterschiedliche Methoden viel schneller und sauberer ausgeführt werden können, aber ich hab keine Ahnung wie. Auch mit MySQL Anweisungen kann es manchmal sinnvoller sein, bestimmtes richtiger zu formulieren. Daher lege ich erst mal meine Codes hier rein, wer Zeit und Interesse hat, mir meine Codes Korektur zu lesen, dafür wäre ich sehr dankbar. Zur Erläuterung der Codes: Ich mache ein Webseit mit der Absicht, chinesische Rock Scene auf Englisch vorzustellen. Daher überlege ich einen Datenbank für Bänds zu erstellen und dieser Script unten dient einfach zunächst erst mal zum Anzeigen aller oder bestimmter archivierte Banddaten, auch mit Anzeigesortierung und Seitenverteilung. Suchfunktion hab ich noch nicht eingebaut. Das ganze läuft auch schon online als test: http://www.rockinchina.com/test/ Nun hier die Codes: PHP-Code: ![]() |
| |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Benutzer Registriert seit: 15.09.2005
Beiträge: 39
![]() | Noch paar Fragen: a) Muß ich denn jedes mal den DB connectieren um die selben Daten auf unterschiedlichen Seiten anzuzeigen? Ich hab ja ein Blättern-Funktion eingebaut, aber muß jedes mal die Daten noch mal abfragen, geht es denn einfacher und schneller? Z. B. Daten einmalig abfragen und irgendwo zwischen speichern bis die Daten noch mal abgefragt werden? b) Verliert ein Variable den Wert, wenn die die PHP Seite noch mal lade (ohne eine Wertveränderungsbefehl zu aktivieren)?
__________________ www.rockinchina.com |
| |
| | |
| Benutzer Registriert seit: 15.09.2005
Beiträge: 39
![]() | Bemerkung: ich will ja nicht, daß jemanden mir die ganze Arbeit abnimmt. Nur verstehen ich in manchen Dingen nicht, wie man es machen soll. Daher wäre es sinnvoll wenn irgendeiner mir irgend einen Abschnitt aus obiger Codes entnehmen kann, um mir zu verdeutlichen, was man da besser machen kann. Danke ...
__________________ www.rockinchina.com |
| |
| | ||
| Benutzer Registriert seit: 15.09.2005
Beiträge: 39
![]() | Zitat:
Cookies kenne ich von Foren her, von Sessions hab ich nur etwas erfahren, als ich mir einige User-Management-Codes und Tools durchgesehen habe, verstehen tu ich noch nicht. Aber wird wohl schon werden. Ich schätze, es macht wohl auch kaum Sinn gelesene Daten aus einer DB per Session zu speichern, das würde wohl den Aufwand, DB neuzuverbinden, gleich kommen. Inzwischen hab ich auch schon den Suchfunktion in meinem Script eingebaut, allerdings erst mal nur einfache Suche nach einem Kriterium, zu Wildcards usw. bin ich noch nicht vorgestossen. Vielen Dank für Deine Antwort. Ich hätte noch eine Frage: Ich habe kaum mit Arrays gearbeitet, daher die Frage, würde z. B. die Manipulation einer Zeichenkette mit einer Array-Lösung schneller verarbeitet als z. B. mit einer verschachtelten Schleife? Ich neige nämlich dazu, alles mit If, For oder While zu lösen ...
__________________ www.rockinchina.com | |
| |
| | |
| Erfahrener Benutzer | Ob es sich lohnt, die Ergebnisse der durchgeführten Suche zu speichern hängt von der Komplexität der Abfrage ab. Normalerweise ist es ausreichend, bei jedem Seitenaufruf neu zu suchen. Durch Angabe von LIMIT wird dann nur der entsprechende Bereich ausgewählt. Sessions werden Je nach Konfiguration entweder in einer DB verwaltet oder in einer Datei. Vom Browser wird dann die Session-ID als Cookie oder als Parameter übergeben. Details dazu findest Du, wenn Du hier mal nach einem Tutorial für Sessions suchst. Zu Deiner neuen Frage: Ich hab leider keine Ahnung, was Du machen willst, was Du unter der Array-Lösung versteht und wie die verschachtelten Schleifen aussehen soll. If, for und while wirst Du als grundlegende Kontrollstrukturen fast in jedem Script brauchen.
__________________ ********************************** Nein, ich bin nicht die Signatur. Ich putze hier nur. ********************************** |
| |
| | |
| Benutzer Registriert seit: 15.09.2005
Beiträge: 39
![]() | Wie Du vielleicht an meinem Script siehst, LIMIT behersche ich noch nicht und mein Paging-Funktion stellt einfach eine bestimmte Menge an Datenzeilen von den gesamt gelesenen Daten auf einer Seite dar, anstatt die Datenmenge schon bei dem Einlesen zu limitieren. Daher läuft mein Script vielleicht langsamer als erwartet. Wegen Array, ich bin mir nicht sicher, ob in PHP so was wie Select Case (wie im VB) gibt, aber Array in Kombination mit einer For Schleife würde wohl die Variablen auf ähnlicher Weise bearbeiten. Mir fallen jetzt konkret kein Beispiel ein zur Erläuterung meiner Frage. Was genau kann so ein Skript beschleunigen oder verlangsamen, jetzt auf die Art des Coding betrachtet? Gilt der Grundsatz, je weniger Berechnungs/Befehlsschritte desto schneller der Script oder verhalten sich unterschiedliche Befehlsmethoden auch unterschiedlich in der Geschwindigkeit? z. B. $x = 1 $x = $x + 1 echo $x oder $x = 1 echo ++$x würden sich beide Schreibweise theoretisch gleichermaßen verhalten oder läuft das zweite etwas schneller?
__________________ www.rockinchina.com |
| |
| | |
| Erfahrener Benutzer | Hmmmm stimmt. LIMIT magst DU wohl noch nicht. Du solltest dringend mal nachgucken, wie das funktioniert. Ist auch keine schlimme Sache. Mach einfach "LIMIT $pagefirstrow, $pagerows" hinter die Abfrage. Auf jeden Fall solltest Du die unzähligen Aufrufe von mysql_result() eliminieren. Hol Dir lieber mit mysql_fetch_assoc() eine Zeile nach der anderen und nicht jedes Feld einzeln. Damit dürftest Du ne Menge Zeit sparen. Zur Optimierung: Die genannten Operationen dürften sich nicht nennenswert unterscheiden. Bei der zweiten muss PHP wohl einmal weniger in nach der Variable $x suchen, aber sonst ist da kein Unterschied. Wichtig ist, dass man nicht in einer Schleife unnötig Werte ermittelt, die sich nicht verändern und somit auch schon vorher einmalig berechnet werden können. Außerdem solltest Du nicht die ganze DB auslesen, wenn Du nicht alle Spalten brauchst. SELECT * ist also nicht so doll. Ach ja: Meinst Du das mit $Sortmethod und $sortmethod wirklich ernst? Zwei derart ähnliche Variablennamen sind ganz sicher keine gute Idee.
__________________ ********************************** Nein, ich bin nicht die Signatur. Ich putze hier nur. ********************************** |
| |
| | |
| Benutzer Registriert seit: 15.09.2005
Beiträge: 39
![]() | Hai, Danke fuer Deine Worte, mit LIMIT hab ich mich noch nicht befasst, aber ich komme wohl nicht drum herum. Ueber mysql_fetch_assoc() bin ich heute zufaellig gestossen, hab auch noch nicht alles verstanden, aber hab auch nicht wirklich Zeit dafuer genommen. Mir steht noch einiges bevor. Hab heute die Sortierung und Seitenteilung jeweils in Funktionen auf einer externe Seite abgeleg und durch include() eingelesen. Mir faellt auf, dass auf dieser Weise alles etwas langsamer laeuft. Das mit SELECT * weiss ich jetzt schon, aber bin noch nicht dazu gekommen, um das zu aendern, weil ich erst mal all die anderen Fragen verstehen wollte. Ausserdem hatte ich wirklich in dem Fall alle Spalten einzulesen gebraucht, tut also jetzt noch nicht so weh. Haha, oh je, ja, dass mit den $Sortmethod und $sortmethod hab ich tatsaechlich ernst gemeint und bin deswegen heute bei der Codeumaenderung auf oben erwahnten Function-Basis (nur mal ausprobieren) etwas auf die Nase gefallen. Jetzt hab ich $Sortmethd zu $SortMethD umgeaendert, hehe, aber ne gute Idee wird es trotzdem nicht, aber jetzt bin ich ja schon eines besseren gelernt. Schade, dass ich jetzt nicht so viel Zeit habe, um mich ausgiebiger in die Materie reinzulesen. Aber bin schon stolz :P drauf, was ich in zwei Wochen von Null zu dem vorgestossen bin, was jetzt bei mir auf dem Server laeuft. Also, Hausaufgabe fuer die naechsten paar Tage, LIMIT schlau machen und mysql_fetch_assoc() ausprobieren. Wenn ich damit erfolgreich war, werde ich die geaenderten Codes hier rein tun. ciao. Yang
__________________ www.rockinchina.com |
| |
| | |
| Benutzer Registriert seit: 15.09.2005
Beiträge: 39
![]() | Gibt es eine direktere Moeglichkeit, die Gesamtzeilenanzahl einer Tabelle zu ermitteln ausser mit "SHOW TABLE STATUS FROM"? Hab naemlich gemerkt, dass mein <? $num = mysql_num_rows($result); ?> kein Sinn mehr macht, wenn ich beim SELECT-Befehl mit LIMIT angeben. Denn danach wird immer $num <= 20 sein. Also muss ich irgendwie die Gesamtzeilenanzahl einer Tabelle herausfinden, aber hab nur "SHOW TABLE STATUS FROM" gefunden und das liefert wohl ein Array Wert, den ich wieder mit mysql_fetch_arrey() auseinander nehmen muss. Oder?
__________________ www.rockinchina.com |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Datenbanktabelle erstellen - brauche Hilfe | Raccoon | PHP Tipps 2008 | 1 | 14.06.2008 11:03 |
| [Erledigt] Hilfe: Projektabreit Informatik und Technik bitte helft uns. | Off-Topic Diskussionen | 31 | 05.04.2006 18:25 | |
| [Erledigt] HILFE HILFE HILFE mysqladmin.exe fehlt | Datenbanken | 7 | 20.12.2005 14:00 | |
| [Erledigt] Hilfe mit encoded php-Files | PHP-Fortgeschrittene | 9 | 02.11.2005 16:16 | |
| brauche sehr schnell und dringend hilfe | Beitragsarchiv | 13 | 24.10.2005 13:11 | |
| HILFE ! Brauche ganz dringend hilfe! | PHP Tipps 2005-2 | 2 | 10.10.2005 23:08 | |
| Hilfe, Ich brauche hilfe! | Kevin | PHP Tipps 2005-2 | 2 | 27.09.2005 19:31 |
| Hilfe bei kleiner Funktion | PHP Tipps 2005-2 | 1 | 24.08.2005 09:35 | |
| [Erledigt] VARIABLEN WERDEN NICHT RICHTIG VERARBEITET!!!! HILFE | PHP Tipps 2005-2 | 6 | 02.07.2005 18:32 | |
| [Erledigt] Hilfe! If Tags werden Ignoriert | PHP Tipps 2005 | 10 | 16.05.2005 10:16 | |
| [Erledigt] HILFE | PHP Tipps 2004-2 | 1 | 16.12.2004 20:49 | |
| PHP, Frontpage -----> HILFE!!!! | HTML, Usability und Barrierefreiheit | 4 | 30.11.2004 15:00 | |
| Suche -dringend- Hilfe zu einem Smily Mod! <- HiLFE - :-) | PHP Tipps 2004-2 | 0 | 07.11.2004 13:50 | |
| [Erledigt] Domainnamen in Apache bekanntgeben HILFE | Server, Hosting und Workstations | 3 | 12.08.2004 13:48 | |
| Brauche Hilfe - kenne mich nicht aus - zahlen auch dafür | Beitragsarchiv | 1 | 09.08.2004 16:10 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| codieren set_display as, php webseiten einlesen kodierung, pagefirstrow pagelastrow, codierung php kyrillisch |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.