Avatar billede totaliorden Nybegynder
27. december 2002 - 12:09 Der er 33 kommentarer og
2 løsninger

Underlig fejl - Jeg fatter intet!!

Er der lige en der kan forklare mig, hvorfor mit script lægger +3 oven i det nuværende tal??

--- Scriptet ---
$result = mysql_query("SELECT id, af, link, billede, ip, visning, vist FROM bannere ORDER BY RAND() LIMIT 1");
while($row = mysql_fetch_array($result)) {
  if ($row[af] !== $bruger){
  $resulto = mysql_query("UPDATE bannere SET vist = vist + 1 WHERE id = $row[id]");}
if ($row[visning] == $row[vist]){
  mysql_query("delete from bannere where id ='$row[id]'");}

--- MySQL strukturen ---
  id int(11) NOT NULL auto_increment,
  af varchar(40) NOT NULL default '',
  link tinytext NOT NULL,
  billede tinytext NOT NULL,
  ip varchar(40) NOT NULL default '',
  visning int(6) NOT NULL default '0',
  vist int(6) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede sthen Nybegynder
27. december 2002 - 12:15 #1
Ved jeg ikke umiddelbart, men du har da en fejl her:
if ($row[af] !== $bruger){

- bør vel hedde :
if ($row[af] != $bruger){
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:17 #2
nej det virker fint
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:17 #3
Det er nu mere den her jeg tænker på:
$resulto = mysql_query("UPDATE bannere SET vist = vist + 1 WHERE id = $row[id]");}

Hvorfor den lige lægger 3 oveni når det kun skal være 1
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:20 #4
og if ($row[af] !== $bruger){ er rigtig nok :)
det er en cookie tings tjekker...
Avatar billede mjl Nybegynder
27. december 2002 - 12:22 #5
Prøv...

$resulto = mysql_query("UPDATE bannere SET vist = vist + 1 WHERE id = '$row[id]'");}
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:23 #6
har jeg også prøvet, det virker heller ikke med '$row[id]'
Avatar billede tipsen Nybegynder
27. december 2002 - 12:23 #7
sthen: !== en en type-sammenligning - dvs. den kontrollerer at både indhold og typer af de to variable er identiske.
Avatar billede mjl Nybegynder
27. december 2002 - 12:24 #8
Ja - prøv !=
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:26 #9
virker heller ikke...
Avatar billede mjl Nybegynder
27. december 2002 - 12:28 #10
Hvorfor har du $resulto foran din query????
Avatar billede mjl Nybegynder
27. december 2002 - 12:29 #11
...det virker da forkert - ikk?
Avatar billede mjl Nybegynder
27. december 2002 - 12:31 #12
Prøv denne:

<?
$result = mysql_query("SELECT id, af, link, billede, ip, visning, vist FROM bannere ORDER BY RAND() LIMIT 1");
while($row = mysql_fetch_array($result)) {
$id_nu = $row['id'];
  if ($row['af'] !== $bruger){
  mysql_query("UPDATE bannere SET vist = vist + 1 WHERE id = '$id_nu'");
  }
if ($row['visning'] == $row[vist]){
  mysql_query("delete from bannere where id ='$id_nu'");
  }
?>
Avatar billede mjl Nybegynder
27. december 2002 - 12:31 #13
Sorry...

<?
$result = mysql_query("SELECT id, af, link, billede, ip, visning, vist FROM bannere ORDER BY RAND() LIMIT 1");
while($row = mysql_fetch_array($result)) {
$id_nu = $row['id'];
  if ($row['af'] !== $bruger){
  mysql_query("UPDATE bannere SET vist = vist + 1 WHERE id = '$id_nu'");
  }
if ($row['visning'] == $row['vist']){
  mysql_query("delete from bannere where id ='$id_nu'");
  }
?>
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:35 #14
Det virker heller ikke. Den smider stadig 3 oveni
Avatar billede mjl Nybegynder
27. december 2002 - 12:36 #15
ok - så skil tingene ad...

Tag dine if-sætninger ud af din while!!!!
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:37 #16
nå ... Nu har jeg lige kørt scriptet for sig selv, uden at inkludere det i en anden side, og nu virker det, men bare ikke når jeg includer .....
underligt
Avatar billede mjl Nybegynder
27. december 2002 - 12:39 #17
<?
$result = mysql_query("SELECT id, af, link, billede, ip, visning, vist FROM bannere ORDER BY RAND() LIMIT 1");
while($row = mysql_fetch_array($result)) {
$id_nu = $row['id'];
$visning_nu = $row['visning'];
$vist_nu = $row['vist'];
$af_nu = $row['af'];
}
if ($af_nu != $bruger){
mysql_query("UPDATE bannere SET vist = vist + 1 WHERE id = '$id_nu'");
}
if ($visning_nu == $vist_nu){
mysql_query("delete from bannere where id ='$id_nu'");
}
?>
Avatar billede mjl Nybegynder
27. december 2002 - 12:40 #18
...det kan jo hænge sammen med, hvad der bliver hvad - nogen gange bliver $noget = noget_jeg_ikke_havde_ventet
Avatar billede mjl Nybegynder
27. december 2002 - 12:42 #19
...man kan lave nogle echo'er rundt omkring, for at tjekke hvad $noget er lig med på dette sted i dokumentet!!!
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:43 #20
huh?
Avatar billede mjl Nybegynder
27. december 2002 - 12:44 #21
Sorry - sagde jeg noget forkert? :o(
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:45 #22
Forstår ikke lige hvad du mener med "...det kan jo hænge sammen med, hvad der bliver hvad - nogen gange bliver $noget = noget_jeg_ikke_havde_ventet"
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:49 #23
Så snart jeg bruger <? include "banner.php" ?> , så klasker den 3 oveni, og det forstår jeg sgu ikke
Avatar billede mjl Nybegynder
27. december 2002 - 12:49 #24
Det jeg mener er, at når vi inkluderer noget i andre filer, kan en variabel pludselig ha' fået en anden værdi...

Altså $id er lige nu lig med '15'
...men så inkluderer vi noget som gør $id = '0' ....måske!!!
Avatar billede mjl Nybegynder
27. december 2002 - 12:50 #25
<? include "banner.php"?>

...skal jo være med (;)

<? include "banner.php";?>
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:51 #26
det er jo det, men det gør jeg ikke lige her...
så jeg fatter nada af det
Avatar billede mjl Nybegynder
27. december 2002 - 12:52 #27
Ligger den +3 hver gang...?

Altså 3-6-9-12 o.s.v.
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:53 #28
ja
Avatar billede totaliorden Nybegynder
27. december 2002 - 12:54 #29
men ikke når jeg køre scriptet direkte, så virker det fint...
Avatar billede mjl Nybegynder
27. december 2002 - 12:54 #30
Du mangler en } i enden af scriptet!!!
Avatar billede mjl Nybegynder
27. december 2002 - 12:56 #31
Sådan her:

$result = mysql_query("SELECT id, af, link, billede, ip, visning, vist FROM bannere ORDER BY RAND() LIMIT 1");
while($row = mysql_fetch_array($result)) {
  if ($row[af] !== $bruger){
  $resulto = mysql_query("UPDATE bannere SET vist = vist + 1 WHERE id = $row[id]");}
if ($row[visning] == $row[vist]){
  mysql_query("delete from bannere where id ='$row[id]'");}
}
Avatar billede mjl Nybegynder
27. december 2002 - 12:57 #32
...hjalp det?
Avatar billede totaliorden Nybegynder
27. december 2002 - 13:00 #33
så fandt jeg problemet!!
Det var en menu jeg havde inkluderet, men der var selvfølgelig fejl i den, så den har fucket det hele op :)

Men jeg takker for indsatsen!
Avatar billede mjl Nybegynder
27. december 2002 - 13:03 #34
Det var godt - det er virkelig irriterende, og sidde med sådan et problem, og ikke kan komme videre!!!

Godt nytår!!!
Avatar billede totaliorden Nybegynder
27. december 2002 - 13:04 #35
tak og i lige måde da
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester