Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Suchfunktion in Coldfusion

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
alesis
PostRank 2
PostRank 2
Beiträge: 36
Registriert: 14.03.2004, 23:20
Wohnort: Olten

Beitrag von alesis » 01.06.2004, 17:58

Hallo zusammen, ich bin gerade dabei an einer Übung, ich habe ein Formular in das ich Personalien von Kunden in eine Datenbank speichere.

So dass ich mit einer Suchfunktion (LIKE) nach Kriterien suchen kann.
Aber irgend wie bringe ich es nicht fertig, kann mir irgend jemand dabei helfen?

Vieln Dank für eure Hilfe.

Gruss Alesis

<cfset CurrentPage=GetFileFromPath(GetTemplatePath())>
<cfif IsDefined("FORM.MM_InsertRecord") AND FORM.MM_InsertRecord EQ "form">
<cfquery datasource="kundendata" username="root" password="root">
INSERT INTO kunden (firma, name, vorname, adresse, email, tel, faxnr, ort, plz) VALUES
(
<cfif IsDefined("FORM.firma") AND #FORM.firma# NEQ "">
'#FORM.firma#'
<cfelse>
NULL
</cfif>
,
<cfif IsDefined("FORM.name") AND #FORM.name# NEQ "">
'#FORM.name#'
<cfelse>
NULL
</cfif>
,
<cfif IsDefined("FORM.vorname") AND #FORM.vorname# NEQ "">
'#FORM.vorname#'
<cfelse>
NULL
</cfif>
,
<cfif IsDefined("FORM.adresse") AND #FORM.adresse# NEQ "">
'#FORM.adresse#'
<cfelse>
NULL
</cfif>
,
<cfif IsDefined("FORM.email") AND #FORM.email# NEQ "">
'#FORM.email#'
<cfelse>
NULL
</cfif>
,
<cfif IsDefined("FORM.tel") AND #FORM.tel# NEQ "">
'#FORM.tel#'
<cfelse>
NULL
</cfif>
,
<cfif IsDefined("FORM.faxnr") AND #FORM.faxnr# NEQ "">
'#FORM.faxnr#'
<cfelse>
NULL
</cfif>
,
<cfif IsDefined("FORM.ort") AND #FORM.ort# NEQ "">
'#FORM.ort#'
<cfelse>
NULL
</cfif>
,
<cfif IsDefined("FORM.plz") AND #FORM.plz# NEQ "">
#FORM.plz#
<cfelse>
NULL
</cfif>
)
</cfquery>
<cflocation url="index.cfm">
</cfif>

<cfquery name="abfrage" datasource="kundendata" password="root" username="root">
select *
from kunden
where 0=0
<cfif #name# is NOT "">
AND name LIKE '%#name#%'
</cfif>
<cfif #vorname# is NOT "">
AND vorname LIKE '%#vorname#%'
</cfif>
<cfif #adresse# is NOT "">
AND adresse LIKE '%#adresse#%'
</cfif>
<cfif #email# is NOT "">
AND email LIKE '%#email#%'
</cfif>
<cfif #tel# is NOT "">
AND tel LIKE '%#tel#%'
</cfif>
<cfif #faxnr# is NOT "">
AND faxnr LIKE '%#faxnr#%'
</cfif>
<cfif #datum# is NOT "">
AND datum LIKE '%#datum#%'
</cfif>
<cfif #ort# is NOT "">
AND ort LIKE '%#ort#%'
</cfif>
<cfif #plz# is NOT "">
AND plz LIKE '%#plz#%'
</cfif>
<cfif #firma# is NOT "">
AND firma LIKE '%#firma#%'
</cfif>
<cfif #kunde_id# is NOT "">
AND kunde_id LIKE '%#kunde_id#%'
</cfif>
</cfquery>

<cfif ABFRAGE.RECORDCOUNT IS 0>
Es wurden keine passenden Datensätze gefunden<br>
<cfelse>
<cfoutput>#abfrage.RecordCount#</cfoutput>Datensätze gefunden:<br>
<cftable query="abfrage" HTMLTABLE>
<cfcol header="vorname" text="<i>#vorname#</i>">
<cfcol header="name" text="<i>#name#</i>">
<cfcol header="adresse" text="#adresse#">
<cfcol header="email" text="#email#">
<cfcol header="tel" text="#tel#">
<cfcol header="datum" text="#datum#">
<cfcol header="ort" text="#ort#">
<cfcol header="plz" text="#plz#">
<cfcol header="firma" text="#firma#">
<cfcol header="kunde_id" text="#kunde_id#">
</cftable>
</cfif>

<html>
<head>
<title>publit_offerte</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css.css" rel="stylesheet" type="text/css">
<link href="css_formular.css" rel="stylesheet" type="text/css">
</head>

<body bgcolor="#E0E0E0" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="145" colspan="2" bgcolor="#999999"> <div align="center">
<form name="form" method="POST" action="<cfoutput>#CurrentPage#</cfoutput>">
<table width="1000" cellpadding="1" cellspacing="1" bordercolor="#666699">
<tr>
<td width="120" height="26" bgcolor="#CCCCCC" class="inhalt"> <div align="right">Firma:</div></td>
<td colspan="5" bgcolor="#5EBBCC"> <input type="text" name="firma" size="28">
<span class="titelbar">&deg;</span></td>
</tr>
<tr>
<td width="120" bgcolor="#CCCCCC" class="inhalt"> <div align="right">Name:
</div></td>
<td width="219" bgcolor="#99CCCC"> <input type="text" name="name" size="28">
<span class="titelbar">&deg;</span></td>
<td width="120" bgcolor="#CCCCCC" class="inhalt"> <div align="right">Adresse:</div></td>
<td width="290" bgcolor="#99CCCC"> <input type="text" name="adresse" size="28">
<span class="titelbar">&deg;</span></td>
<td width="120" bgcolor="#CCCCCC" class="inhalt"> <div align="right">Natel
oder Fixnr.</div></td>
<td width="145" bgcolor="#99CCCC"> <input type="text" name="tel" size="14">
<span class="titelbar">&deg;</span></td>
</tr>
<tr>
<td width="120" height="24" bgcolor="#CCCCCC" class="inhalt"> <div align="right">Vorname:</div></td>
<td bgcolor="#99CCCC"><input type="text" name="vorname" size="28">
<span class="titelbar">&deg;</span></td>
<td width="120" bgcolor="#CCCCCC" class="inhalt"> <div align="right">PLZ
/ Ort:</div></td>
<td bgcolor="#99CCCC"> <input type="text" name="plz" size="5"> <input type="text" name="ort" size="22">

<span class="titelbar">&deg;</span></td>
<td width="120" bgcolor="#CCCCCC" class="inhalt"> <div align="right">Faxnr.</div></td>
<td bgcolor="#99CCCC"><input type="text" name="faxnr" size="14"></td>
</tr>
<tr bgcolor="#CCCCCC">
<td colspan="3">&nbsp; </td>
<td bgcolor="#CCCCCC">&nbsp; </td>
<td width="120" bgcolor="#CCCCCC" class="inhalt"> <div align="right">E-Mail:</div></td>
<td bgcolor="#99CCCC"><input type="text" name="email" size="20"></td>
</tr>
<tr bgcolor="#CCCCCC">
<td colspan="3"><div align="right"></div>
<div align="left" class="inhalt">Die Markierten Felder (<span class="titelbar">&deg;</span>)
sind muss Felder!</div></td>
<td colspan="3" bgcolor="#999999"> <input type="submit" name="Submit1" value="save">
<input type="reset" name="Submit2" value="clear"></td>
</tr>
</table>
<input type="hidden" name="MM_InsertRecord" value="form">
</form>
</div></td>
</tr>
<tr>
<td height="19" colspan="2" bgcolor="#CCCCCC"><hr color="#666666" width="100%"></td>
</tr>
<tr>
<td height="76" colspan="2" valign="top" bgcolor="#CCCCCC"><div align="center">
<form name="form1" method="POST" action="index.cfm">
<div align="center">
<table width="1000" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td width="406" bgcolor="#999999" class="inhalt"> <div align="right">Offerte
suchen<span class="titelbar"> [</span>Suchbegriff eingeben<span class="titelbar">]</span></div></td>
<td width="151" bgcolor="#999999"> <div align="center">
<input type="text" name="eingabe" value="<cfoutput>#abfrage#</cfoutput>">
</div></td>
<td width="230" bgcolor="#333333"><span class="titelbar_hell">Suchen
in</span> <select name="">
<option value="kunde_id">Offerte Nr.</option>
<option value="firma">Firma</option>
<option value="name">Name</option>
<option value="vorname">vorname</option>
<option value="plz">PLZ / Ort</option>
<option value="adresse">Adresse</option>
<option value="tel">Telefon Nr.</option>
<option value="faxnr">Fax Nr.</option>
<option value="email">E-Mail</option>
</select> </td>
<td width="12" valign="middle" bgcolor="#999999"> <div align="center">
</div></td>
<td width="185" valign="middle" bgcolor="#999999"> <input type="submit" name="goto" value=">SEARCH">
</td>
</tr>
</table>
</div>
</form>
</div></td>
</tr>
</table>
</body>
</html>

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

sangrio
PostRank 4
PostRank 4
Beiträge: 155
Registriert: 18.02.2004, 11:39
Wohnort: Lübeck

Beitrag von sangrio » 01.06.2004, 18:57

Sorry für diese nicht-wirklich-helfende Aussage, aber CF suxx - PHP rulez 8)

Brahms
PostRank 4
PostRank 4
Beiträge: 135
Registriert: 10.01.2004, 19:03
Wohnort: Hamburg

Beitrag von Brahms » 02.06.2004, 06:05

<cfif IsDefined("FORM.MM_InsertRecord") AND FORM.MM_InsertRecord EQ "form">
<cfquery name="GibDerAktionEinenNamen" datasource="kundendata" username="root" password="root">
INSERT INTO kunden
(firma, name, vorname, adresse, email, tel, faxnr, ort, plz)
VALUES
('#FORM.firma#', '#FORM.name#', '#FORM.vorname#', '#FORM.email#', '#FORM.tel#', '#FORM.faxnr#', '#FORM.ort#', #FORM.plz#)
</cfquery>
<cflocation url="index.cfm">
</cfif>

Die ganzen Abfragen kannst Du Dir schenken, wenn Du in der Datenbank auch Nullwerte zulässt (z.B. in Access beim entsprechenden Feld "Leere Zeichenfolge" auf JA setzen).

Datasource würde ich in application.cfm "auslagern" (dort die Variable dafür definieren) und fortan über diese Variable referenzieren (z.B. datasource="#DSN#"). Damit brauchst Du bei Änderungen dann nur die Variablendefinition in der application.cfm ändern und nicht in jedem Script alle Bezüge. Für Hilfe zum application-Framework s. CF Manual.

Noch ein Tipp: Wenn Du nicht absolut sicher bist, dass PLZ eine Zahl sein wird (z.B. problematisch bei nicht-dt. PLZ) dann besser als Text behandeln.

Die Abfrage lautet dann z.B.:
<CFQUERY NAME="Search" datasource="#DSN#">
SELECT *
FROM kunden
WHERE firma LIKE '%suchbegriff%'
OR name LIKE '%suchbegriff%'
etc.
etc.
</CFQUERY>

Gruss,
Johannes

Antworten