23. november 2005 - 20:43
Der er
17 kommentarer og 1 løsning
hvad betyder denne fejl MySQL fejl:
fejlen er følgende MySQL fejl: Unknown column 'test' in 'where clause' på dette script og table <?php session_start(); if ($_POST['bruger'] == "" AND $_POST['pass'] == "") { $_SESSION['status'] = "nobrugerpass"; header("Location: login.php"); exit; } elseif ($_POST['bruger'] == "") { $_SESSION['status'] = "nobruger"; header("Location: login.php"); exit; } elseif ($_POST['pass'] == "") { $_SESSION['status'] = "nopass"; header("Location: login.php"); exit; } else { include("access.php"); $query = "SELECT user, pass FROM login1 WHERE user = '".$_POST['bruger']."' AND pass= '".$_POST['pass']."'"; $result = mysql_query($query)or die("MySQL fejl: " . mysql_error()); $log = mysql_fetch_array($result); if ($_POST['bruger'] == $log['user'] && $_POST['pass'] == $log['pass']) { $_SESSION['status'] = "login"; $_SESSION['navn'] = $_POST['bruger']; //sætter status til at være 1, = at brugeren er online. $status = mysql_query("UPDATE login1 SET status=status+1 WHERE user=".$_SESSION['navn']) or die("MySQL fejl: " . mysql_error()); header("Location: index.php"); exit; } else { $_SESSION['status'] = "fejl"; header("Location: login.php"); exit; } } ?> tablen CREATE TABLE `login1` ( `ID` int(11) NOT NULL auto_increment, `user` varchar(50) NOT NULL default '', `pass` varchar(25) NOT NULL default '', `ip` varchar(15) NOT NULL default '', `navn` varchar(51) NOT NULL default 'Ikke oplyst', `email` varchar(50) NOT NULL default '', `status` char(1) NOT NULL default '', `timestamp` timestamp(14) NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `idx_brugere` (`user`) ) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=10 ;
Annonceindlæg fra Lector
23. november 2005 - 20:45
#1
Det er fordi du bruger " omkring navnet i din WHERE. Brug ' istedet. Ellers tolker den indholdet som et kolonne eller tabelnavn. Det skal den ikke.
23. november 2005 - 20:50
#2
pass hvad mener du ???
23. november 2005 - 20:53
#3
Det var også mig der så forkert. Men jeg tror problemet ligger i at du ikke får quotes ordentligt. Hvis du retter denne: $status = mysql_query("UPDATE login1 SET status=status+1 WHERE user=".$_SESSION['navn']) or die("MySQL fejl: " . mysql_error()); til $status = mysql_query("UPDATE login1 SET status=status+1 WHERE user='".$_SESSION['navn'] . "'") or die("MySQL fejl: " . mysql_error()); så burde det virke.
23. november 2005 - 20:54
#4
ok prøver
23. november 2005 - 20:57
#5
nu virker den men den skriver ikke user rigtige fra feltet navn men test som både kode og bruger er altså user hvad gør jeg forkert der
23. november 2005 - 21:09
#6
Istedet for at teste: $_POST['bruger'] == "" bør du teste med: empty($_POST['bruger'])
23. november 2005 - 21:16
#7
pass hvad mener du ??? har også et problem med dette script som skulle tælle dem der var i status 1 og dem der var istatus 0 ser således ud :: <? include("access.php"); $online_tjek = mysql_query("SELECT * FROM login1 WHERE status = '1'") or die("MySQL fejl: " . mysql_error()); $online = mysql_fetch_array($online_tjek); { Print "dine variabler om online brugere"; } //offline brugere $offline_tjek = mysql_query("SELECT * FROM login1 WHERE status = '0'") or die("MySQL fejl: " . mysql_error()); $offline = mysql_fetch_array($offline_tjek); { Print "dine variabler om offline brugere"; } ?>
23. november 2005 - 21:22
#8
Jeg har rettet din kode lidt... <?php session_start(); if(empty($_POST['bruger']) AND empty($_POST['pass'])) { $_SESSION['status'] = "nobrugerpass"; header("Location: login.php"); exit; } elseif(empty($_POST['bruger'])) { $_SESSION['status'] = "nobruger"; header("Location: login.php"); exit; } elseif(empty($_POST['pass'])) { $_SESSION['status'] = "nopass"; header("Location: login.php"); exit; } else { include("access.php"); $bruger = mysql_real_escape_string($_POST['bruger']); $pass = mysql_real_escape_string($_POST['pass']); $query = "SELECT user, pass FROM login1 WHERE user = '".$bruger."' AND pass= '".$pass."' LIMIT 1"; $result = mysql_query($query)or die("MySQL fejl: " . mysql_error()); if(mysql_num_rows($result)>0) { $log = mysql_fetch_array($result); $_SESSION['status'] = "login"; $_SESSION['navn'] = $log['user']; //sætter status til at være 1, = at brugeren er online. $status = mysql_query("UPDATE login1 SET status=1 WHERE user=".$_SESSION['navn']." LIMIT 1") or die("MySQL fejl: " . mysql_error()); header("Location: index.php"); exit; } else { $_SESSION['status'] = "fejl"; header("Location: login.php"); exit; } } ?>
23. november 2005 - 21:25
#9
følgende fejl MySQL fejl: Unknown column 'test' in 'where clause'
23. november 2005 - 21:29
#10
Prøv lige at ret den første af disse: or die("MySQL fejl: " . mysql_error()); til: or die("MySQL fejl - SELECT: " . mysql_error()); og nummer til: or die("MySQL fejl - UPDATE: " . mysql_error());
23. november 2005 - 21:33
#11
følgende fejl på scriptet MySQL fejl - UPDATE: Unknown column 'test' in 'where clause' <?php session_start(); if(empty($_POST['bruger']) AND empty($_POST['pass'])) { $_SESSION['status'] = "nobrugerpass"; header("Location: login.php"); exit; } elseif(empty($_POST['bruger'])) { $_SESSION['status'] = "nobruger"; header("Location: login.php"); exit; } elseif(empty($_POST['pass'])) { $_SESSION['status'] = "nopass"; header("Location: login.php"); exit; } else { include("access.php"); $bruger = mysql_real_escape_string($_POST['bruger']); $pass = mysql_real_escape_string($_POST['pass']); $query = "SELECT user, pass FROM login1 WHERE user = '".$bruger."' AND pass= '".$pass."' LIMIT 1"; $result = mysql_query($query)or die("MySQL fejl - SELECT: " . mysql_error()); if(mysql_num_rows($result)>0) { $log = mysql_fetch_array($result); $_SESSION['status'] = "login"; $_SESSION['navn'] = $log['user']; //sætter status til at være 1, = at brugeren er online. $status = mysql_query("UPDATE login1 SET status=1 WHERE user=".$_SESSION['navn']." LIMIT 1") or die("MySQL fejl - UPDATE: " . mysql_error()); header("Location: index.php"); exit; } else { $_SESSION['status'] = "fejl"; header("Location: login.php"); exit; } } ?>
23. november 2005 - 21:37
#12
Hvilken datatype er: status og user i tabellen login1 ?
23. november 2005 - 21:39
#13
tablen ser således ud CREATE TABLE `login1` ( `ID` int(11) NOT NULL auto_increment, `user` varchar(50) NOT NULL default '', `pass` varchar(25) NOT NULL default '', `ip` varchar(15) NOT NULL default '', `navn` varchar(51) NOT NULL default 'Ikke oplyst', `email` varchar(50) NOT NULL default '', `status` char(1) NOT NULL default '', `timestamp` timestamp(14) NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `idx_brugere` (`user`) ) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=10 ; jeg tror ikke jeg forstår dig helt tekst
23. november 2005 - 21:40
#14
Prøv at ret: status=1 til: status='1'
23. november 2005 - 21:45
#15
samme fejl MySQL fejl - UPDATE: Unknown column 'test' in 'where clause' på scriptet <?php session_start(); if(empty($_POST['bruger']) AND empty($_POST['pass'])) { $_SESSION['status'] = "nobrugerpass"; header("Location: login.php"); exit; } elseif(empty($_POST['bruger'])) { $_SESSION['status'] = "nobruger"; header("Location: login.php"); exit; } elseif(empty($_POST['pass'])) { $_SESSION['status'] = "nopass"; header("Location: login.php"); exit; } else { include("access.php"); $bruger = mysql_real_escape_string($_POST['bruger']); $pass = mysql_real_escape_string($_POST['pass']); $query = "SELECT user, pass FROM login1 WHERE user = '".$bruger."' AND pass= '".$pass."' LIMIT 1"; $result = mysql_query($query)or die("MySQL fejl - SELECT: " . mysql_error()); if(mysql_num_rows($result)>0) { $log = mysql_fetch_array($result); $_SESSION['status'] = "login"; $_SESSION['navn'] = $log['user']; //sætter status til at være 1, = at brugeren er online. $status = mysql_query("UPDATE login1 SET status='1' WHERE user=".$_SESSION['navn']." LIMIT 1") or die("MySQL fejl - UPDATE: " . mysql_error()); header("Location: index.php"); exit; } else { $_SESSION['status'] = "fejl"; header("Location: login.php"); exit; } } ?>
23. november 2005 - 22:19
#16
jakobdo, du har i din editerede udgave ikke fået sat '' om session variablen, som bromer ellers rettede ;)
24. november 2005 - 08:19
#17
Damn, det kan jeg godt se ja! :o( $status = mysql_query("UPDATE login1 SET status='1' WHERE user='".$_SESSION['navn']."' LIMIT 1") or die("MySQL fejl - UPDATE: " . mysql_error());
01. december 2005 - 10:46
#18
lukket
Vi tilbyder markedets bedste kurser inden for webudvikling