Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Miksi ei toimi?

Sivun loppuun

tuomas88 [18.03.2004 09:40:46]

#

Tarkoitus olisi tehdä sivuille online-laskuri.
Tälläistä olen viritellyt.
Miksi ei toimi?
tulostaa vaan sen: vieraita:0
jos pistän while-silmukkaan vain print("$kayttaja"), toimii.
Missä vika?

by the way, table online:
(lisatty INT (25) NOT NULL,kayttaja text NOT NULL,ip text NOT NULL)

mysql_connect($mysql_1, $mysql_tunnus, $mysql_salasana);
@mysql_select_db($mysql_tietokanta) or die("Tietokantaa ei löydy");


$ip=$REMOTE_ADDR;
$time = time();

$vanha = $time - 600;

$query="DELETE FROM online WHERE lisatty < '$vanha'";
mysql_query($query);






if(isset($session_id))
{

$query="SELECT kayttaja FROM online WHERE kayttaja='$oma_tunnus'";
$haku=mysql_query($query);
$maara=mysql_num_rows($haku);




if($maara == "0")
{
$query="INSERT INTO online VALUES ('$time','$oma_tunnus','$ip')";
mysql_query($query);

}


if(!$maara == "0")
{
$query8="UPDATE online SET lisatty='$time' WHERE kayttaja='$oma_tunnus'";
mysql_query($query8);
}




}


$query="SELECT * FROM online";
$haku=mysql_query($query);
$maara=mysql_num_rows($haku);

$vieraita = "0";



while ($row = mysql_fetch_array($haku, MYSQL_ASSOC))
{


$kayttaja = $row['kayttaja'];



if(!$kayttaja == "vieras")
{
print("$kayttaja");
}




if($kayttaja == "vieras")
{
$vieraita = $vieraita++;
}




}

print("<br><strong>Vieraita:</strong> $vieraita");

mysql_close();

Olga [18.03.2004 10:31:16]

#

Et ainakaan tuossa koodinpätkässä laita sinne tauluun noita vieraita, eli laitatko ne sinne aikaisemmin? Ja sit muutama tarpeeton huomautus koodista & muista:

- koodiphp -tagit
- käyttäjä- ja ipnro-sarakkeille text lienee turhan massiivinen, varchar lienee parempi.
- $_SERVER-, $_SESSION - taulut
- if($maara==0) / if($maara=="0")
- if($maara!=0) / if(!$maara=="0")
- $vieraita = 0 / $vieraita = "0"
- if($kayttaja!="vieras") / if(!$kayttaja=="vieras")
- $vieraita++ / $vieraita = $vieraita++
- myös else on keksitty

Siinäpä jotain huomioita :)

Juhis [18.03.2004 12:26:43]

#

mikä hemmetti tuo eka mysql_query() oikein on?
Siis öö.. jotain ajatuskatkoksia sinulla.. pahojakin näemmä..

tuomas88 [18.03.2004 14:42:58]

#

lainaus:

Et ainakaan tuossa koodinpätkässä laita sinne tauluun noita vieraita, eli laitatko ne sinne aikaisemmin?

no sitä en ole vielä kerinnyt tekemään :D
mutta kyllä ton pitäisi näyttää noi rekisteröityneet käyttäjät...

suurin ongelma näyttää olevan tässä pätkässä:

while ($row = mysql_fetch_array($haku, MYSQL_ASSOC))
{


$kayttaja = $row['kayttaja'];



if(!$kayttaja == "vieras")
{
print("$kayttaja");
}




if($kayttaja == "vieras")
{
$vieraita = $vieraita++;
}




}

Jos joku nyt vain kertoisi, miksi se ei toimi!

Juhis [18.03.2004 14:48:34]

#

if($kayttaja != "vieras")
{
print($kayttaja);
}

ja tuo alempi $vieraita onnistuu näin:
$vieraita++;

Olga [18.03.2004 14:51:36]

#

Kai sen noin pitäis toimia.

<?php
if($kayttaja=="vieras")
  $vieraita++;
else
  print $kayttaja;
?>

edit: olin hidas :)

tuomas88 [18.03.2004 15:19:35]

#

nyt toimii!

Mistä johtuu ettei toiminut:

<?php
if(!$kayttaja=="vieras")
print("$kayttaja");
else
$vieraita++;
?>

Olga [18.03.2004 15:34:43]

#

Seuraava olis luultavasti toiminu:

<?php
if(!($kayttaja=="vieras"))
  print("$kayttaja");
else
  $vieraita++;
?>

Eli tuossa aiemmassa tuo not-operaattori heitti negatiiviseksi tuon $kayttaja-muuttujan arvon. Joku lausukoon sen suomeksi, itse en osaa.

Juhis [18.03.2004 17:44:56]

#

Suomeksi:
Jos ei ole totta että $kayttaja on vieras, tulostetaan $kayttaja (WTF, eikös sen pitäis alkaa laskemaan vieraita eikä tulostaa käyttäjää?)

tkarkkainen [21.03.2004 18:40:07]

#

lainaus:

Suomeksi:
Jos ei ole totta että $kayttaja on vieras, tulostetaan $kayttaja (WTF, eikös sen pitäis alkaa laskemaan vieraita eikä tulostaa käyttäjää?)

Ei. Jos ei ole totta, että $kayttaja on vieras, niin on totta, että $kayttaja ei ole vieras, jolloin $kayttaja on rekisteröitynyt, eli siis voidaan tulostaa se nimi.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta