SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 22.07.2008, 00:16:59
zu1u zu1u ist offline
Anfänger
 
Registriert seit: Jul 2008
Alter: 39
Beiträge: 19
suche nach Buchstaben..

Hallo Leute,
ich habe eine Tabelle mit Woertern. DB laeuft mit utf8_unicode_ci
Jetzt muss ich eine SQL Abfrage basteln mit der mir der Datensatz ausgegeben wird, wo das Wort einer Variable in den ersten beiden Buchstaben am naehsten (Alphabetisch gesehen) ist. Entscheidend ist dabei aber nur 'am naehsten' nach UNTEN. Je weiter vorne der Buchstaben ist umso mehr gewicht hat er.. (also so wie man sich das normal denkt)

Also z.B. meine tabelle hat die eintraege aa, ab, af, az, bx und ich haette gern den Datensatz passend zu 'ax' dann wuerd ich gern den von af bekommen.

Wie kann ich sowas machen? Hab keine wirkliche Idee... danke schonmal fuer Hilfestellungen

Geändert von zu1u (22.07.2008 um 00:18:26 Uhr)
Mit Zitat antworten
  #2  
Alt 22.07.2008, 01:55:00
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
AW: suche nach Buchstaben..

Hi,

also eine Lösung bei der du noch bisschen was lernst und probieren kannst (welche aber sicher nicht die beste ist) wäre folgenes:

Du kannst jeden Buchstabe in einen ASCII Wert umwandeln mit der Funktion ord(); Beispiel:

PHP-Code:
echo ord('a'); 
Sollte dir eine 97 ausgeben. Das ist also er ASCII Wert. Diese kannst du alle in einer ASCII-Tabelle nachlesen.

Mithilfe diverser Stringfunktionen kannst du nun in deinen zu suchenden Strings jeweils den ersten Wert auslesen. Hast du hier Übereinstimmungen schmälert sich die Zielmenge bereits und du gehst zum 2. Buchstabe und machst das gleiche solange bist du keine Übereinstimmung mehr hast. Dann nimmst du einfach den Wert, der am wenigsten Differenz zwischen beiden Buchstaben hat (dazu musst halt den größeren Wert vom kleineren abziehen, sonst bekommst manchmal negative Zahlen). Aufpassen musst du auch bei einem Leerzeichen, da dieses einen kleineren Wert (glaube 32) liefert.

Hoffe du hast die Idee verstanden. Wenn nicht, dann mach Meldung mit deinen Versuchen oder beschreibe, was du nicht verstehst ;)

//Edit: Sorry, was ich gerade erst bemerkt habe: Du wolltest eine SQL Lösung? Das ist dies leider nicht, aber wenn es nicht so viele Werte sind, dann kannst du dir ja alle Werte aus der Datenbank auslesen und in ein Array schreiben. Unperformant, aber OK.

//Edit2: Du könnste es so machen. du hast das referenz-$wort und in der Spalte Wörter.
PHP-Code:

$sql 
"SELECT
            feld
        FROM
            tabelle
        WHERE
            woerter LIKE '" 
$wort "%'
        ORDER BY
            woerter"

Nimm den ersten Treffer oder schneide den letzten Buchstabe ab und probiere das ganze nochmal und so weiter. Denke so ähnlich könnte es gehen, wenn nicht, dann schiebe ich es auf die Uhrzeit :)

Domi
__________________

the best way to be ready for the future is to invent it

Geändert von Domi (22.07.2008 um 05:55:22 Uhr) Grund: :S .. In der Nacht kann man schonmal was überlesen .. vorallem wenn man nebenbei sich noch mit Leuten per IM unterhält... SRY
Mit Zitat antworten
  #3  
Alt 22.07.2008, 13:56:09
zu1u zu1u ist offline
Anfänger
 
Registriert seit: Jul 2008
Alter: 39
Beiträge: 19
AW: suche nach Buchstaben..

ja ich suche eher eine Loesung auf SQL Basis, da mir die Sache (so wie ich so momentan gemacht habe) zu langsam ist... ich denke mal deine Ansaetze waeren auch nicht unbedingt schneller?

momentan hab ich es in PHP so geloest.. aber mir waere es in SQL halt lieber (vorrausgesetzt das geht!?)
kann man es vieleicht mit regexp machen?


Code:
do {
	$sql_page_prep= "SET @page=0;";
	mysql_query($sql_page_prep) or die(mysql_error());
	$sql_page = "SELECT page2, word2 FROM
		           (SELECT @page:=@page+1 AS page2,word AS word2
			   FROM word 
			   WHERE LOWER(word) LIKE LOWER('".$char."%')
			   ORDER BY word ASC) AS newtable
     			   WHERE LOWER(word2) LIKE LOWER('".$searchstring."%')
			   ORDER BY word2 ASC";			
	
	$result_page = mysql_query($sql_page) or die(mysql_error());
	$num_result_page = mysql_num_rows($result_page);
	if($num_result_page==0) 
		$searchstring=$char.chr(ord(strtolower(substr($searchstring,1,1)))-1);
			
} while( $num_result_page==0 && ord(strtolower(substr($searchstring,1,1)))!=96);
Mit Zitat antworten
  #4  
Alt 24.07.2008, 20:15:25
zu1u zu1u ist offline
Anfänger
 
Registriert seit: Jul 2008
Alter: 39
Beiträge: 19
AW: suche nach Buchstaben..

keiner mehr ne idee?

sonst muss ichs so lassen :O
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
wie gruppiere ich einen Array? burnhard_1979 PHP Grundlagen 2 25.06.2008 16:13:46
Suche nach drei Zahlen oder Buchstaben in einer Tabelle? thefifa MySQLi/PDO/(MySQL) 3 21.08.2006 16:18:05
Überlegungen einer sinnvollen Suche Tikiwiki Off Topic Area 4 15.12.2005 11:57:44
Suche utf-8 odessa MySQLi/PDO/(MySQL) 5 31.10.2005 13:53:43
such script; suche nach plz patrickn MySQLi/PDO/(MySQL) 9 16.08.2003 02:22:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:39:12 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt