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 04-06-2008, 10:04
fuchs1271
 Newbie
Links : Onlinestatus : fuchs1271 ist offline
Registriert seit: Jun 2008
Beiträge: 5
fuchs1271 ist zur Zeit noch ein unbeschriebenes Blatt
Standard [SQL allgemein] Wörter splitten

Hallo

Ich lese aus der Db Keywörter aus welche durch
ein komma und leerzeichen getrennt sind, ausgebnen
tut er mir das ganze aber als komplette zeile, ich will aber
einzelnde wörter haben. Habe das ganze schon
mit split versucht klappt aber irgendwie nicht.
Hier mal der code vom script

PHP-Code:
<?php
  mysql_connect
("localhost",
  
mysql_select_db("    ")
 or die (
"Keine Verbindung moeglich");
  
mysql_select_db("    ") or die
  (
"Die Datenbank existiert nicht");




$abfrage "SELECT keywords FROM dir_links ORDER BY id ASC LIMIT 0 , 20 ";
$result mysql_query($abfrage);
while (
$row mysql_fetch_array ($result))  

<<<
hier müssten di doch schon gesplitet werden oder?>>>



$data[] = $row['keywords']."\n".$row['keywords2']."\n".
$row['keywords3']."\n".$row['keywords4']."\n".$row['keywords5']."\n".$row['keywords6']."\n".
$row['keywords7']."\n".$row['keywords8']."\n".$row['keywords8']."\n".$row['keywords10']."\n".
$row['keywords11']."\n".$row['keywords12']."\n".
$row['keywords13'];

}

$data = implode('',$data);

// Woerter splitten
$words = preg_split("/\n/", $data);
$acv = array_count_values( $words );

$bannedwords = array("fuck", "ficken", "milf", "viagra", "votzen", "schlampe",);
$i = 0;
foreach($acv as $k=>$v) {
    if (!in_array($k,$bannedwords) and eregi("[a-zA-Z]",$k) and $i<=40 and strlen($k)>2) {
  if (isset($new_acv[strtolower($k)] )) 
  $new_acv[strtolower($k)] += $v;
  else 
  $new_acv[strtolower($k)] = $v;
  $i++;
    }
}



// Clouds erstellen
foreach( $new_acv as $k=>$v) {
$size = $v*1;
$weight = $v*4;

$k = str_replace (array("ä", "ö", "ü", "ß", " ", ","), array("ae", "oe", "ue", "ss", "-", " "), $k);
$kurl = urlencode("$k");



echo "<a href='suchwort/$kurl.html'>$k</a>&nbsp;&nbsp;&nbsp;\n";
}


?>
Danke schon mal für die Hilfe

Geändert von fuchs1271 (04-06-2008 um 10:19 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 04-06-2008, 10:08
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.721
Kropff befindet sich auf einem aufstrebenden Ast
Standard

1. code umbrechen
2. falsches forum, daher * verschieb *

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 04-06-2008, 10:09
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

1. Code umbrechen gemäss Board Regeln
2. Wie stehen die Daten in $row['keywords']?
3. Wenn du sagst die Keywords seien durch , und Leerzeichen getrennt. Wieso versuchst du dann die Keywords an \n zu splitten?
__________________
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
  #4 (permalink)  
Alt 04-06-2008, 10:18
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Statt
$data[] = $row['keywords']."\n".$row['keywords2']."\n".
$row['keywords3']."\n".$row['keywords4']."\n".
$row['keywords5']."\n".$row['keywords6']."\n".
$row['keywords7']."\n".$row['keywords8']."\n".
$row['keywords8']."\n".$row['keywords10']."\n".
$row['keywords11']."\n".$row['keywords12']."\n".
$row['keywords13'];

würde ich mal $data[] = $row['keywords'];
verwenden
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #5 (permalink)  
Alt 04-06-2008, 10:23
fuchs1271
 Newbie
Links : Onlinestatus : fuchs1271 ist offline
Registriert seit: Jun 2008
Beiträge: 5
fuchs1271 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo

So funktionierts nicht. Jetzt zeigt er mir die kompltten keywörter als einer zeile an welche dann komplett verlinkt ist. es soll aber jedes einzelne wort verlinkt sein. Ich denk das Problem ist das die wörter schon gesamt als zeile ausgelesen werden bzw übergeben werden

Mfg Thomas

Hier mal dein Link zum verstehen, der verlinkt nur die komplette zeile

http://www.startkatalog.de/artikel-1...nkpflicht.html

Geändert von fuchs1271 (04-06-2008 um 10:26 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 04-06-2008, 11:07
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

was steht denn in dieser Zeile:
$data[] = $row['keywords']."\n".$row['keywords2']."\n".
$row['keywords3']."\n".$row['keywords4']."\n".
$row['keywords5']."\n".$row['keywords6']."\n".
$row['keywords7']."\n".$row['keywords8']."\n".
$row['keywords8']."\n".$row['keywords10']."\n".
$row['keywords11']."\n".$row['keywords12']."\n".
$row['keywords13'];

Deiner Meinung nach in den ganzen $row['keywordsnn'] ??

nix!
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #7 (permalink)  
Alt 04-06-2008, 11:19
fuchs1271
 Newbie
Links : Onlinestatus : fuchs1271 ist offline
Registriert seit: Jun 2008
Beiträge: 5
fuchs1271 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mit $row['keywords'] gebe ich an wieviele einzelne angezeigt werden welches ich noch mit
PHP-Code:
ORDER BY id ASC LIMIT 0 "; 
angeben kann, werde jetzt mal das auf 3 setzen, damit du das mal siehst.
dann macht der mir wie drei sätze.

Mfg Thomas
Mit Zitat antworten
  #8 (permalink)  
Alt 04-06-2008, 11:28
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Frage war eine andere...
was steht in $row['keywords2']??
-> nix, also was soll der Blödsinn mit den ganzen keywords???
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #9 (permalink)  
Alt 04-06-2008, 11:33
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

Afaik gibt es keine String Split Funktion in MySql. Habe zumindest nix im Manual gefunden. Also wirst du die Keywords mit PHP Mitteln zerlegen müssen. Wenn also die KWs durch , getrennt sind dann könntest du das folgende probieren
PHP-Code:
$abfrage "SELECT keywords FROM dir_links ORDER BY id ASC LIMIT 0 , 20 ";
$result mysql_query($abfrage);
while (
$row mysql_fetch_array ($result)) {
  
$data[]['keywords'] = explode(', ',$row['keywords']);
[...] 
Dann sollte zu jedem Datensatz ein Array keywords existieren, wo die einzelnen KW als Elemente drin stehen.
__________________
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
  #10 (permalink)  
Alt 04-06-2008, 11:35
fuchs1271
 Newbie
Links : Onlinestatus : fuchs1271 ist offline
Registriert seit: Jun 2008
Beiträge: 5
fuchs1271 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nehme ich das raus so das nur noch einmal $row['keywords'] da steht verbindet er alles zu einer zeile, siehe seite.

oder kann man das ganze ander lösen?
sprich in der datenbank steht die Tabelle keywords mit wort, wort2, wort3 usw. und das will ich auslesen und jedes einzelnd verlinken mit der suche, so wie das jetzt auch schon der fall ist nur das ich die einzelnen wörter nicht rausbekomme.

Mfg Thomas
Mit Zitat antworten
  #11 (permalink)  
Alt 04-06-2008, 11:39
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

MelloPie hat völlig recht. Und in $data steht genau dasselbe wie $row[$keywords], plus ein paar Zeilenumbrüche. Dein Problem ist nicht (nur) das Aufteilen der Wörter, sondern das Auslesen der Datenbank und das nicht normalisierte DB-Design. Mach für jedes Wort einen eigenen DB-Eintrag, dann wird dir solches Gewürge erspart.

Falls dich das aber überfordert, und du lieber dein vertraktes Design weiterpflegst, mit
PHP-Code:
<?php
$abfrage 
"
    SELECT 
        keywords 
    FROM 
        dir_links 
    ORDER BY 
        id ASC 
    LIMIT 
        0 , 20 "
;
$result mysql_query($abfrage) or exit(mysql_error());
$words = array();
while (
$row mysql_fetch_assoc($result))  {
    
array_push($wordspreg_split('/\s*,\s*/U'$row[$kewords]));
}
?>
hast du dann alle Wörter einzeln in $words
__________________
Gruss
H2O

Geändert von H2O (04-06-2008 um 11:55 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 04-06-2008, 11:49
fuchs1271
 Newbie
Links : Onlinestatus : fuchs1271 ist offline
Registriert seit: Jun 2008
Beiträge: 5
fuchs1271 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Irgendwie funktioniert das ganze nicht, wenn ich ne neue tabelle anlege und jedem wort eine id zuweise gehts komischer weise, siehe link.

also jetzt ist es so

id wort
id wort2

und so gehts nicht
id keywords
wort

id keywords
wort2

Mfg Thomas

Geändert von fuchs1271 (04-06-2008 um 11:52 Uhr)
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 21:20 Uhr.