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 29-08-2007, 14:11
schnikemike
 Newbie
Links : Onlinestatus : schnikemike ist offline
Registriert seit: May 2005
Beiträge: 86
schnikemike ist zur Zeit noch ein unbeschriebenes Blatt
Standard Serverschonend prüfen ob Wort in Spalte vorhanden ist - mysql

Hallo.

Ich habe folgendes Problem.

Ich habe ein Script geschrieben welches alle Referals einer Seite in eine Datenbank (mysql) einträgt.

in Suchwörter , Suchbot usw zerlegt und in diese in eine andere Tabelle schreibt.


Soweit kein problem.

Nun möchte ich das Script aber nur ausführen lassen wenn das Suchwort noch nicht in der Spalte vorhanden ist.

Soweit wäre das auch kein ding. Spalte -> in Array auslesen und durchsuchen.



Da die Datenbank aber leider sehr gross ist ( wird) würde dies den Server unötig Belasten.


Was gibt es noch für möglichkeietn aus ein Grosen Datenbank - > (Spalte) zu Prüfen ob ein Wort (String) schon vorhanden ist.
Mit Zitat antworten
  #2 (permalink)  
Alt 29-08-2007, 14:24
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

WHERE ?
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #3 (permalink)  
Alt 29-08-2007, 14:29
jens76
 Member
Links : Onlinestatus : jens76 ist offline
Registriert seit: Dec 2004
Beiträge: 328
jens76 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sieh dir mal die where clausel an
also müßte dann heißen...

... where spanlte_1 = 5 AND spanlte_2 LIKE '%test%' OR ....
Mit Zitat antworten
  #4 (permalink)  
Alt 29-08-2007, 14:32
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Davon abgesehen, dass ich nich weiß was ne spanlte is ( ) weiß ich ja nich, wie deine Datenbankstruktur is. Wenn du immer das gleiche wort prüfen willst, wozu gibts dann mehrere spalten wo das drinne steht? Ist da etwa Redundanz vorhanden?

Edit: Achso, suchbot.. kA was du da genau speicherst, aber könnte hinkommen mit dem WHERE, jo - außer das das OR am Ende überflüssig is.
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #5 (permalink)  
Alt 29-08-2007, 15:06
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hast du alle Suchworte in derselben Spalte oder hast du verschiedene Spalten ?
Falls alle in dieselbe Spalte kommen, könntest du doch die Spalte als UNIQUE definieren und MySql würde dafür sorgen, dass kein Begriff doppelt eingetragen wird.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #6 (permalink)  
Alt 29-08-2007, 18:23
schnikemike
 Newbie
Links : Onlinestatus : schnikemike ist offline
Registriert seit: May 2005
Beiträge: 86
schnikemike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für die Antworten.






Ja es kommen alle Suchwörter in die selbe spalte.
Das mit unique wäre wohl eine gute Idee.

an
"where"

habe ich auch schon gedacht kann mir aber nicht vorstellen das bei sehr grossen Datenbanken eine vernüftige leistung erziehlt wird.

Das Scipt wird teileweise bis zu 100x gleichzeitig aufgerufen.
Mit Zitat antworten
  #7 (permalink)  
Alt 29-08-2007, 19:07
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

auf jeden fall schneller als "alles auslesen und in_array() ausführen".

aber sinnvoller ist die überlegung, was du eigentlich suchst und ob eine anpassung der datenstruktur nicht besser ist, z.b. über eine tabelle mit den keywords oder wie auch immer.
Mit Zitat antworten
  #8 (permalink)  
Alt 30-08-2007, 17:41
schnikemike
 Newbie
Links : Onlinestatus : schnikemike ist offline
Registriert seit: May 2005
Beiträge: 86
schnikemike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hm.


Im Grunde geht es mir darum auszuwerten welche Suchworte bei google und co verwendet wurden.


Bei einer gewissen Anzahl neuern Referals soll das script alle neuen Suchworte in einer Datenbank ablegen.

Damit aber nicht zig tausen gleiche Einträge vorhanden sind will ich eben nur einen Eintrag wenn das Suchwort noch nicht vorhanden ist.


Da logischerweise das Such wort bzw die suchwörter unterschiedlich sind kann ich das keine andere Prüfung machen.
Mit Zitat antworten
  #9 (permalink)  
Alt 30-08-2007, 17:51
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Häh? Versteh nich was dein Problem ist.

Vielleicht suchst du ja nach REPLACE INTO

Zitat:
Da logischerweise das Such wort bzw die suchwörter unterschiedlich sind kann ich das keine andere Prüfung machen.
Unterschiedlich zu was? Keine Andere Prüfung außer welche?
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #10 (permalink)  
Alt 30-08-2007, 17:57
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

diese prozedur (schlüsselwörter herausholen) sollte vielleicht besser jedes mal beim hinzufügen eines neuen eintrags stattfinden.
Mit Zitat antworten
  #11 (permalink)  
Alt 31-08-2007, 17:24
schnikemike
 Newbie
Links : Onlinestatus : schnikemike ist offline
Registriert seit: May 2005
Beiträge: 86
schnikemike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
diese prozedur (schlüsselwörter herausholen) sollte vielleicht besser jedes mal beim hinzufügen eines neuen eintrags stattfinden.
Und genau da ist das Problem!

Dies macht ein anderes Script undabhängig von dem welche die Wörter herausfiltert.

bzw alle Referals der Gesammten Seiten werden in der Datenbank abgelegt.
Ich könnte zwar den Eintrag dort machen aber das System soll ohne veränderungen bleiben.

Zitat:
Häh? Versteh nich was dein Problem ist.
Eigendlich genau das was ich geschriebn haben.

ich versuche es mal anders:

Das Script liest bei einem Seitenaufruf eine Datenbank aus und gibt diese Daten dann Fomatiert aus.
Im Hintergrund sollen die ausgegeben Daten wiederum in eine andere Datenbank geschrieben werden. (anderer Server)

Also zb steht in der Orginal Datenbank:

"
http://www.irgenwas.de/q=blabla+suchwort+wasanderes
"
Das script ermittelt das Suchwort bzw die Worte
und gibt diese aus.
Gleichzeitig soll abgefragt werden ob das Wort bzw die Worte schon in einer Tabelle - bzw. Spalte vorhanden sind. (auf dem anderen Server)
Wenn ja dann wird nicht in die Datenbank geschriebn wenn
nein schreibe in die Datenbank die neuen Suchworte.
So mal vereinfacht dargestellt.

Jetzt kommt das Prob:
Bei aufruf dieser Seite wird das ganze so um die 500 mal gemacht - da auch 500 Einträge ausgegeben werden sollen.
Somit würde bei jeder einzelnen ausgabe Tabelle auf ein neues durchsucht werden.
So würde der Server aber früher oder später wohl in die Knie gehen.
Deshalb die Frage wie es anderes gehen könnte. -
Der Ansatz das dies MYSQL erledigt finde ich gut ( Unique) - aber dann gibt es keien Rückgabewert ob vorhanden oder nicht.


Replace Into wäre eine möglichkeit wenn man nur Doppelte Einträge vermeiden will.
Ich will aber vermeiden das irgendwas Geschrieben wird wenn vorhanden.

So wie ich das sehen wäre allerdings eine Prüfung wohl aufwendiger für den server als den eintrag einfach zu überschreiben.


Sehe ich das so richtig?
Das 2 Problem ist das ich einen Zähler in dem Script verwende der sich erhöhen soll wenn das Wort schon vorhanden ist.

Somit wäre dies dann wohl auch keine Lösung mehr da ich dann ja keine Rückgabewert mehr habe.

Geändert von schnikemike (31-08-2007 um 17:33 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 31-08-2007, 17:29
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Meine Güte, bitte editiere mal alle unnötigen Zeilenumbrüche und vor allem die doppelten aus deinem Post raus - das kann ja kein Mensch lesen x_X
Mit Zitat antworten
  #13 (permalink)  
Alt 31-08-2007, 17:33
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Replace Into wäre eine möglichkeit wenn man nur Doppelte Eintäge vermeiden will.

Ich will aber vermeiden das irgendwas Geschrieben wird wenn vorhanden.
Was als "doppelter Eintrag zählt" kommt darauf an, was als Unique definiert ist.
__________________
ich glaube
Mit Zitat antworten
  #14 (permalink)  
Alt 01-09-2007, 11:34
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Das ist doch käse, wozu speicherst du denn die ganze URL überhaupt ab? Speicher doch einfach gleich die Suchwörter ab?
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #15 (permalink)  
Alt 03-09-2007, 12:53
schnikemike
 Newbie
Links : Onlinestatus : schnikemike ist offline
Registriert seit: May 2005
Beiträge: 86
schnikemike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das ist ganz einfach.

Es Handelt sich um einn Script welches Statistiken anlegt.

Dabei werden die Urls eben mit abgespeichert. MIt dem anderen Script (um welches es sich Handelt) werden sie eben ausgewertet.




Warum Doppelt moppeln wenn die Daten eh schon inder datenbank sind?!.
Wenn dann müsste das Staistik Script verändert werden.

Die soll aber eigendlich nicht geschehen.

Na ich denke mal hier wurde jetzt auch schon alles dazu gesagt.

Ich werde die Abfrage jetzt vorübergehen mit einem Cronjob erledigen.
Mit Zitat antworten
Antwort

Lesezeichen


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

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 04:49 Uhr.