OG HER KOMMER MIN ANDEN FUNKTION DEN UDFØRER HVIS IKKE DEN SKAL UDFØRE MIN FUNKTION NR 1!!
Jeg har min: "if($mes == 'Hej Piccolo') {" og der vil jeg have den til at tjekke både om man er i $row_info[rum] 1 og samtidig tjekke om $mes er "Hej Piccolo" Hvis ikke den er begge dele så gør den videre til min "} else {"
Altså.. hvordan laver jeg en dobbelt funktion der tjekker begge dele??
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Har jeg nu prøvet Dennismp spurgte dig jo i det andet spg.. Men tror dog ikke jeg lige kan lave den med $row_info['rum'] finder lige ud af noget andet..
$select_rumnr = mysql_query("SELECT íd FROM rum WHERE(username='$username')"); $row_rumnr = mysql_fetch_array($select_rumnr);
if( $mes == 'Hej Piccolo' AND $row_rumnr['id'] == 1) {
Mit problem er bare at det stadig ikke virker.. altså man skal være i rummet med id nr 1 for at den kører funktionen.. Ellers skal den bare gå videre til else
i'et i "SELECT id" ser forkert ud. Ellers prøv at tilføj fejl-tjek: $select_rumnr = mysql_query("SELECT íd FROM rum WHERE(username='$username')") or die(mysql_error());
if($action=="send") { $select_info = mysql_query("SELECT rum,status,vaerelse FROM users WHERE(username='$username')"); $row_info = mysql_fetch_array($select_info); $select_rumnr = mysql_query("SELECT id FROM rum WHERE(username='$username')"); $row_rumnr = mysql_fetch_array($select_rumnr);
if($mes == 'Hej Piccolo' OR $mes == 'hej piccolo' OR $mes == 'davs piccolo' OR $mes == 'hej igen piccolo' OR $mes == 'hejsa piccolo' OR $mes == 'Hejsa Piccolo' OR $mes == 'Dav Piccolo' OR $mes == 'dav piccolo' OR $mes == 'hey piccolo' OR $mes == 'Hey Piccolo' AND $row_rumnr['id'] == 1) {
Ved du hvad fejlen er? Altså den skriver beskeden (GÅR IKKE VIDERE TIL ELS SOM DEN SKAL) Selvom den IKKE er i rummet med id 1 den er i rummet med id 2.. men den skriver stadig beskeden.. altså den skal vælge els hvis beskeden ikke er korrekt og den ikke er i rummet med id 1?
$respondTo = array(); $respondTo[] = 'hej piccolo'; //Alt i lowercase, så du ikke behøver at tænke på store og små bogstaver $respondTo[] = 'davs piccolo'; // etc..
if( $row_rumnr['id'] == 1 AND in_array(strtolower($msg),$respondTo)) { .. }
Ja, der skal være to (( .. den ene slutter lige før AND og den anden efter 1'tallet. Det er gruppering.. Alle ORs står i parantesen, så een af disse skal være sandt OG $row_rumnr['id'] == 1..
Forstil dig.
if( $a == 1 AND $b == 1 OR $b == 2 )
betyder det så, at $a og $b skal være 1, eller er det nok at $b er 2. Eller betyder det at $a er 1 og $b skal være 1 eller 2.
Derfor bruger man parantes, så man kan se hvad der skal grupperes sammen, da parantesen evalueres først.
if( $row_rumnr['id'] == 1 AND in_array(strtolower($msg),$respondTo)) {
Forøvrigt $respondTo[] = 'hej piccolo'; den tager dem kun med lille som de står.. Virker ikke hvis de er med stor :P
Og den udskriver stadig svaret fra piccoloen i rum med id 2 fkes.. Men prøver lige selv at finde ud af noget med rum id.. Kan man gøre sådan at den ignorere at det er store eller små bogstaver??
Okay.. Prøver lige.. *G* En anden ting? Kan du sige mig hvorfor den ikke tager "kommandoerne" hvor der er "Z" i? $respondTo[] = 'hejza piccolo'; $respondTo[] = 'davz piccolo';
Og kan jeg på en eller anden måde gøre sådan at dne ignorere om det er med stort eller småt?
Det burde nu virker allerede da strtolower returnerer lowercase af $mes. Prøv evt at tilføje print strtolower($mes) og se om det ikke bliver lower-caset.
Tja okay.. Nu er der et lidt andet problem. Ved ikke lige hvor fejlen ligger men du får lige hele min kode (Forhøjer også lige Points!)
Problemet er at den bruger "else" hele tiden.. Hvis jeg skriver "hej piccolo" skriver den det bare uden den gør noget.. Også selvom jeg er i rummet med iD nr 1 hvor den normalt SKAL skrive det.. Så altså den bruger else..
if($action=="send") { $select_info = mysql_query("SELECT rum,status,vaerelse FROM users WHERE(username='$username')"); $row_info = mysql_fetch_array($select_info); $select_rumnr = mysql_query("SELECT id FROM rum WHERE(id='$rum')"); $row_rumnr = mysql_fetch_array($select_rumnr);
Nu virker det med stort og småt :) Men det kunne da været dejligt med rum også .. man skal jo ikke stå i sin lejlighed og skrive hej piccolo hvor han så derefter svarer og han faktisk står i et andet rum eller sådan noget ;)
Jeg har ikke lige nogen idéer pt. Men har lige et par kommentarer til resten af din kode:
i din queries, så kan du bare bruge now() (som er en mysql-funktion) istedet for time().. Og så bør du putte {} rundt om dine arrays for at undgå at php parser den forkert..
Således:
mysql_query("INSERT INTO chat (mes,fra,til,time,rum,vaerelse) VALUES('$mes','$username','$til',now(),'{$row_info['rum']}','{$row_info['vaerelse']}')");
PHP fejler ikke (der kan dog ske følgefejl), hvis der sker en SQL fejl. Derfor kan det være nemmere hvis man laver
Tænkte på... (Ved godt at spørgsmålet er lukket men) Er det muligt at sætte den der "if( $row_rumnr['id'] == 1" på min ene "mysql_query("INSERT INTO chat (mes,fra,til,time,rum,vaerelse) VALUES('Hej $username','Piccolo','$til',now(),'{$row_info['rum']}','{$row_info['vaerelse']}')");"?
Kan jeg det?? Sådan den kun opdatere den hvis man er i rum1?
Hehe.. Nej har sgu da fundet ud af hvad der er galt.. Igår da jeg skulle tjecke om den virkelig printede det rigtige rum id ud.. Der var jeg inde på en anden side hvor der lå noget andet "kode"
Men mit prob er nu..
$select_userroom = mysql_query("SELECT rum FROM users WHERE(username='$username')"); $row_userroom = mysql_fetch_array($select_userroom);
$select_rum = mysql_query("SELECT id FROM rum WHERE(id='$rum')"); $row_rum = mysql_fetch_array($select_rum);
I min sætning nr 2 tager den "(id='$rum')" og $rum' skal så være det den henter i min sætning nr 1!! Det er der hele fejlen har ligget.. (dvs. min min side :) Kan du sige mig hvordan jeg "hægter dem sammen"?
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.