waarde uit database halen

Status
Niet open voor verdere reacties.

blablaman

Gebruiker
Lid geworden
3 mei 2007
Berichten
24
Hallo,
Ik ben een MSN bot aan het maken met PHP.
Ik heb ook een database met woorden en antwoorden.

Ik wil dus graag:
als je in MSN een woord typt dat het script gaat kijken op het woord in het database staat. Zoja dat hij het antwoord geeft dan in de andere kolom staat.

Heeft iemand tips om dit te kunnen maken??
 
Zal vast met deze query wel willen
PHP:
$query = "SELECT antwoord FROM zinnen WHERE woord='$woord'";
 
oke bedankt, maar het werkt niet helemaal bij mij, of ik gebruik het verkeerd:p
ik gebruik voor mijn MSN bot: tom's msnbot 3.0

mijn PHP code ziet er nu zo uit

PHP:
<? 
mysql_connect('localhost','blabla_man','BlaBlaman27'); 
mysql_select_db('blabla_bot') or die (mysql_error()); 

$msg = strtolower($_GET['msg']); 

$query = "SELECT antwoord FROM woorden WHERE woord='$woord'"; 

$variable = str_replace("<br>","/r/n",$variable); 

if($msg == 'functies'){ 

//Optie: Functies 

    echo "Deze bot heeft de volgende functies:\n\r- Typ: \"Datum\" en hij geeft de datum weer!\n- Typ: \"Nieuws\" om het nieuws te lezen van nu.nl\n- Typ: \"Mop\" om de mop van de dag te kunnen lezen\n\rHeb je nog leuke functies voor deze bot. Mail ze maar naar deze bot. LET OP het script MOET .php zijn."; 

//optie: moppen
}elseif(substr($msg,0,9) == "mop") 
{ 

        $url = "http://www.moppen.net/"; 
        $start = '<h3>'; 
        $end = "<BR><BR></font>"; 
        $read =  file_get_contents($url); 
        $data = eregi("$start(.*)$end", $read, $output); 

        $output[1] = preg_replace("<<font color=#000081>>", " ", $output[1]); 
        $output[1] = preg_replace("<</font>>", "", $output[1]); 
        $output[1] = preg_replace("<</h3>>", "\n", $output[1]); 
        $output[1] = preg_replace("<<br>>", "\n", $output[1]); 
        $output[1] = preg_replace("<<BR>>", "\n", $output[1]); 
        echo $output[1]; 

} 

// Wat je tegen de bot allemaal kunt zeggen: 

    }elseif($msg == $query){ 
  
//Einde 


    }else{ 
$file = "msglog.txt"; 
$open = fopen( $file, "a" ) or die ( "Operation Failed!" ); 
fputs( $open, "$msg, \n" ); 
fclose( $open ); 
    echo "Sorry!\nIk begrijp je niet! :$\n\r(Voor opties typ: \"Functies\")"; 
    } 
     
     
     
     
?>
 
dat komt omdat je niets doet met het "$woord";)
PHP:
...
$msg = strtolower($_GET['msg']); 
$query = "SELECT antwoord FROM woorden WHERE woord='$woord'"; 
....
De "$query" wordt gepakt uit de database "woorden" in het veld "antwoord", en het moet zo zijn dat het antwoord correspondeert met "$woord"

Het enige probleem is dat je $woord nergens neerzet. Dus probeer dit:

PHP:
...
$msg = strtolower($_GET['msg']); 
$woord = $msg
$query = "SELECT antwoord FROM woorden WHERE woord='$woord'"; 
....
 
Dan is het makkelijker dat je gewoon
PHP:
$woord = strtolower($_GET['msg']);
doet, dat scheelt weer een regel ;)
 
Ja, en nee, want $msg moet nog wel bestaan ;)
*onderaan in t script:
PHP:
// Wat je tegen de bot allemaal kunt zeggen: 

    }elseif($msg == $query){ 
   
//Einde
(waarom dit er staat geen idee, maargoed ;))
 
bedankt dat jullie me willen helpen. Mijn code ziet er nu zo uit:
PHP:
<? 
mysql_connect('localhost','blabla_man','BlaBlaman27'); 
mysql_select_db('blabla_bot') or die (mysql_error()); 

$msg = strtolower($_GET['msg']); 
$woord = $msg;
$query = "SELECT antwoord FROM woorden WHERE woord='$woord'"; 

$variable = str_replace("<br>","/r/n",$variable); 

if($msg == 'functies'){ 

//Optie: Functies 

    echo "Deze bot heeft de volgende functies:\n\r- Typ: \"Datum\" en hij geeft de datum weer!\n- Typ: \"Nieuws\" om het nieuws te lezen van nu.nl\n- Typ: \"Mop\" om de mop van de dag te kunnen lezen\n\rHeb je nog leuke functies voor deze bot. Mail ze maar naar deze bot. LET OP het script MOET .php zijn."; 

//optie: moppen 
}elseif(substr($msg,0,9) == "mop") 
{ 

        $url = "http://www.moppen.net/"; 
        $start = '<h3>'; 
        $end = "<BR><BR></font>"; 
        $read =  file_get_contents($url); 
        $data = eregi("$start(.*)$end", $read, $output); 

        $output[1] = preg_replace("<<font color=#000081>>", " ", $output[1]); 
        $output[1] = preg_replace("<</font>>", "", $output[1]); 
        $output[1] = preg_replace("<</h3>>", "\n", $output[1]); 
        $output[1] = preg_replace("<<br>>", "\n", $output[1]); 
        $output[1] = preg_replace("<<BR>>", "\n", $output[1]); 
        echo $output[1]; 

} 

// Wat je tegen de bot allemaal kunt zeggen: 

    }elseif($msg == $query){ 
   
//Einde 


    }else{ 
$file = "msglog.txt"; 
$open = fopen( $file, "a" ) or die ( "Operation Failed!" ); 
fputs( $open, "$msg, \n" ); 
fclose( $open ); 
    echo "Sorry!\nIk begrijp je niet! :$\n\r(Voor opties typ: \"Functies\")"; 
    }       
?>
maar nu geeft hij als fout aan:
PHP:
Parse error: syntax error, unexpected T_VARIABLE in msn.php on line 7
 
Het eerste wat ik mij afvraag is of je wel weet hoe je PHP en MySQL moet gebruiken...

Aan alleen een query heb je niets, die query moet ook verwerkt worden.

Ook heeft deze optie helemaal geen zin:
PHP:
elseif($msg == $query){

Je wilt dan dus kijken of hetgeen in $msg gelijk is aan je query, je denk dus dat mensen die hele query gaan typen?
 
Wat is de uiteindelijke code geworden?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan