05. september 2005 - 18:36Der er
15 kommentarer og 1 løsning
PHP: Finde tekst i databasen og oversæt
Hej. Jeg prøver at lave noget til en ven (en tagwall bot). Jeg vil lave det sådan at admin har mulighed for at tilføje nye tekster til botten, så hvis en skriver "hej" skal den udskrive "Hej med dig"
Jeg har nu prøvet (for første gang) at bruge "LIKE", men nu ved jeg jo ikke lige hvordan man gør.
Men håber i kan forstå mig og sige hvad jeg gør forkert her:
// BOT $bot = mysql_query("Select find, oversaet FROM bottalk LIKE find = '$besked'"); $udtrakBot = mysql_fetch_array($bot);
if(stristr($besked,"$udtrakBot[tekst]")) { // kigger efter tekst $bot = "$udtrakBot[oversaet]"; // oversætter $botNavn = "$udtrakBot[navn]"; // bottens navn } else { $bot = "$besked"; $botNavn = "$navn"; }
CREATE TABLE `bottalk` ( `id` int(4) NOT NULL auto_increment, `find` varchar(200) NOT NULL default '', `oversaet` varchar(200) NOT NULL default '', `botnavn` varchar(200) NOT NULL default 'JegErEnBot', UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
-- -- Dumping data for table `bottalk` --
INSERT INTO `bottalk` VALUES (1, 'DJ', 'anders', 'JegErEnBot'); -- tabel:
Så skal den tjekke om ordet er i tabellen "bottalk" med den sætning (eller hvis beskeden indholder "hej med dig")
hvis "Hej med dig." er i tabellen "bottalk" i kolonnen "find" så skal den udskrive til tabellen "beskeder" med navnet "$botnavn" og "besked" som "oversaet" fra tabellen "bottalk", hehe, forstår du?
CREATE TABLE `bottalk` ( `id` int(4) NOT NULL auto_increment, `find` varchar(200) NOT NULL default '', `oversaet` varchar(200) NOT NULL default '', `botnavn` varchar(200) NOT NULL default 'bot', UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
-- -- Dumping data for table `bottalk` --
INSERT INTO `bottalk` VALUES (1, 'DJ', 'anders', 'bot');
-- Så kan du se jeg har "FIND" hvor den skal finde teksten "DJ" hvis den finder "DJ" så skal den udskrive til tabellen "beskeder" med navnet "$botNavn" og teksten "$row[oversaet]"
$sql = "SELECT oversaet FROM bottalk WHERE find LIKE '%" . $besked . "%'"; $result = mysql_query($sql) or die(mysql_error()); if (mysql_num_rows($result) >= 1) { // Den fandt en oversættelse. } else { // Den fandt ikke en oversættelse } } ?>
- og så skal der puttes noget kode ind i de to tuborg-parenteser i if-else'en.
Vi var jo heller ikke færdige endnu - det jeg skitserede var blot det overordnede skelet til løsningen; Selvfølgelig laver en if-else ikke noget hvis der ikke er nogen kode inde i nogen af {}-blokkene.
Jeg ventede egentlig bare på et eller andet form for nik fra dig før at vi gik videre.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.