php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.08.2009, 16:20  
Neuer Benutzer
 
Registriert seit: 24.08.2009
Beiträge: 22
PHP-Kenntnisse:
Fortgeschritten
vaLLe befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Einfacher Suchalgorithmus

Hallo, ich bin gerade dabei mich an einer einfachen Suche zu Arbeiten. Die technischen Hintergründe mit SQL usw. stellen kein Problem da, jedoch hab ich gerade eine "Schreibblockade". Mir fällt bei besten Willen nicht ein, wie ich 2.) lösen kann...

0.) Suche nach einer sehr langen Zahl, die zerlegt werden soll und das möglichst optimal, d.h. in größt mögliche teile, um die Zahl in der Datenbank mit den meisten Stellen zu finden. Ich weiß mein Ansatz ist nicht optimal, aber er arbeitet sehr schnell; Hierzu wird die Zahl $zahl eingegeben. Im Beispiel hat diese den Wert 123456.

1.) Suche nach der vollständigen Zahl in SQL
Wenn vorhanden, Zahl -> Wert ausgeben; Suche beendet.
Wenn nicht vorhanden dann 2.)

2.) Eine Suchschleife wird aufgebaut:

PHP-Code:
1                 //1 ist in der Datenbank
12                //12 ist in der Datenbank
123              //123 ist in der Datenbank
1234             //1234 ist nicht in der Datenbank, mit substr
                    // wird die 4 abgeschnitten, 123 ausgegeben
                    // und von nun an sollte 123 "abgezogen" werden
                   //sodass die Suche nach dem Schema weiter verfährt
(123)45         //123 müssten entfallen, sodass 45 gesucht wird 
(123)456        //456 ist vorhanden, wird ausgegeben, Suche Abgeschossen 
... wäre 456 nicht vorhanden, würde wieder die 6 abgezogen werden, 45 wird gesucht & Ausgegeben und 6 wird gesucht & ausgegeben.

Anmerkung: Es kann immer mit einer 2 stelligen Zahl weiterverfahren werden, da die 2 stelligen Zahlen auf jeden Fall in der Datenbank sind und höher stellige Zahlen eventuell; je nach Aufname (deshalb wird zuerst nach einer ganzen Zahl gesucht).

Leider funktioniert bei mir 2.) nocht nicht so wie ich mir das vorstelle, welche Ansätze würdet ihr zu 2. Verfolgen?

Falls ich mich nicht klar genug ausgedrückt hab, bitte melden. Vielen Dank schonmal im Voraus für die Hilfe!

Edit: Es sieht hier so aus, als wären die gesuchten Ergebnisse immer 3-stellig. Die Ergebnisse können aber bis zu 30 Stellen haben, nur nach oben hin wird die Verteilung weniger. 2 stellige Zahlen sind auf jeden Fall vorhanden, 3 stellige meistens, 4 stellige ab und zu, Zahlen mit 5 und mehr Stellen sehr selten.

Geändert von vaLLe (24.08.2009 um 16:45 Uhr).
vaLLe ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.08.2009, 17:44  
Neuer Benutzer
 
Registriert seit: 24.08.2009
Beiträge: 22
PHP-Kenntnisse:
Fortgeschritten
vaLLe befindet sich auf einem aufstrebenden Ast
Standard

Hier auchnocheinmal mein bisheriger Code...
zuerst wird die $zahl="irgendeinezahlalsstring" eingegeben, dann erfolgt:
PHP-Code:
// ----------------------------------------------------------------------------------------------------------//Suche ganze Zahl
$sql_befehl="SELECT * FROM test WHERE zahl ='$zahl' ORDER BY `test`.`zahl` DESC LIMIT 0 , 5";                   //SQL Abholen, Listenlimit bei LIMIT
$sql_ausgabe=mysql_query($sql_befehl,$verbindung);                                                               //Verbindung aufbauen und nutzen

$gefunden "0";                                                                                              //Noch nichts gefunden, da noch nicht ausgegeben

while ($row mysql_fetch_array($sql_ausgabeMYSQL_ASSOC))                                                   //Ausgabe-Schleife
{
    
$gefunden "1";                                                                                          //Wort gefunden und ausgegeben
    
echo "<tr><td>"$row["zahl"], "</td>""<td>"$row["wort"], "</td></tr>";                                  //Ausgaben
}
// ----------------------------------------------------------------------------------------------------------//wenn gefunden 1 dann Suche beendet

$l_zahl=strlen($zahl);
$zzz="";

if (
$gefunden == "0")                                                                                           //Wenn nichts gefunden wurde weiter suchen
{
    echo 
"<b>$zahl</b> nicht gefunden...";
    for (
$z=0$z $l_zahl$z++)
    {
    
//--------------------------------------------------------------------------------------------------------//Suchschleife aufbauen
    
$zzz="$zzz" "$zahl[$z]";
    print 
"$zzz <br />";
    
//--------------------------------------------------------------------------------------------------------//Wort - Aufbau
    
$sql_befehl="SELECT * FROM test WHERE zahl ='$zzz' ORDER BY `test`.`zahl` DESC LIMIT 0 , 1";              //SQL Abholen, Listenlimit bei LIMIT
    
$sql_ausgabe=mysql_query($sql_befehl,$verbindung);                                                           //Verbindung aufbauen und nutzen

    
$gef "0";                                                                                                   //Noch nichts gefunden, da noch nicht ausgegeben

    
while ($row mysql_fetch_array($sql_ausgabeMYSQL_ASSOC))                                               //Ausgabe-Schleife
    
{
        
$gef "1";                                                                                              //Wort gefunden und ausgegeben
        //echo "<tr><td>", $row["zahl"], "</td>", "<td>", $row["wort"], "</td></tr>";                          //Ergebnis vorhanden, dann gef=1
    
}
    
//--------------------------------------------------------------------------------------------------------//Wort - Suche
    
if ($gef == "0")
    {
        
$e1 substr($zzz,0,-1);
        print 
" $e1 ";
        
$l_e1 strlen($e1);
        print 
"<b> $l_e1 </b>";
        
$w_e1 substr($zahl,$l_e1,$l_zahl); //ww
        
print "<i> $w_e1 </i>";
        
        
//----------------------------------------------------------------------------------------------------//Ausgaben...
        
$sql_befehl="SELECT * FROM test WHERE zahl ='$e1' ORDER BY `test`.`zahl` DESC LIMIT 0 , 3";              //SQL Abholen, Listenlimit bei LIMIT
        
$sql_ausgabe=mysql_query($sql_befehl,$verbindung);                                                           //Verbindung aufbauen und nutzen

        
$gef2 "0";                                                                                                   //Noch nichts gefunden, da noch nicht ausgegeben

        
while ($row mysql_fetch_array($sql_ausgabeMYSQL_ASSOC))                                               //Ausgabe-Schleife
        
{
        
$gef2 "1";                                                                                              //Wort gefunden und ausgegeben
        
echo "<tr><td>"$row["zahl"], "</td>""<td>"$row["wort"], "</td></tr>";                              //Ausgaben
        
}
        
//-----------------------------------------------------------------------------------------------------
        
        
$sql_befehl="SELECT * FROM test WHERE zahl ='$w_e1' ORDER BY `test`.`zahl` DESC LIMIT 0 , 2";              //SQL Abholen, Listenlimit bei LIMIT
        
$sql_ausgabe=mysql_query($sql_befehl,$verbindung);                                                           //Verbindung aufbauen und nutzen

        
$gef2 "0";                                                                                                   //Noch nichts gefunden, da noch nicht ausgegeben

        
while ($row mysql_fetch_array($sql_ausgabeMYSQL_ASSOC))                                               //Ausgabe-Schleife
        
{
        
$gef2 "1";                                                                                              //Wort gefunden und ausgegeben
        
echo "<tr><td>"$row["zahl"], "</td>""<td>"$row["wort"], "</td></tr>";                              //Ausgaben
        
}
        
    }
    }

vaLLe ist offline   Mit Zitat antworten
Alt 24.08.2009, 18:28  
Neuer Benutzer
 
Registriert seit: 24.08.2009
Beiträge: 22
PHP-Kenntnisse:
Fortgeschritten
vaLLe befindet sich auf einem aufstrebenden Ast
Standard

Ps.: Die Thematik wird in der Einsteiger-Sektion besprochen... Dies hier könnte gelöscht werden...

Geändert von vaLLe (24.08.2009 um 19:01 Uhr).
vaLLe ist offline   Mit Zitat antworten
Antwort


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
[Erledigt] Bildupload mit einfacher Abfrage KATERchen PHP Tipps 2009 20 22.01.2009 17:04
MySQL - Fehler in einfacher Abfrage oden Datenbanken 11 03.01.2009 20:03
Ein ganz einfacher String-Vergleich. Oder doch nicht?? vollkommenegal PHP Tipps 2008 11 11.10.2007 17:29
Geht das auch einfacher? PHP Tipps 2006 1 17.04.2006 09:16
[Erledigt] Einfacher programmier Plan Off-Topic Diskussionen 5 27.03.2006 12:02
[Erledigt] Einfacher Aufbau eines internen Mailsystems Datenbanken 13 10.02.2006 11:03
einfacher PHP Styleswitcher - ich bin zu doof PHP Tipps 2007 12 27.11.2005 15:30
Einfacher Verbrauchsrechner in PHP PHP Tipps 2005-2 2 28.10.2005 10:03
Fehler kann ihn nicht finden und geht es einfacher? PHP Tipps 2005-2 3 06.10.2005 16:33
Date() Rechnung einfacher machen? tekknotrip PHP Tipps 2005-2 3 20.08.2005 09:36
[Erledigt] gannz einfacher php-index mit listing-Funktion PHP Tipps 2005-2 6 21.06.2005 03:01
einfacher Kennwortschutz:WWW-authenticate: basic realm=\&quo PHP Tipps 2005 4 29.03.2005 16:52
vielseitigen Suchalgorithmus Crypi PHP Tipps 2004-2 6 17.12.2004 15:27
Einfacher echo-Befehl will nicht! PHP Tipps 2004 2 24.08.2004 13:24
Möglichst einfacher Farbwähler gesucht Beitragsarchiv 7 27.07.2004 14:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php suchalgorithmus, suchalgorithmen php, suchalgorithmus php, einfacher suchalgorithmus, mysql suchalgorithmus, php suchalgorhytmus, suchalgorithmus c, suchalgorithmen sql, javascript suchalgorithmus, php suchalgorithmen, sql suchalgorithmus, suchalgorithmen c, fehler suchalgorithmus, suchalgorithmen mysql, suchalgorithmus basic, suchalgorithmus php datenbank wörter, einfacher algorithmus php, php weitersuchen wenn nichts, suchalgorithmus zahlen, suchalgorithmen datenbank

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:48 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