 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
03.01.2006, 13:49
|
#1
|
|
TP-Junior
Registriert seit: Nov 2004
|
MySQL und PHP - Datensatzgruppe suche in ganzer Tabelle
Bin am verzweifeln...!!!
Habe eine Datenbank erstellt und in DW eine Suchseite, eine Ergebnisseite und eine Detailseite erstellt. Funzt alles prima (bin stolz auf mich; erstes Projekt...)
Doch nun zu meinem Problem. In der Suchseite habe ich ein Textfeld, wo der Besucher nach Inhalten der DB suchen kann. Möchte nun in der Ergebnisseite definieren, dass die ganze Tabelle durchsucht wird. Leider seit Stunden ohne Erfolg! Wenn ich unter Datensatzgruppe den Filter auf die Suche auf ein bestimmtes Feld beschränke, funktioniert alles. Sobald ich aber in die Ansicht Erweitert ... wechsle und versuche, zusätzliche Felder zu integrieren, geht gar nichts mehr. Kann mir jemand sagen, wie genau ich vorgehen muss BITTE!
Jetzt siehts wie folgt aus:
SELECT Firmenname, PLZ, Adresse, Ort, Telefon
FROM mitglieder
WHERE Firmenname LIKE '%colname%'
ORDER BY Firmenname ASC
Variable
Name colname
Standardwert 1
Laufzeitwerk $_GET['Firmenname']
Habe in der Funktion WHERE schon alles mögliche versucht, nix geht (darum habe ich jetzt mal den Standard für Suche im Feld Firmenname stehen lassen
Möchte zusätzlich zum Feld Firmenname auch das Feld Ort sowie Adresse durchsuchen oder eben gleich die ganze Tabelle!
Bin für jede Hilfe dankbar, sonst verzweifle ich noch!!
DANKE im Voraus
|
|
|
03.01.2006, 14:22
|
#2
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Ähm ... woran scheitert es denn? Was waren deine ersten Versuche? Oder kennst du die entsprechenden MySQL Kommandos nicht?
SELECT Firmenname, PLZ, Adresse, Ort, Telefon
FROM mitglieder
WHERE Firmenname LIKE '%colname%'
OR feldsowieso LIKE '%das%'
OR feldblabla LIKE '%jenes%'
ORDER BY Firmenname ASC
Du kannst OR, AND und alle anderen Operatoren nutzen.
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
03.01.2006, 14:46
|
#3
|
|
TP-Junior
Registriert seit: Nov 2004
|
Vielen Dank Boris für Deine Antwort, bin am Testen und Testen und Testen...
und siehe da
Jawohl, ich habs!!!!
Ist es auch korrekt? Habs wie folgt gelöst:
SELECT Firmenname, PLZ, Adresse, Ort, Telefon
FROM mitglieder
WHERE Firmenname LIKE '%colname%' OR mitglieder.Adresse LIKE '%colname%' OR mitglieder.Ort LIKE '%colname%'
ORDER BY mitglieder.Firmenname
Variable
Name colname
Standartwert 1
Laufzeitwert $_GET['colname']
Wie könnte ich allerdings die ganze Tabelle durchsuchen anstelle der
einzelnen Spalten?
Noch ne Frage; wenn jetzt kein Suchbegriff eingegeben wird, wird die ganze DB ausgegeben. Wie kann ich steuern, dass dies verhindert wird?
Danke
|
|
|
03.01.2006, 15:48
|
#4
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Code:
If (trim($_GET['colname'])=='') echo "Eingabe erforderlich";
else
{
//suche
...
}
|
|
|
03.01.2006, 15:49
|
#5
|
|
TP-Junior
Registriert seit: Nov 2004
|
Oje, ich musste leider feststellen, dass meine Variante nicht korrekt funzt...
Wenn ich im Suchfeld zwei Begriffe eingebe (aus zwei verschiedenen Spalten) werden keine Datensätze gefunden??? Woran liegt das?
Hoffe, ihr könnt mir helfen - bin ratlos...!
Vielen Dank für eure Unterstützung.
|
|
|
03.01.2006, 18:16
|
#6
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Du musst die einzelnen Suchbegriffe anhand des Leerzeichens trennen und Deine Abfrage dann so gestalten:
WHERE Firmenname LIKE '%begriff1%' OR Firmenname LIKE '%Begriff2%OR Adresse LIKE '%begriff1%' OR Adresse LIKE '%Begriff2%' OR ..
|
|
|
04.01.2006, 12:16
|
#7
|
|
TP-Junior
Registriert seit: Nov 2004
|
Hallo DSB
Vielen Dank für Deine Antwort. Ich hab versucht, die Einstellungen gemäss Deiner Angabe anzupassen. Doch leider klappts nicht. Im Gegenteil, wenn ich das so einstelle, geht auch die Suche mit einem Begriff nicht mehr???
Kannst Du mir sagen, woran das liegt? Wie muss ich die Variablen dazu anpassen? Vielen Dank für Deine erneute Hilfe! Aller Anfang ist schwer...
Gruss und DANKE.
|
|
|
04.01.2006, 14:55
|
#8
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Da meine Glaskugel gerade zur Reparatur ist, kann ich ohne Deinen Code überhaupt nichts dazu sagen.
Deine Frage ist wie: mein Auto fährt nicht! Warum?
Du musst uns schon zeigen wie Du den Query generierst. 
Geändert von DSB (04.01.2006 um 14:58 Uhr).
|
|
|
04.01.2006, 18:44
|
#9
|
|
TP-Junior
Registriert seit: Nov 2004
|
Hallo DSB
Entschuldige bitte. Hab vieles versucht, nichts funzt...
Letzte Variante ist wie folgt:
SELECT Firmenname, PLZ, Adresse, Ort, Telefon
FROM mitglieder
WHERE Firmenname LIKE '%colname1%' OR Firmenname LIKE '%colname2%' OR Adresse LIKE '%colname2%' OR Adresse LIKE '%colname2%' OR Ort LIKE '%colname1%' OR Ort LIKE '%colname2%'
ORDER BY mitglieder.Firmenname
Variable
Name colname1
Wert 1
$_GET['colname']
Name colname2
Wert 1
$_GET['colname']
Sorry, meine Fähigkeiten sind einfach noch sehr beschränkt. Kämpfe mich durch google, Foren usw....
Danke für Deine erneute Hilfe.
Gruss
|
|
|
04.01.2006, 22:46
|
#10
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Ich kann so keinen Fehler in Deinem Query entdecken - der sollte so klappen.
Lass ihn Dir mal nach dem Zusammenstellen auf dem Bildschirm ausgeben. Vielleicht bringt das ja Aufschluss.
Hast Du das Absenden des Querys auch mit ... or die(mysql_error()); versehen, so dass eventuelle Fehler des MySQL-Servers ausgegeben werden?
|
|
|
05.01.2006, 01:34
|
#11
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Heisst eines der Mitglieder colname? ... LIKE '%colname%'
Ich meine, da müsste deine Suchvariable rein, %$...%
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
05.01.2006, 07:45
|
#12
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
lol - das habe ich glatt überlesen.
Natürlich, das ist der Fehler.
*zustimm*
|
|
|
05.01.2006, 16:21
|
#13
|
|
TP-Junior
Registriert seit: Nov 2004
|
Vielen Dank für eure Hilfe. Doch es scheint mir, als wäre ich zu doof, um das hinzukriegen...
Irgendwie seh ich jetzt dann bald mal den Wald nicht mehr vor lauter Bäumen! Kannst Du mir sagen bitte, welche Suchvariable ich jeweils eingeben muss???
"Suchvariable rein, %$...%"
Entschuldigt, ich hab wirklich die unterschiedlichsten Varianten versucht, werde noch ganz konfus dabei... snif snif! Irgendwie raff ich jetzt gar nichts mehr...
Kopf in den Sand steckend... :-(((((
|
|
|
05.01.2006, 16:30
|
#14
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Was nicht stimmt, und da wird der Hase begraben sein, ist die Abfrage dieser beiden Werte, denn oben steht $_GET['colname']
also
PHP-Code:
if(isset($_GET['colname1'])) {
$colname1=get_magic_quotes_gpc() ? $_GET['colname1'] : addslashes($_GET['colname1']);
} else $colname1="-----";
if(isset($_GET['colname2'])) {
$colname2=get_magic_quotes_gpc() ? $_GET['colname2'] : addslashes($_GET['colname2']);
} else $colname2="-----";
und die SQL muss mit den Variablen gefüllt werden
PHP-Code:
$sql="SELECT Firmenname, PLZ, Adresse, Ort, Telefon
FROM mitglieder
WHERE Firmenname LIKE '%$colname1%' OR Firmenname LIKE '%$colname2%' OR Adresse LIKE '%$colname2%' OR Adresse LIKE '%$colname2%' OR Ort LIKE '%$colname1%' OR Ort LIKE '%$colname2%'
ORDER BY mitglieder.Firmenname
";
|
|
|
05.01.2006, 19:47
|
#15
|
|
TP-Supporter
Registriert seit: Apr 2001
|
Zitat:
|
Zitat von 321
Heisst eines der Mitglieder colname? ... LIKE '%colname%'
Ich meine, da müsste deine Suchvariable rein, %$...%
|
Huhu
wer sich noch nie eine Application im DW generiert hat, kann es auch nicht wissen.
Das ist im Dreamweaver kein Fehler.
Das Statement wird in einer Art Assistenten geschrieben. Das $-Zeichen wird im Gesamtscripting auch richtig generiert. Im Assistenten darf es nicht davor stehen. Ist blöd und eigentlich nicht korrekt und irritiert viele, zumindst wenn man die Zusammenhänge (Dreamweaver und Codegenerierung) nicht weiss.
Man kann keine 2 Suchbegriffe in ein Formularfeld einfügen und eine Suchabfrage im DW generieren lassen. Da kommt kein Begriff. Entweder 2 Felder und 2 Variablen oder handcoden (Wert des Textfeldes aufsplitten und das Statement daraus aufbauen).
__________________
Liebe Grüße, die Judi!
Geändert von Judi (05.01.2006 um 19:50 Uhr).
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:34 Uhr.
|
 |