10. juni 2004 - 22:53Der er
19 kommentarer og 1 løsning
Tabel bliver opdateret, men det skal den ikke, hjælp.
Hejsa.
Jeg har noget kodeværk, et par sider, men der er en del kodning, så det er svært at poste det m.v.
Jeg leder derfor efter en som vil hjælpe med lidt php og mysql fejlfinding via msn eller icq.
Det drejer sig om én tabel og ca. 1-5 php sider, og fejlen er at et felt i tabellen bliver opdateret forkert, og jeg kan ikke finde fejlen eller noget som helst, og det vil være meget lettere at forklare via msn eller icq.
Hvis der er nogen der kan hjælpe, vil jeg poste hvad vi finder frem til, her på eksperten.
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.
Skal lige siges det er en chat, hvor man har sådanne små figurer, og problemet er når jeg rykker figurerne, så sker der sjove ting i mysql, eks. at jeg flytter en person til felt 33, så ryger han hen i nr. 31 i stedet.
Jeg har en tabel, her er eksport: brugerid = hvis en bruger er logget ind, og er i et felt, står brugerens id her. chatid = hvilken chat man er i. felt = definitionen af feltet usable = ja - dette er bare til at jeg tænkte på at lave nogle felter man ikke kan gå hen i. Det skal siges at chatid = 1, da jeg kun har 1 chat. og i denne tabel er der 60 rækker (det er hvad der er plads til på det lille billede/baggrund, som figurer går rundt på.
CREATE TABLE `brugere_online` ( `id` int(11) NOT NULL auto_increment, `brugerid` int(11) NOT NULL default '0', `chatid` int(11) NOT NULL default '0', `felt` int(11) NOT NULL default '0', `usable` enum('ja','nej') NOT NULL default 'ja', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=121 ;
Rækker:
INSERT INTO `brugere_online` VALUES (1, 0, 1, 1, 'ja'); INSERT INTO `brugere_online` VALUES (2, 0, 1, 2, 'ja'); INSERT INTO `brugere_online` VALUES (3, 0, 1, 3, 'ja'); INSERT INTO `brugere_online` VALUES (4, 0, 1, 4, 'ja'); INSERT INTO `brugere_online` VALUES (5, 0, 1, 5, 'ja'); INSERT INTO `brugere_online` VALUES (6, 0, 1, 6, 'ja'); INSERT INTO `brugere_online` VALUES (7, 0, 1, 7, 'ja'); INSERT INTO `brugere_online` VALUES (8, 0, 1, 8, 'ja'); INSERT INTO `brugere_online` VALUES (9, 0, 1, 9, 'ja'); INSERT INTO `brugere_online` VALUES (10, 0, 1, 10, 'ja'); INSERT INTO `brugere_online` VALUES (11, 0, 1, 11, 'ja'); INSERT INTO `brugere_online` VALUES (12, 0, 1, 12, 'ja'); INSERT INTO `brugere_online` VALUES (13, 0, 1, 13, 'ja'); INSERT INTO `brugere_online` VALUES (14, 0, 1, 14, 'ja'); INSERT INTO `brugere_online` VALUES (15, 0, 1, 15, 'ja'); INSERT INTO `brugere_online` VALUES (16, 0, 1, 16, 'ja'); INSERT INTO `brugere_online` VALUES (17, 0, 1, 17, 'ja'); INSERT INTO `brugere_online` VALUES (18, 0, 1, 18, 'ja'); INSERT INTO `brugere_online` VALUES (19, 0, 1, 19, 'ja'); INSERT INTO `brugere_online` VALUES (20, 0, 1, 20, 'ja'); INSERT INTO `brugere_online` VALUES (21, 0, 1, 21, 'ja'); INSERT INTO `brugere_online` VALUES (22, 0, 1, 22, 'ja'); INSERT INTO `brugere_online` VALUES (23, 0, 1, 23, 'ja'); INSERT INTO `brugere_online` VALUES (24, 0, 1, 24, 'ja'); INSERT INTO `brugere_online` VALUES (25, 0, 1, 25, 'ja'); INSERT INTO `brugere_online` VALUES (26, 0, 1, 26, 'ja'); INSERT INTO `brugere_online` VALUES (27, 0, 1, 27, 'ja'); INSERT INTO `brugere_online` VALUES (28, 0, 1, 28, 'ja'); INSERT INTO `brugere_online` VALUES (29, 0, 1, 29, 'ja'); INSERT INTO `brugere_online` VALUES (30, 0, 1, 30, 'ja'); INSERT INTO `brugere_online` VALUES (31, 0, 1, 31, 'ja'); INSERT INTO `brugere_online` VALUES (32, 0, 1, 32, 'ja'); INSERT INTO `brugere_online` VALUES (33, 0, 1, 33, 'ja'); INSERT INTO `brugere_online` VALUES (34, 0, 1, 34, 'ja'); INSERT INTO `brugere_online` VALUES (35, 0, 1, 35, 'ja'); INSERT INTO `brugere_online` VALUES (36, 0, 1, 36, 'ja'); INSERT INTO `brugere_online` VALUES (37, 0, 1, 37, 'ja'); INSERT INTO `brugere_online` VALUES (38, 0, 1, 38, 'ja'); INSERT INTO `brugere_online` VALUES (39, 0, 1, 39, 'ja'); INSERT INTO `brugere_online` VALUES (40, 0, 1, 40, 'ja'); INSERT INTO `brugere_online` VALUES (41, 0, 1, 41, 'ja'); INSERT INTO `brugere_online` VALUES (42, 0, 1, 42, 'ja'); INSERT INTO `brugere_online` VALUES (43, 0, 1, 43, 'ja'); INSERT INTO `brugere_online` VALUES (44, 0, 1, 44, 'ja'); INSERT INTO `brugere_online` VALUES (45, 0, 1, 45, 'ja'); INSERT INTO `brugere_online` VALUES (46, 0, 1, 46, 'ja'); INSERT INTO `brugere_online` VALUES (47, 0, 1, 47, 'ja'); INSERT INTO `brugere_online` VALUES (48, 0, 1, 48, 'ja'); INSERT INTO `brugere_online` VALUES (49, 0, 1, 49, 'ja'); INSERT INTO `brugere_online` VALUES (50, 0, 1, 50, 'ja'); INSERT INTO `brugere_online` VALUES (51, 0, 1, 51, 'ja'); INSERT INTO `brugere_online` VALUES (52, 0, 1, 52, 'ja'); INSERT INTO `brugere_online` VALUES (53, 0, 1, 53, 'ja'); INSERT INTO `brugere_online` VALUES (54, 0, 1, 54, 'ja'); INSERT INTO `brugere_online` VALUES (55, 0, 1, 55, 'ja'); INSERT INTO `brugere_online` VALUES (56, 0, 1, 56, 'ja'); INSERT INTO `brugere_online` VALUES (57, 0, 1, 57, 'ja'); INSERT INTO `brugere_online` VALUES (58, 0, 1, 58, 'ja'); INSERT INTO `brugere_online` VALUES (59, 0, 1, 59, 'ja'); INSERT INTO `brugere_online` VALUES (60, 0, 1, 60, 'ja');
Når så en bruger "rykker" sig når de er logget inde, har jeg en fil. Som sætter brugerid = "ham som er logget ind" hvor felt = "det felt man har valgt".
Grundet til jeg har lavet det på denne måde, er for at kunne have hvert enkelt felt defineret, så det er muligt at lave nogle felter som man ikke kan gå hen i, eksempelvis.
Jeg har en move.php som bliver brugt når man klikker på et felt, eksempelvis som: min javascript som går hen til move.php: <script language="javascript" type="text/javascript"> function mv(felt) { parent.chat.location = 'move.php?chatid=<?php echo $_GET['chatid']; ?>&felt='+felt; } </script>
Dette er den kode som er i move.php:
<?php if ($_GET['felt'] AND $_GET['chatid']) { // hvis variablerne findes include ("inc/mysql.inc.php"); // hent db connection
$tjek = mysql_query("SELECT * FROM brugere_online WHERE brugerid = '$_COOKIE[bruger]'"); // hent den bruger som skal flyttes $row = mysql_fetch_array($tjek);
mysql_query("UPDATE brugere_online SET brugerid = '$_COOKIE[bruger]' WHERE felt = '$_GET[felt]' AND brugerid = '0' AND usable = 'ja' AND chatid = '$_GET[chatid]'") or die(mysql_error()); // ændre denne bruger, så han nu står i et andet felt.
if (mysql_affected_rows() > 0) { // hvis han kunne flytte det til felt, gå videre (kunne tænkes der allerede var en i feltet, og derfor kunne man ikke flytte mysql_query("UPDATE brugere_online SET brugerid = '0' WHERE felt = '$row[felt]' AND chatid = '$row[chatid]'") or die(mysql_error()); // slet der hvor figuren stod før }
header ("Location: chat.php?chatid=$_GET[chatid]"); // går hen til chat igen, så man kan se den figur man lige har rykket. }
Problemet er så, når jeg trykker på et felt, hvorefter figuren skal opdateres i databasen og fjernes fra gamle felt, så bliver det ikke opdateret med det felt som jeg har trykket på... nogle gange, jo, men andre gange bliver det i et andet felt figuren kommer til at stå, fordi mysql tabellen har forkerte oplysninger... men jeg synes min mysql query er god nok, kan ikke finde fejl.
Hvis du skal checke om varabler findes skal dette: if ($_GET['felt'] AND $_GET['chatid']) { // hvis variablerne findes byttes til dette: if (isset($_GET['felt']) AND isset($_GET['chatid'])) { // hvis variablerne findes
Alle dine felter i tabellen er integer (nästen), der skal ikke '' rundt om i dine SQL-querys: mysql_query("UPDATE brugere_online SET brugerid = 0 WHERE felt = $row[felt] AND chatid = $row[chatid]") or die(mysql_error()); // slet der hvor figuren stod før
Jeg vil jo nok mene at det påvirker en del at du skriver med eller uden '. Databasen tolker det som en character hvis du skriver med '. Hvis du derimod skriver ` så påvirker det ikke noget at det er en integer.
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.