php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 03-04-2011, 17:26
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard array länge berechnen, bei 32 RAM?

ich wüßte gerne wie lang mein array sein darf, bei 32 MB RAM alleine fürs Array? Wobei ich schon 32 MB für andere Dinge mit eingerechnet habe (also ich habe insgesamt 64 MB RAM für meinen Webspace laut phpinfo zur Verfügung).

Denn ich möchte alle Mitglieder (Mitglieder ID) die mich in meiner Liste habe in ein array laden.

in ein 2. Array kommt der jeweilige Zeitstempel
in ein 3. Array wieder eine ID

also habe ich am Ende 3 Arrays die gleich lang sind.

Also müßte ich dann den Speicher von 32 MB durch 3 teilen oder?

Das wären dann ca. 10 MB RAM für 1 Array.

soweit so gut und jetzt müüßte ich noch berechnen, wieviel Bytes so ein Eintrag hat.

Sind das 10 Bytes (Stempel -> 1023904606)?

Dann wären das 1048576 Einträge pro Array bze. das Array hätte eine Länge von 1048576 Einträgen?

Stimmt meine Berechnung?

sind 32 MB RAM von 64 MB RAM nur für die 3 Arrays zuviel für meine Theorie oder könnten es auch mehr sein bzw. braucht das System für den Rest gar net so viel Speicher?

P.S Homepage es ist eine Community.
Mit Zitat antworten
  #2 (permalink)  
Alt 03-04-2011, 18:00
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Warum willst du ALLE Mitglieder einlesen?
__________________
Wir werden alle sterben
Mit Zitat antworten
  #3 (permalink)  
Alt 03-04-2011, 18:58
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard

na ne es geht eher darum das jeder nutzer eine merkliste hat. ich mein es ist unwahrscheinlich das jemand 10.000 nutzer speichert in der praxis. aber ich wollt es nur für den theoretischen teil, meiner plaung mal wissen.

man weiß ja nie ob evtl. der fall doch eintrifft und dann muß ich mein script umschreiben. darum wollt ich in weißer vorraussicht bzw. für den unwahrscheinlichen fall, trotzdem das gleich so alles organisieren, das es doch klappt.

wie erwähnt wird es in der praxis wohl nicht passieren, aber sag niemals nie, oder?
Mit Zitat antworten
  #4 (permalink)  
Alt 03-04-2011, 19:01
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Nagut, dann eben anders:
Und, was willst du mit der gesamten Merkliste im Speicher anstellen?
__________________
Wir werden alle sterben
Mit Zitat antworten
  #5 (permalink)  
Alt 03-04-2011, 19:26
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard

naja ich habe 1 tabelle wo die nutzerid drin steht, von dem nutzer der bei dem einen nutzer vorgemerkt ist.

+ eine 2. spalte mit einer weiteren nutzerid von dem nutzer, der die liste besitzt.

also:

NID NID2 Datum(timestamp)!

eine 2. tabelle mit Kommentaren:

NID Kommentar Datum

jetzt will ich von der 1. tabelle die ganzen nutzerid´s (NID) von dem nutzer dem die liste gehört (NID2) in 1 array speichern.

in das 2. array kommt dann von jedem nutzer (NID) das aktuelleste kommentar aus der 2. tabelle rein.

in das 3. array davon kommt der timestamp aus der 2. tabelle

und dann sortiere ich alle 3 arrays anhand des 3 arrays und deren timestamps absteigend.

also
1. array nutzerID (tabelle 1)
2. Array Kommentar (tabelle 2)
3. Array Timestamp (tabelle 2)

Code:
array_multisort($Timestamp, SORT_DESC,$NID,$Kom);
Mit Zitat antworten
  #6 (permalink)  
Alt 03-04-2011, 19:42
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Das Zusammentragen der Daten sollte schon Datenbank-seitig möglich sein (geeignetes Datenmodell vorausgesetzt).
Und Anzeigen wird man idR. eh nicht 10.000 Datensätze auf einmal - sondern höchstens einen Ausschnitt daraus, per Blätterfunktion o.ä.

Dein derzeitiges Vorhaben scheint jedenfalls ein ziemlicher Holzweg zu sein.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 03-04-2011, 21:03
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard

ja klar macht man eine blätterfunktion drauß (ich mache immer nur 10 einträge pro seite).

das problem ist einfach, das ich die kommentare aus tab2 absteigend sortieren muß, aber:

ich kann ja schlecht alle einträge überprüfen bzw. ID´s und mit meiner listentabelle (tab 1) vergleichen.

dann müßt ich ja am ende (wenn ich das als übertriebenes beispiel nehme) 1 million datensätze prüfen und von jedem datensatz die ID des authors auslesen und in tabelle 1 prüfen, ob der nutzer in meiner liste vorhanden ist:

where NID=authorID AND NID2=meineID..

denn ich will im weitesten sinne sowas wie ein nachrichten system wie twitter oder eine pinnwand bei facebook machen.

also brauche ich ja 2 tabellen -> 1 für als LISTE und 1 tabelle mit allen kommentaren.

wenn ich es umgekehrt mache und nur die nutzer auslese aus meiner liste (sagen wir mal 1000 gespeicherte favoriten) und von denen mir den neusten eintrag anzeigen lasse, sind die kommentare aus der 2. tabelle aber nicht nach datum sortiert, sondern nach der reihenfolge aus tabelle 1, so wie ich die nutzer mal nacheinander mir auf meine merkliste gepeichert habe.

und wie oben beschrieben, wenn ich zuerst die datensätze aus tab2 sortiere und auslese, muß ich dann aber in tab 1 prüfen ob die nutzerid(author) aus tab 2, in tab 1 und mit meiner ID zusammen in einem datensatz ist.

also fange ich mit tab2 an, bin müßt ich unnätig viele datensätze prüfen und wenn ich mit tab1 anfange, habe ich aber nicht die passende absteigende reihenfolge der kommentare, denn es soll ja vorranging bzw. NUR nach dem alter der kommentare aus tab2 gepfrüft werden.

ich hatte einen 3. gedanken:

jedesmal wenn ein author ein kommentar schreibt, wird in tab1, wo überall seine ID drin steht, ein timestamp gesetzt.

d.h. ich prüfe normal NID=authorid AND NID2=meine ID ORDER BY Datum DESC

aber dann müßte ich ja auch in sehr vielen datensätzen den timestamp ändern.

denn gehen wir einfach mal davon aus, das der nutzer weltbekannt ist und ihm 1.000.000 leute folgen würden.

d.h. ich müßte dann 1.000.000 datensätze ändern.

im moment fällt mir nix besseres ein.

evtl. hat jemand von euch einen komplett anderen gedanken bzw. eine idee wie ich das nachrichtensystem (so was ähnliches) umsetzen kann?



hmm so ich hät evtl. noch ne andere idee. ich mache eine tab3 in der ich 1 spalte habe, inder der aktuellste timestamp ist und 1 spalte für die nutzerid.

und dann prüfe ich immer , wenn ich meine liste auslese (tab2) (per while schleife), in der schleife die tab3 where nutzerid=authorid und lese den timestamp in ein 2. array ein.

also array 1 nutzerid (aus tab2)
und array 2 timestamp

dann sortiere ich die arrays nach timestamp (somit ändert sich im selben verhältnis die annordnung der nutzerid) und schon habe ich die passende reihenfolge und dann lasse ich in einer if schleife i=0 bis 10 array1[i] aus meiner kommmentar tabelle (tab2) den neusten datensatz des authors auslesen.

Geändert von Gamer20 (03-04-2011 um 21:41 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 03-04-2011, 21:37
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Du suchst:
A Visual Explanation of SQL Joins
SQL und relationale Algebra
Die 5 Normal Formen
__________________
Wir werden alle sterben
Mit Zitat antworten
  #9 (permalink)  
Alt 04-04-2011, 06:05
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard

ok danke für den tip, ich denke mal ich müßte innerjoin nehmen oder? testen kann ich das jetzt nicht, da ich keine zeit mehr habe, muß erstmal arbeiten.
Mit Zitat antworten
  #10 (permalink)  
Alt 04-04-2011, 13:43
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

welchen Join du nimmst ... kommt halt auf die Art der Beziehung zwischen den Tabellen an ..

1:1 -> Innerjoin / Equijoin (oder halt kein expliziter Join)
1:n -> Left Join oder auch Innerjoin
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
  #11 (permalink)  
Alt 04-04-2011, 18:29
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard

1: 1 beudetet, selbe anzahl an spalten und selbe datensatznummer (z.b. 13. zeile) bei beiden tabellen?

na ich brauche dann eher left join. da 1. die anzahl der spalten unterschiedlich ist und die stelle des datensatzes (z.b. 15. zeile bei den kommentaren und 2. zeile bei der tab2 für die merkliste).

ok werd mich heut abend mal dran setzen, erstmal ausruhen von der arbeit.
Mit Zitat antworten
  #12 (permalink)  
Alt 04-04-2011, 18:38
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

1:1 Relationen werden üblicher Weise in eine Tabelle gestopft.
Tut selten Not das zu zerreißen.
Die 5 Normal Formen
__________________
Wir werden alle sterben
Mit Zitat antworten
  #13 (permalink)  
Alt 04-04-2011, 22:09
Gamer20
 Registrierter Benutzer
Links : Onlinestatus : Gamer20 ist offline
Registriert seit: Mar 2005
Beiträge: 336
Gamer20 kann nur auf Besserung hoffen
Standard

ich glaube jetzt habe ich es:

Code:
$ausgabe = mysql_query("SELECT forumbeitrag.ID,forumbeitrag.Kommentar FROM favoritenliste INNER JOIN
forumbeitrag ON (favoritenliste.NID2 = forumbeitrag.NID2 AND favoritenliste.NID = '$meineID') ORDER BY forumbeitrag.Datum DESC");
ich danke euch und das ohne unfreundliche Kommentare (das hat man leider hier öfters mal).

aber ihr wart sehr geduldig mit mir und es klappt endlich, DAAAANNNKKKEEEE!!!
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session Länge Maybe PHP Developer Forum 2 09-11-2007 22:41
array-länge ermitteln merlin_76 PHP Developer Forum 3 19-09-2005 22:03
array länge bei checkboxes skyrider1 PHP Developer Forum 3 30-06-2005 13:39
Max. Länge der Url. churcher PHP Developer Forum 2 30-04-2003 17:28
array berechnen schmalle PHP Developer Forum 13 27-11-2001 22:03

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:27 Uhr.