php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.05.2009, 20:03  
Benutzer
 
Registriert seit: 09.05.2009
Beiträge: 45
PHP-Kenntnisse:
Anfänger
defcut ist zur Zeit noch ein unbeschriebenes Blatt
Standard String auf Stichwörter durchsuchen

Hallo liebe PHP Gemeinde, ich möchte Stichwörter aus einem String in eine Array Variable schrieben... das soll dann ungefähr so aussehen:

PHP-Code:
$text "Berlin, Dortmund, Hamburg, Bremen";
$stichwort[1] = "Hamburg";
$stichwort[2] = "München";
$stichwort[3] = "Berlin";

...

$ergebnis[1] = TRUE;
$ergebnis[2] = FALSE;
$ergebnis[3] = TRUE
nur ist es so, dass der text wesentlich länger ist und die anzahl der stichwörter auch...

wüsste jmd vllt eine lösung zu meinem problem
defcut ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.05.2009, 20:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Also das in Fortgeschritten ist echt ein Witz! Und gib Dir nur keine Mühe,

- das Problem zu beschreiben
- zu suchen
- selbst initiativ zu werden und Ansätze zu posten


[MOD: verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 09.05.2009, 20:31  
Benutzer
 
Registriert seit: 09.05.2009
Beiträge: 45
PHP-Kenntnisse:
Anfänger
defcut ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hmm wie soll ich das Problem beschreiben?!... Also ich habe produkte, die ein Kunde bestellt und mein php script soll am ende die entfernung von dem produkt zum kunden berechnen. jedoch kann es sein, dass ein kunde mehrere produkte bestellt und diese nicht alle am gleichen lagerort sind... ursprünglich hatte ich dieses script um die kürzeste entfernung vom Lagerort bis zum Kunden zu berechnen

PHP-Code:
<?php

// die PLZ1 nach der wir suchen
$plz1 $_SESSION['bestellung_plz'];

// die PLZ2 nach der wir suchen
$plz2 '32791';  // Lage

// die PLZ2 nach der wir suchen
$plz3 '45739';  // Oerkenschwick

// Erdradius (geozentrischer Mittelwert) in Km
$radius 6378.137;

// Kreiszahl Pi 
$pi pi();

// SQL Abfrage PLZ1
$sql_rad mysql_query("SELECT lon, lat FROM `plz_tabelle` WHERE `plz` = '$plz1' ");
$erg_rad mysql_fetch_object($sql_rad);

// Umrechnung von GRAD IN RAD
$L1 $erg_rad->lon;
$B1 $erg_rad->lat;

// SQL Abfrage PLZ2
$sql_rad mysql_query("SELECT lon, lat FROM `plz_tabelle` WHERE `plz` = '$plz2' ");
$erg_rad mysql_fetch_object($sql_rad);

// Umrechnung von GRAD IN RAD
$L2 $erg_rad->lon;
$B2 $erg_rad->lat;

// SQL Abfrage PLZ2
$sql_rad mysql_query("SELECT lon, lat FROM `plz_tabelle` WHERE `plz` = '$plz3' ");
$erg_rad mysql_fetch_object($sql_rad);

// Umrechnung von GRAD IN RAD
$L3 $erg_rad->lon;
$B3 $erg_rad->lat;

// Umrechnung der Gradzahl in RAD:
$breite1     $B1 180 $pi ;
$länge1     $L1 180 $pi ;
$breite2     $B2 180 $pi ;
$länge2     $L2 180 $pi ;
$breite3     $B3 180 $pi ;
$länge3     $L3 180 $pi ;

// Die Formel zur Entfernungsberechnung bedient sich einer Einheitskugel:
// e = ARCCOS[ SIN(Breite1)*SIN(Breite2) + COS(Breite1)*COS(Breite2)*COS(Länge2-Länge1) ]

$e acossin($breite1)*sin($breite2) + cos($breite1)*cos($breite2)*cos($länge2-$länge1) );
        
$entfernung1 $e $radius;


// Die Formel zur Entfernungsberechnung bedient sich einer Einheitskugel:
// e = ARCCOS[ SIN(Breite1)*SIN(Breite2) + COS(Breite1)*COS(Breite2)*COS(Länge2-Länge1) ]

$e acossin($breite1)*sin($breite3) + cos($breite1)*cos($breite3)*cos($länge3-$länge1) );
        
$entfernung2 $e $radius;

// Welche entfernung ist kürzer? (Luftlinie)
if ($entfernung1 $entfernung2) { $entfernung $entfernung2; }
else { 
$entfernung $entfernung1; }

// Route = Luftlinie + 25%
$route ceil($entfernung 1.25);

if (
$route 11){
  
$lieferpauschale 15;
  
$lieferpreis "15,00 €/10km";
}
else {
  
$lieferpauschale 15;
  for(
$count2 $route 10$count2 0$count2--) {
    
$lieferpauschale $lieferpauschale 1;
  }
  
$lieferpreis number_format(($lieferpauschale $route), 2',''.') . " €/km";
}

?>
Nur jetzt hab ich das problem, dass mehrere Lagerorte vorhanden sind und dass nicht jedes produkt am Lagerort verfügbar ist. Dazu wollte ich die entfernungsberechnung erstmal in eine funktion packen... und in der sql datenbank ist zu jeden produkt eine string ariable dazu gekommen, die zeigt, wo dieses produkt vorhanden ist bsp: Produkt_ID = 1 ... Produkt_Lagerort = "Berlin, Bremen, München"

Jetzt möchte ich für jedes produkt in der bestellliste vom kunden eine verfügbarkeits- und entfernungsberechnung machen. dazu müsste ich erstmal die string variable auf die stichwörter durchsuchen... in einer array variable ausgeben
defcut ist offline  
Alt 09.05.2009, 20:37  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Klassischer Error by Design. Du solltest deine Datenbank normalisieren. Bedeutet nicht bei dem Produkt die Städte als String speichern sondern 3 Tabellen erstellen. Eine für die Produkte, eine für alle Städte (Lagerorte) und eine Verbindungtabelle (id_produkt, id_lagerort). Damit vermeidet man exakt diese Probleme die du jetzt hast.
Flor1an ist offline  
Alt 09.05.2009, 20:53  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Und schon offenbart sich eine komplett andere Frage. Wie man sieht, quasseln wir uns hier nicht grundlos Fussel an den Mund.

Florian hat recht. Mit der richtigen Speicherung wird das eigentliche Problem kundenunabhängig, sozusagen atomar, und beschränkt sich nur noch auf die Berechnung Lagerort-Lieferort.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 09.05.2009, 20:59  
Benutzer
 
Registriert seit: 09.05.2009
Beiträge: 45
PHP-Kenntnisse:
Anfänger
defcut ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja das hab ich auch schon versucht... doch ein produkt kann auch auf verschiedenen lagerorten vorhanden sein... es ist ja nicht so dass ein Produkt nur in einem bestimmten Lagerort vorhanden ist... was ich jetzt wisen möchte ist, wie ich das problem ganz oben behebe.
defcut ist offline  
Alt 09.05.2009, 21:03  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Du kannst dann in die Tabelle die die Relation darstellt ja einfach einen weiteren Eintrag für dieses Produkt machen wo sich eben die LagerortID ändert. Bitte schau dir mal in Wikipedia oder in einem Buch an was man unter Normalisierung versteht.

Die Lösung zu deinem Problem liegt genau dabei die Datenbank so zu strukturieren. Alles andere wäre:
1. Schlecht zu warten
2. Problematisch wenn du mit den Produkten oder den Lagerorten jemals noch etwas anderes machen möchtest.
3. es einfach falsch von der Programmierung ist.

Daher werden wir auch nicht helfen falsche Ansätze zu unterstützen. Versuch es richtig zu machen und du wirst glücklicher damit werden.
Flor1an ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Records mit PHP ? SimStar001 PHP Tipps 2009 11 08.04.2009 15:14
[Erledigt] String nach Wort X durchsuchen und rest löschen? ph|L PHP Tipps 2009 3 03.04.2009 12:48
String nach Zeichenketten durchsuchen und teilen? Peppino PHP Tipps 2008 3 26.09.2008 22:14
PHP5 SOAP - Problem mit Arrays Calexico PHP-Fortgeschrittene 0 11.09.2008 12:06
[Erledigt] stdClassObjekt nach String durchsuchen TAZweb PHP Tipps 2008 6 21.07.2008 08:38
Event abfangen Ambience JavaScript, Ajax und mehr 4 30.08.2007 14:36
String durchsuchen und ersetzen unabhängig von Groß / KLein PHP Tipps 2006 2 09.07.2006 23:29
String durchsuchen - Spam Problem mit Gästebuch havok PHP Tipps 2006 23 15.03.2006 18:44
String nach bestimmten Zeichen durchsuchen PHP Tipps 2006 11 03.02.2006 11:51
string splitten und nach bestimmten wörtern durchsuchen PHP Tipps 2005-2 5 11.09.2005 13:05
Alle Felder nach String durchsuchen Jacks Rache Datenbanken 6 08.08.2005 09:46
Alle Spalten nach String durchsuchen Jacks Rache Datenbanken 0 05.08.2005 09:41
String durchsuchen und Zeichenkette ersetzen PHP Tipps 2005-2 2 10.07.2005 22:48
string durchsuchen Sclot PHP Tipps 2005 6 23.01.2005 17:08
reguläre ausdrücke: string durchsuchen PHP Tipps 2004 8 20.09.2004 09:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
string mit mehreren stichwörtern durchsuchen, texte mit stichwörtern durchsuchen, formel zur entfernungsberechnung

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum