Datenbank nach variablen durchsuchen

Alt 07.09.2011, 15:31   # 21
darkii
Threadstarter
 
Registriert seit: 16.05.2011
Beiträge: 39
Ok Chef,

also wie folgt:

Die Anforderungen der Software/Php Seite:
-eine Datenbak mit einigen Wörtern (erstmal und erledigt)
-eine möglichkeit finden wie ich bei eingabe einer Buchstabenreihe "ahus" logische Wörter rausbekomme (hier habe ich es bereits mit logischen Operatoren probiert. Für diese würde ich aber eine viel zu lange Schleife brauchen.)
-eine Möglichkeit wie auch längere Buchstabenketten erkannt werden ohne den Code umzuschreiben

Meine Probleme:
-Ich bekomme es ohne eine Zerlegung der Buchstaben in Variablen nicht hin
-ich weis nicht wie ich mit regulären Ausdrücken direkt in der Datenbank suche und Google hatt keine Lust mir da zuhelfen...
-Es gibt angeblich mehr als 4 Möglichkeiten das Problem zulösen und ich bin noch auf keinen gekommen

So und bei Fragen frag einfach ich versuch sie zu beantworten... Und danke für die Ehrlichkeit
  Mit Zitat antworten
Alt 07.09.2011, 15:56   # 22
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Aber Du hast schon gesehen, dass ich Dir einen passenden regulären Ausdruck bereits geliefert hatte? "/^[ahus]+$/" (um Anfang/Ende ergänzt). Die "/" brauchst Du oder brauchst Du nicht, je nachdem, womit Du die Pattern verarbeitest.

Schon mal z.B. so probiert:
Code:
SELECT * FROM tabelle WHERE spalte REGEXP '^[ahus]+$'
Eine gute Seite (aber englisch) zu regulären Ausdrücken, hier mit einer Unterseite für SQL: http://www.regular-expressions.info/mysql.html
  Mit Zitat antworten
Alt 07.09.2011, 16:04   # 23
darkii
Threadstarter
 
Registriert seit: 16.05.2011
Beiträge: 39
englisch stört mich nicht und das muss ich übersehen habe. Da mach ich mich gleich mal ran

Kurze frage noch dazu kennst du noch andere Möglichkeiten ausser regexp ? Sprich etwas mit if und else Abfragen ?
  Mit Zitat antworten
Alt 07.09.2011, 17:01   # 24
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Zitat:
Zitat von darkii Beitrag anzeigen
Kurze frage noch dazu kennst du noch andere Möglichkeiten ausser regexp ? Sprich etwas mit if und else Abfragen ?
PHP? MySQL? Oder wie? Ja, kenne ich, bei beiden.

Für Deine Aufgabe ist meines Erachtens im Prinzip RegExp das Mittel der Wahl. Von Hand mit "if" und "else" kommst Du da kaum voran, wenn es performant bleiben soll. Richtige Suchmaschinen, für große Datenmengen optimierte Algorithmen würden da natürlich trotzdem anders heran gehen. Die würden sich wahrscheinlich in irgendeiner Form bereits beim Aufbau der Wörter-Datenbank Strukturen aufbauen (einen Index, vgl. Suchmaschinen), um gewisse Teilergebnisse schneller zu bekommen. - Aber so wie Du die Aufgabe geschildert hast ist das eher eine Fingerübung für Schule /Praktikum/ Ausbildung, da wird das wohl nicht gefordert sein.
  Mit Zitat antworten
Alt 07.09.2011, 19:14   # 25
darkii
Threadstarter
 
Registriert seit: 16.05.2011
Beiträge: 39
leider doch Hab das ganze jetzt mit Regexp beweltigt ! Danke dir viel mals für deine Geduld

Hab aber gleich dazu noch eine Aufgabe bekommen Das Problem an der Sache ist nämlich wenn man zb. "muas" angiebt spuckt es einem verständlicherweise Maus und Saum aus aber auch Mama weil darin auch nur Zeichenvorkommen die gegeben sind. Nun muss ich daran arbeiten das eben jeder Buchstabe nur einmal vorkommt ich aber denoch nur ein eingabe formular habe...

Ich soll wenn möglich von meinem Weg abspringen da es dann viel leichter wäre, aber Regexp gefällt mir und ich gebe nicht auf
  Mit Zitat antworten
Alt 07.09.2011, 19:49   # 26
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.432
Also sorry, jetzt klinke ich mich aus. Wenn Du mir von irgendwem erzählst, der Dir Deinen Weg einreden will, dann soll er Dir doch einen Tipp geben, so langsam passt das aber dann mit den Anforderungen nicht zusammen (wobei Du mir die Anforderungen ja auch nie eindeutig erklärt hast, auch sowas wie ob "mama" gilt habe ich bestimmt schon mal hinterfragt). Performanz für große Datenmengen und "irgendwie anders/if - else" passt meines Erachtens nicht zusammen. Ich kann Dir da nicht weiter helfen...

Wofür machst du das? Unterricht? Studium? Ausbildung?
  Mit Zitat antworten
Alt 07.09.2011, 20:26   # 27
darkii
Threadstarter
 
Registriert seit: 16.05.2011
Beiträge: 39
Ausbildung und ja hast du hinterfragt aber da wurde mir das noch nicht gegeben und ja sie geben uns tipps sobald wir fest hängen und dann auch nur richtungen infomieren usw. liegt bei uns.

Ps: Ich suche nur ratschläge und Hinweise damit ich beim ganzen Glänzen kann will ja nen guten Eindruck machen ^^
  Mit Zitat antworten
Alt 08.09.2011, 13:20   # 28
grunzer
Hausmeister im Virtuellen
 
Benutzerbild von grunzer
 
Registriert seit: 28.12.2006
Beiträge: 2.953
Ganz so durchsteigen tu ich auch nicht was Deine Anforderungen eigentlich sind...
Was ich auch mehr als seltsam finde ist, daß die Anforderungen an das Ding sich im Laufe der Zeit so gravierend ändern. Das ist ja fast wie im echten Leben "Wir hätten gerne was einfaches" --> "Erledigt" --> "Ach, eigentlich wollen wir es noch so und so und ganz anders"
Leider muß man irgendwann mal seine Anforderungen fest klopfen, da manche Änderungen einem "Neuschreiben" gleich kommen...

Vielleicht kannst Du "glänzen" wenn Du es dynamisch machst.
Ein Beispiel wie sowas geht hab ich hier:
Galileo Computing :: IT-Handbuch f
Bei dem Beispiel ist die Abfrage zwar etwas simpler, aber das sollte sich ja anpassen lassen

Grüße Grunzer
__________________
Lieber eine unsichere Freiheit
als eine sichere Diktatur !
  Mit Zitat antworten
Alt 08.09.2011, 19:15   # 29
darkii
Threadstarter
 
Registriert seit: 16.05.2011
Beiträge: 39
Danke werd ich mir morgen 8 stunden lang zu gemüte tuhen und es ist eben das echte Leben Da sie sehen das ich es hinbekomme werden die Anforderungen immer höher und das freut mich eben Den erst dann macht es mir spaß ^^
  Mit Zitat antworten
Alt 16.09.2011, 14:01   # 30
darkii
Threadstarter
 
Registriert seit: 16.05.2011
Beiträge: 39
Geschafft mein Code


PHP-Code:

<!DOCTYPE HTML>
<html>
 <head>
  <title> Test </title>
  
 <h2> Hier kannst du bereits eingetragene Wörter suchen </h2>
    <link rel="stylesheet" type="text/css" href="style2.css">
  
 
 </head> 
<body>
 <?php
 mb_internal_encoding
("UTF-8");
 
?>
 <div id="header">
   <img src="header.jpg" >
   
  </div>
    <div class="mitte">
<div id="formular2">
<form action="try2.php" method="POST" button="ok">
<textarea name="Buchstabenfolge" cols="25" rows="1"></textarea>
<INPUT TYPE=SUBMIT VALUE="Abschicken">
</div>
</form>
<br>
<br>
<?php
if (isset ($_POST["Buchstabenfolge"]) && (!is_numeric($_POST["Buchstabenfolge"])) && (! empty ($_POST["Buchstabenfolge"])) && (preg_match("^\w^"$_POST["Buchstabenfolge"]))){
$var1 $_POST["Buchstabenfolge"];
}
if (isset ( 
$var1 ) )
 {
include(
"db-verbindung.php");
 echo 
"<h2>Mögliche Wörter sind:</h2>";


  

$association 'AND'

for(
$i=0;$i<strlen($var1);$i++){
 
$arr[]=substr($var1,$i,1);
 }
 
$query = array();
asort ($arr);
$query implode($arr); 


$sql "
    SELECT  wort
    FROM   test 
    WHERE   id = '"
.$query."'


$res mysql_query($sql);

$out = array(); 

while (
$row=mysql_fetch_assoc($res)) 

  
$out[]= $row["wort"]; 

echo 
'<div class = print_r>';
foreach(
$out as $namen) {
    echo 
"<br>"   ;
    echo 
$namen ;
    
}
echo 
'</div>' ;
 }
else {
    echo 
"bitte Buchstabenkette eingeben";     
     }
?>
<div id ="wort2">
<a href="http://localhost/index2.php">Hier klicken ;)</a>
</div>
<br> 
<br> 
<br>
<br>
<br>
<pre>

                    _______________________________________
                   (                                       )         
                  (    Du willst lieber Wörter eintragen ? )                              
                 (                                        )        
                 (      _________________________________)
                  (   )                             
                   ( )      /|      __                   
                    ()     / |   ,-~ /           
                     O    Y :|  //  /             
                      0   | jj /( .^            
                       o  >-"~"-v"           
                         /       Y    
                        jo  o    |                   
                       ( ~T~     j   
                        >._-' _./   
                       /   "~"  |    
                      Y     _,  |      
                     /| ;-"~ _  l    
                    / l/ ,-"~    \  
                    \//\/      .- \  
                     Y        /    Y*  
                     l       I     ! 
                     ]\      _\    /"\ 
                    (" ~----( ~   Y.  )   
               ~~~~~~~~~~~~~~~~~~~~~~~~~~  
               ~   Worteintragehäschen  ~
               ~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    

</pre>
</div>
</body>
</hmtl>
Bin auch schon dabei eine Seite zubauen die einen ganzen Text in die Mysql Db einträgt plus zu jedem wort den index

PHP-Code:
!DOCTYPE HTML>
<html>
 <head>
  <title> Test </title>
  
 <h3> Hier kannst du neue Wörter eintragen </h3>
    <link rel="stylesheet" type="text/css" href="style2.css">
 
 
 </head> 
<body>
 <?php
 mb_internal_encoding
("UTF-8");
 
?>
 <div id="header">
   <img src="header.jpg" >
  </div>
    <div class="mitte">
<div id="formular1">
    
<form action="index2.php" method="POST" button="ok">
<textarea name="try" cols="100" rows="15"></textarea>
<INPUT TYPE=SUBMIT VALUE="Abschicken">

</div>
</form>
<br>
<br>
<?php
if (isset ($_POST["try"]) && (!is_numeric($_POST["try"])) && (! empty ($_POST["try"])) && (preg_match("^\w^"$_POST["try"])))
    {
    
$var1 $_POST["try"];
    
$klein strtolower($var1);
    }
 else {
    echo 
"Bitte gültiges Wort eingeben.";
}

if (isset(
$var1)){
include(
"db-verbindung.php");


for(
$i=0;$i<strlen($klein);$i++){
 
$arr[]=substr($klein,$i,1);
 }
$query = array();

asort ($arr);
$query implode($arr);

$eintragen mysql_query("INSERT INTO test (wort, id) VALUES ('$var1', '$query')");
}
else {
    echo 
"!!!";
}

?>
<div id ="wort1">

</div>
<br> 
<br> 
<br>
<br>
<br>
<pre>  
         __________________________________________________________
        (  Du willst lieber Wörter suchen?                         )
       ( <a href="http://localhost/try2.php">Hier klicken ;)</a>                                            )
     O  (__________________________________________________________)
    o  ___
   ||__|o|  ___________  _________  ____________________
   |     |-\__Der Zug__/-\__der__/-\_   Suchen kann   _/
   /OO-OO\   O       O     O   O      O              O 
        

     
</pre>
</div>
</body>
</hmtl>
  Mit Zitat antworten

Alt 28.05.2012, 21:09 # --
News Flash
 
Benutzerbild von News Flash
 
 
 

Das könnte Dich auch noch interessieren:

Nicht fündig geworden? Dann ohne Anmeldung in unserem Gast-Forum nachfragen.

   
Antwort
Themen-Optionen



Alle Zeitangaben in WEZ +2. Es ist jetzt 21:09 Uhr.