Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP ongelma

Sivun loppuun

HtH [21.03.2002 19:18:26]

#

Kun yritän saada forin sisälle iffin, jonka sisälle vielä toinen if näin:

for ($x=0;$x<ehto;$x++)
  if {$y[$x]=$ehto}  // Tällä rivillä on muka virhe
   {
  if {$y[$x]="ehto"}
   {
   Tapahtumia...
   }
   }
}

Niin silloin tulee valitus:
Parse error: parse error, expecting `'}'' in x.php on line XX

Niin, että mikä voisi olla vikana?

Segate [21.03.2002 19:23:17]

#

if {$y[$x]="ehto"}

Kokeile tätä

if ($y[$x]="ehto")

Antti Laaksonen [21.03.2002 19:44:04]

#

Tuo lienee ratkaisu ongelmaasi.

Muista myös, että Basicista poiketen PHP:ssä vertailuun tarvitaan kaksi =-merkkiä.
Eli näin:

if ($y[$x]=="ehto")

HtH [21.03.2002 19:50:47]

#

Kiitos, mutta nyt se valittaa seuraavaa:

Parse error: parse error, expecting `','' or `';'' in /mbnet/h/haraa/peli/naytavinkit.php on line 35

Ja koodi on seuraavanlainen kokonaisuudessaan (muuttujien nimet, ja tiedoston nimet olen muuttanut):

<?php
$ad=fopen("x.dat","r+");
 ECHO "blaablaa";
for ($i=0;$i<count($ad);$i++)
 {

  if ($ad[$i]==$yksposthomma)
   {
  if ($ad[$i]=="ehto") //Tällä rivillä on selaimen mukaan virhe
   {
   $x1=$ad[$i+1];
   $x2=$ad[$i+2];
   $x3=$ad[$i+3];
   $x4=$ad[$i+4];
   $x5=$ad[$i+5];
   echo "<A HREF=".chr(34)."X?row=".$i.">".$x5."</A><BR>";
   }
   }
 }

?>

vipemype [21.03.2002 19:56:35]

#

kokeile jos otat nuo hipsut pois tuosta kohdasta:

if ($ad[$i]=="ehto")

HtH [21.03.2002 20:06:37]

#

hipsut?

HtH [21.03.2002 20:10:02]

#

Nyt on vielä rivillä:

$x1=$ad[$i+1];

seuraavanlainen virhe:

Parse error: parse error, expecting `']'' in /mbnet/h/haraa/peli/naytavinkit.php on line 37

HtH [21.03.2002 20:10:46]

#

Sori muuten, mä oon vasta aloittelija tässä, ja yritin tehdä jonkinlaisen jutskan yhelle sivulle, mutku ei oikein suostu toimiin.

Segate [21.03.2002 20:13:08]

#

Muista laittaa puolipisteet perään.

HtH [21.03.2002 20:21:38]

#

Mulla on. Vai pitääkö iffeissä, ja foreissa olla?

Antti Laaksonen [21.03.2002 21:26:12]

#

Ei tuossa mitään vikaa kyllä enää pitäisi olla. Tarkistin asian vielä omalla koneella, ja hyvin toimi (teksti blaabaa tulostui).

vipemype [21.03.2002 21:29:08]

#

Ei pidä. Muista että kaikkien ylimääräisten hipsujen " edessä täytyy olla \

vipemype [21.03.2002 21:29:55]

#

Bugaa vähän laitoin kenoviivan \" ilman tuota hipsua

HtH [22.03.2002 18:56:09]

#

Joo, kyllä se nyt toimii.
Mut mä yritin tehä sellasen, et se lukis rivin kerrallaan tekstistä, mut se ottaa isomman siivun, ku pitäs yhteen taulukon kohtaan. Miten sen sais silleen, et se toimis?

Antti Laaksonen [22.03.2002 20:00:05]

#

Helpointa on ehdottomasti:

$taulukko=file("tiedosto.dat");
// $taulukko[0] on ensimmäinen rivi
// $taulukko[1] on toinen rivi
// jne.

HtH [22.03.2002 22:00:49]

#

Kokeilin seuraavanlaista koodia:

<?php
$t=fopen("tiedosto.dat","a");
$y="RIVI1".chr(13)."RIVI2".chr(13)."RIVI3";
fwrite ($t,$y);
$g=file("tiedosto.dat");
for ($f=0;$f<count($g);$f++)
   {
   echo "RIVI nro.".$f." on ".$g[$f];
   }
?>

Mutta ei toiminut!
Missä vika? Toisaalta, olen vasta aloitteleva ohjelmoija PHP:ssä, joten tuossa voi olla paljonkin vikoja.

PS: Toinen osa PHP oppaasta!

Antti Laaksonen [22.03.2002 22:20:07]

#

Tiedosto pitää välissä sulkea.

Eli pistä tällainen rivi ennen $g=file("tiedosto.dat"); -riviä:

fclose($t);

HtH [23.03.2002 10:46:14]

#

Joo, nyt se toimii, ainakin osittain. Mutta se lataa arrayn kohtaan 0 koko tiedoston vaikka chr(13) on rivin vaihto(?)
Siis se tulostaa tekstin:
RIVI nro.0 on RIVI1 RIVI2 RIVI3

Ja koodin muutin tälläiseksi:

<?php
$t=fopen("tiedosto.dat","w");
$y="RIVI1".chr(13)."RIVI2".chr(13)."RIVI3";
fwrite ($t,$y);
fclose($t);
$g=file("tiedosto.dat");
for ($f=0;$f<count($g);$f++)
   {
   echo "RIVI nro.".$f." on ".$g[$f]."<BR>";
   }
?>

HtH [23.03.2002 10:48:32]

#

WEEE! Nyt se toimii! Muutin koodin muotoon:

<?php
$t=fopen("tiedosto.dat","w");
$y="RIVI1".chr(13).chr(10)."RIVI2".chr(13).chr(10)."RIVI3";
fwrite ($t,$y);
fclose($t);
$g=file("tiedosto.dat");
for ($f=0;$f<count($g);$f++)
   {
   echo "RIVI nro.".$f." on ".$g[$f]."<BR>";
   }
?>

Ja se toimii!!! Hyvä. Nyt pääsen jatkamaan puuhiani PHP:n parissa.


Sivun alkuun

Vastaus

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

Tietoa sivustosta