Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Datenbank Suche Durch Script [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Datenbank Suche Durch Script


 
romu
28-02-2006, 16:00 
 
Hallo,

also folgendes, habe mich neu registriert hier und evtl kann mir wer hier weiterhelfen. Ich habe eine Wortliste die umfasst ca. 50.000 Wörter

diese habe ich nun in eine MySql Tabelle importiert mit dem Namen
"LISTE" und jeweils eine Spalte/Zeile pro Wort.

Nun bräuchte ich eine Internetseite wo ich mittels eines simplem Suchscript
nach einzelden Wörtern aus dieser Tabelle suchen kann .

sprich ich suche nach "AUTO" und er sucht die Tabelle der db ab und gibt als Ergebnis "AUTO" aus, und das möglichst schnell.

Vielleicht hat da irgendwer was für mich womit ich das lösen könnte.
Muss nicht unbedingt ein fertiges script sein, aber schlecht wärs nicht :)

Vielen Dank soweit

Gruß

 
Marcusson
01-03-2006, 14:31 
 
:teach: Die Lösung: erstmal LESEN!

Wenn du dich mit SQL beschäftigt hättest wäre dir aufgefallen, dass du das mit einem Index und einer simplen Select-Abfrage selbst machen kannst.

Also: ein gutes Buch zu SQL hilft dir weiter.

 
Daniela
01-03-2006, 15:03 
 
Schau dir besser echt mal einige tutorials an, ist eigentlich ganz simpel.
Zur Orientierung kannst mal das nehmen:

select * from liste where spaltenname LIKE '%auto%'

 
romu
01-03-2006, 15:09 
 
habe leider noch nie in php mysql gecodet , vielleicht könnte mir einer einen beispiel code posten damit ich bischen weiß wie ich anzufangen hab mit so ner simplen abfrage, ne einzelnde code stelle wie SELECT hilft mir da kaum weiter bzw das es damit zu lösen ist hab ich auch schon erfahren *g*

thx

 
Daniela
01-03-2006, 15:30 
 
schon mal was von :google: gehört?

http://de3.php.net/manual/de/function.mysql-fetch-array.php

 
romu
01-03-2006, 17:20 
 
Bin schon mal ein Stückchen weiter hab einfach mal drauf los experimentiert

1. Habe ich eine Html Seite gebastelt wo mittels eines einfachen Texteingabefeldes + formular die Eingaben weitergeben werden an
abfrage.php ( Das Php Script was nun checken soll ob es das zu suchende wort in der tabelle meiner Datenbank gibt und es dann wiederum ausgeben. Es soll allerdings erstmal nur so sein das exakt das Wort ausgeben wird nach dem man gesucht hat (wenn es vorhanden ist) und nicht mehr, wie dekladier ich da die Variablen richtig evtl ist noch mehr falsch, hier mal mein erster Versuch.


<?php
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("liste") or die("Auswahl der Datenbank fehlgeschlagen");

/* ausführen einer SQL Anfrage */
$query = "SELECT * FROM liste";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

/* Ausgabe der Ergebnisse in HTML */
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

/* Freigeben des Resultsets */
mysql_free_result($result);

/* schliessen der Verbinung */
mysql_close($link);
?>


Vielen Dank erstmal

 
jahlives
01-03-2006, 18:58 
 
In diesem Code suchst du aber nach gar nix, sondern liest alle Einträge aus der DB.

$sql = "Select * From tabelle where name='$suchfeld'";

würde allenfalls die Treffermenge einschränken.
Pass aber bei der Übernahme der Werte aus dem Form in deine Abfrage auf und prüfe die Werte aus Gültigkeit --> mysql injections

Gruss

tobi

 
romu
01-03-2006, 19:11 
 
Formular sieht so aus:


<form action="abfrage.php" method="post" name="form" target="bottom" id="form1">
<label>
<div align="center"><span class="Stil1">Suche:
</span>
<input type="text" name="suche" />


SELECT...


"SELECT * FROM liste WHERE name='$suche'";


FEHLER...

Unknown column 'name' in 'where clause'

 
Daniela
01-03-2006, 19:23 
 
1. heißt deine spalte in der mysql tabelle in der du suchst "name" ?

2. Könntest noch Wildcards dazugeben WHERE name='%$suche%'

3. warum haben id und name der form tags unterschiedliche benennungen ?

 
romu
01-03-2006, 19:40 
 
Also habe nun noch mal die form geändert

name="suche" id="suche"

und

"SELECT * FROM liste WHERE name='suche'";

wobei ich mal ne neue tabelle "liste" gemacht hab wo nun auch collumn oder wie sie das nennt :) "name" ist war zu erst AA oder so (mein fehler)

nun bekomm ich aber einfach als ERGEBNIS garnichts angezeigt

also mein echo von IHR ERGEBNIS :

.. und dann nichts

 
romu
01-03-2006, 20:07 
 
irgendwie hab ich das Gefühl das da noch komplett etwas fehlt,
ich mein wo überprüft er denn auf richtig oder falsch

fehlt da nicht ne if else schleife oder so?

 
romu
02-03-2006, 10:18 
 
hmm :(

 
jahlives
02-03-2006, 12:21 
 
Also dann wirst du jetzt wohl debuggen müssen. Folgende Fkt könnten dir dabei helfen
-print_r()
-var_dump()

Lass dir damit an verschiedenen Stellen deine Mysql Vars ausgeben und schau ob das gültige MySql Ressourcen sind. Prüfe schlicht alle Vars ob sie die Werte haben die du erwartest.
Dann wirst du den Fehler sicherlich finden.

Gruss

tobi

 
romu
02-03-2006, 14:01 
 
hm glaube eher das das script selbst noch nicht vollständig ist ist poste noch mal

DB = wordox Tabelle = liste


<?php
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich, Ihr Ergebnis:";
mysql_select_db("wordox") or die("Auswahl der Datenbank fehlgeschlagen");

/* ausführen einer SQL Anfrage */
$query = "SELECT * FROM liste WHERE AA='$suche'";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

/* Ausgabe der Ergebnisse in HTML */
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

/* Freigeben des Resultsets */
mysql_free_result($result);

/* schliessen der Verbinung */
mysql_close($link);
?>

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:13 Uhr.