Autor Zpráva
Kamil M.
Profil *
Může mi někdo prosím vysvětlit proč mi todle háže Parse error: parse error, unexpected '>' in C:\Program Files\EasyPHP 2.0b1\www\tabulka.php on line 25. Má to vypočítat všechna prvočísla od zadané hodnoty do zadané hodnoty a zapsat do tabulky.
<form method=post>
   Vypočítej všechna prvočísla od <input type=text name=od size=5> do 
   <input type=text name=do size=5>
   <input type=submit value=Vypočítat name=odeslano>
   </form><br>
    <? 
    if (isset($_POST['odeslano'])) {
   $i=$_POST['od'];
   $do=$_POST['do'];
   echo "<TABLE ALIGN=CENTER BORDER=2>
   $x=2;
while ($i==$do){
do{
$y=$i/$x;
$x++;
  }while ($y!=0 or $x!=$i);
if ($x==$i) echo "<TR><TD>".$i;
$i++;
}
}
?>
</table>
  </body>
Matty
Profil
Kamil M.
Chybí ti tam uvozovka a středník:
"<TABLE ALIGN=CENTER BORDER=2>";
Kamil M.
Profil *
Chyběli me tam uvozovky
 echo "<TABLE ALIGN=CENTER BORDER=2>

Ale teď mě to píše Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in C:\Program Files\EasyPHP 2.0b1\www\tabulka.php on line 19
Kamil M.
Profil *
:D diki napsal sem uvozovky a nenapsal středník už to funguje
Joker
Profil
edit: pozdě :-)
Kamil M.
Profil *
Ale stejně to mám nějak blbě protože mi to vůbec nic nenapíše jak tuknu na Vypocitat:(
Kamil M.
Profil *
A už vím kde mám chybu:D
Joker
Profil
Kamil M.
Ale stejně to mám nějak blbě protože mi to vůbec nic nenapíše jak tuknu na Vypocitat:(
No jasně:

while ($i==$do){ ...v kombinaci $i=$_POST['od']; to znamená, že výpočet se provede jenom pokud do políček "od" a "do" vyplním to samé. Pravděpodobně tam má být while($i<$do)
Kamil M.
Profil *
jj ma tam byt ($i!=$do) ale stejně to mám blbě $y má byt zbytek po celočíselném dělení ne obyčejné dělení
Kamil M.
Profil *
V Pascalu byl zbytek po celočíselném dělení MOD. Je něco takovýho aji v PHP?
peta
Profil
Kamil M.
1. php kod bych daval uplne na zacatek souboru, dovnitr bych dal pouze vypis pres echo.

2. <?php - toto je platna php znacka
<?xml - toto je platna xml znacka
<? - a toto je platma php a xml znacka
cili pro jistotu bych tam psal vzdy php.

3. $i=$_POST['od']; - je dobre si overit issetem, zda tam neco je a je dobre provest kontrolu udaje na znaky, format a tak. Co kdyz ti poslu od=50 do=40 ? nebo od=0 do=0 ?
URI = tabulka.php?od=0&do=0&odeslano=1

4. pokud chces resit v kodu, pak je treba dat odkaz na kod. soubor_php.txt , aby jsme se mohli podivat, co je na radku 25, 24, 26. Takhle se ti na to muzem vykaslat uplne.

5.
if (isset($_POST['odeslano'])) {
echo "<TABLE ALIGN=CENTER BORDER=2>
...}
?>
</table>
To je velmi chytre, ze? Kdyz neni nic odeslano, tak vzdy vypise tag /table, ktery ovsem nikde nezacina. S takovym html kodem bych te poslal zpet do skoly, protoze bych pak nechtel resit CSS pro takovy kod. Pekna makacka najit pak, proc se neco obarvuje tak, jak nema...

6.
while ($y!=0 or $x!=$i);
chyba je na tomto radku, reseni je na cz.php.net/while
Osobne bych pouzival vsude {} misto spesl jinych zapisu

Hm, tak koukam podle ostatnich reakci, ze tam tech chyb je vic nez,co jsem nasel :)
Kamil M.
Profil *
S takovym html kodem bych te poslal zpet do skoly
To bude problém já do školy chodím do tercie na gymplu:D
Kamil M.
Profil *
peta
Uznávám mám to celý podrbaný su zvyklej na pascal radsi si ještě přečtu pár lekcí na Linuxsoftu:D
Alphard
Profil
V Pascalu byl zbytek po celočíselném dělení MOD. Je něco takovýho aji v PHP?
Ano, modulo s operátorem %
$g = 5 % 2; v $g by mělo být 1
Kamil M.
Profil *
Alphard
Dik funguje:D
peta
Profil
Kamil M.
pascal a delphi - jsou pascal jazyky
php, javascript, java, ... - a dalsi desitky jsou skupina c jazyku
asm, ... - jsou zase assemblery
atd

proste ten zapis je jinaci, dobra literatura je
cz.php.net + jmeno funkce nebo skupiny funkci
cz.php.net/string
cz.php.net/operators
cz.php.net/image
cz.php.net/file
...
Kamil M.
Profil *
peta
Dik mrknu na to
Joker
Profil
Kamil M.
Ještě jedna poznámka:
while($i != $neco){
...
$i++;
}

Lepší je tu podmínku zadat:
while($i < $neco)
...protože zjevně se ten cyklus nemá provádět ani v situaci, kdy $i bude větší, než $neco. Pro tenhle případ to možná je skoro zbytečné, ale je to takový dobrý návyk, protože ve složitějším případě nebo při chybě se může stát, že to $i hodnotu $neco přeskočí a sklouzne do nekonečného cyklu.
AAA
Profil *
class prvocislo{

function __construct($in){
$this->in=$in;
if ($this->in["start"]<1 or $this->in["stop"]<$this->in["start"] or !is_numeric($this->in["start"])) {
echo "chyba v zadaní";
return;
}
$this->start_stop();
echo $this->out;
}
function start_stop(){
for ($i=$this->in["start"]; $i<=$this->in["stop"]; $i++){
if (($i%2)==0) continue;

// $this->out .= ($i%11)==0?"<br>":"&nbsp;&nbsp;";
//$this->deleni($i);
$this->out .= ($this->deleni($i)==0 ? "<b>$i</b><br>" : "<font color=\"red\">$i-$this->_break</font><br>");
}
}

function deleni($del){
for ($d=2; $d<=($del/3); $d++){
switch ($d) {
case 1:
break;

case $del:
$chyba = 0;
break 2;
default:
if (($del%$d)==0) {$chyba = 1; $this->_break=$d; break 2;}
break;
}
}
return $chyba;
}
//strpos($string1,$needle)
// 2, 3, 5, 7, 11, 13, 17, 19, 23, 29
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0