Mailinglisten-Archive |
On Fri, May 03, 2002 at 10:15:41AM +0200, Detlef Tiggeler wrote: Kurze Vorbemerkung: statt der mysql_xx()-funktionen besser die PEAR::DB-klasse benutzen. dann ist es nur noch eine frage der URI, welches RDBMS benutzt wird. ergo: $dbh = DB::connect ( $uri, $peristent ) weiteres siehe PEAR-manual. <snip> > $notall=""; > > if (!$name) $notall .= "Sie müssen einen Namen angeben !!<br>"; > if (!$iid) $notall .= "Bitte die Indexzugehörigkeit angeben !!<br>"; > if (!$kuerzel) $notall .= "Sie müssen ein Kuerzel angeben !!<br>"; #1: shortcut evaluation hilft. #2: fuer umlaute und sonderzeichen gibt es entities. ($name || ($notall .= "Sie müssen einen Namen angeben! <br>")); ... > if(!$notall){ > $abf=mysql_query("select kuerzel,name,name2 from firmen where > kuerzel='$kuerzel' OR name='$name'"); > $rowcount = mysql_num_rows($abf); > if($rowcount){ > ein Eintrag wurde gefunden > Behandlungsroutine ausführen > }else{ > Eintrag vornehmen > } > }else{ > echo $notall; > exit(); > } if ($notall) { echo $notall; exit; } else { $sth = $dbh->query ( " SELECT kuerzel, name, name2 FROM firmen WHERE kuerzel = '$kuerzel' OR name = '$name' LIMIT 1 ; " ); if ($row = $sth->fetchrow()) { /* === fall1: eintrag schon da === */ } else { /* === fall2: noch kein eintrag da === * } } wenn du die daten des existierenden eintrags nicht brauchst, kannst du auch im select-statement folgendes schreiben: SELECT 1 WHERE ... das LIMIT 1 sagt dem RDBMS, dass es garnicht nach einem 2. record suchen soll. sollte IMHO etwas mehr performance bringen, wobei das bei solch einer einfachen query und der annahme, dass du einen ordentlichen index auf der relation liegen hast, keinen grossen unterschied machen sollte. ach ja, zum thema index: falls du wirklich sicherstellen willst, dass es keine doppel- eintraege in deiner firmentabelle gibt, solltest du indices drauflegen: CREATE UNIQUE INDEX firmen_i1 ON firmen ( kuerzel ); CREATE UNIQUE INDEX firmen_i2 ON firmen ( name ); ~-n -- Enrico Weigelt == metux ITS Webhosting ab 5 EUR/Monat. Server-Housing ab 50 EUR/Monat. www: http://www.metux.de/ phone: +49 36207 519931 email: contact_(at)_metux.de cellphone: +49 174 7066481
php::bar PHP Wiki - Listenarchive