23. marts 2003 - 19:09Der er
12 kommentarer og 1 løsning
probs med mysql - tror jeg
Har en stump kode, som angiveligt virker på et andet domæne men som laver nogle fuldstændigt uberegnelige resultater på mit eget domæne..
Der bliver via en form sendt en variabel med en skærmopløsning, som skal lægges ind i en database.. Hvis opløsningen ikke findes skal der laves en ny række i tabellen med '1' som antal, altså den første gæst med opløsningen.. Hvis opløsningen findes skal den opdateres med 1 og lægges tilbage i databasen.. Det er her problemet opstår idet den smider fuldstændigt uberegnelige resultater ind i database lige fra 34 til 712 ;(
Dette er koden som jeg bruger, håber der er nogle som kan hjælpe :
<?php
/* get variables from hidden form */ $resolution = $HTTP_POST_VARS["resolution"];
/* check om cookie er sat */ if (!$HTTP_COOKIE_VARS["reg"]) {
/* opdater 'resolution' hvis den findes i db (ex. 1024x768) */ $checksql = mysql_query("SELECT * FROM adm_info1 WHERE res='$resolution'") or die(mysql_error()); $check = mysql_fetch_row($checksql);
/* check om den findes */ if ($check != NULL) {
/* opløsningen eksisterer i db - plus 'antl' med 1 */ $checksql2 = mysql_query("SELECT * FROM adm_info1 WHERE res='$resolution'") or die(mysql_error()); while ($resantal = mysql_fetch_array($checksql2)) { $antal = $resantal["antal"] + 1; mysql_query("UPDATE adm_info1 SET antal='$antal' WHERE res='$resolution'") or die(mysql_error()); } } else {
/* opløsningen eksisterer ikke - indsæt ny række */ mysql_query("INSERT INTO adm_info1 (res, antal) VALUES ('$resolution', '1')") or die(mysql_error()); }
/* sæt cookie - så bruger ikke kan refreshe siden og regge nyt info */ setcookie("reg", "dataregged"); }
Du kan ændre: /* opløsningen eksisterer i db - plus 'antl' med 1 */ $checksql2 = mysql_query("SELECT * FROM adm_info1 WHERE res='$resolution'") or die(mysql_error()); while ($resantal = mysql_fetch_array($checksql2)) { $antal = $resantal["antal"] + 1; mysql_query("UPDATE adm_info1 SET antal='$antal' WHERE res='$resolution'") or die(mysql_error()); }
til: /* opløsningen eksisterer i db - plus 'antl' med 1 */ mysql_query("UPDATE adm_info1 SET antal=antal+1 WHERE res='$resolution'") or die(mysql_error());
nu bruger jeg følgende kode, men den opdaterer stadig ikke ordentligt :
$resolution = $HTTP_POST_VARS["resolution"];
$checksql = mysql_query("SELECT * FROM adm_info1 WHERE res='$resolution'") or die(mysql_error()); $check = mysql_fetch_row($checksql);
if ($check) { mysql_query("UPDATE adm_info1 SET antal=antal+1 WHERE res='$resolution'") or die(mysql_error()); } else { mysql_query("INSERT INTO adm_info1 (res, antal) VALUES ('$resolution', '1')") or die(mysql_error()); }
/* get variables from hidden form */ $resolution = $HTTP_POST_VARS["resolution"];
/* check om cookie er sat */
if (!$HTTP_COOKIE_VARS["reg"]) { mysql_query("UPDATE adm_info1 SET antal=antal+1 WHERE res='$resolution'") or die(mysql_error()); if (mysql_affected_rows() == 0) { mysql_query("INSERT INTO adm_info1 (res, antal) VALUES ('$resolution', '1')") or die(mysql_error()); } }
/* sæt cookie - så bruger ikke kan refreshe siden og regge nyt info */ setcookie("reg", "dataregged");
intet som virkede, men med en fresh apache, php og mysql install funkede det, spørg mig ikek hvorfor ;((
Synes godt om
Ny brugerNybegynder
Din løsning...
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.