Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Bład składniowy, pomocy:/, Błąd składniowy
-batonik20-
post 25.03.2011, 16:33:46
Post #1





Goście







Witam, chciałbym zapytać gdzie w tym kodzie jest błąd

<?php
for($odl = 50; $odl <= 250; $odl += 50)
{
echo "<tr><td align="right">".$odl."</td>";
echo "<td align="right">".$odl / 10."</td></tr>';
}
?>
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' on line 17

próbowałem na różne sposoby i nie wiem jak to zapisać poprawnie, pomóżcie.
Go to the top of the page
+Quote Post
sadistic_son
post 25.03.2011, 16:46:57
Post #2





Grupa: Zarejestrowani
Postów: 1 476
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cudzysłowy pomyliłeś:
  1. echo '<tr><td align="right">'.$odl.'</td>';
  2. echo '<td align="right">'.$odl / 10.'</td></tr>';


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
NEO.pl
post 25.03.2011, 16:52:35
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 26.01.2011

Ostrzeżenie: (40%)
XX---


Cytat(batonik20 @ 25.03.2011, 16:33:46 ) *
echo "<tr><td align="right">".$odl."</td>";
echo "<td align="right">".$odl / 10."</td></tr>';
próbowałem na różne sposoby i nie wiem jak to zapisać poprawnie, pomóżcie.


Zamiast takich potworkow (albo co gorsza, echo "foo \"bar\"") ktore az sie prosza o sknocenie, dlaczego nie uzyjesz np: printf('<td align="right">%s</td>', $odl); I czytelniejsze i skopac trudniej

Ten post edytował NEO.pl 25.03.2011, 16:52:52
Go to the top of the page
+Quote Post
-batonik20-
post 25.03.2011, 16:55:27
Post #4





Goście







no i tak jest coś nie tak, może mam źle skonfigurowany xampp? bo w wyniku dostaje coś takiego

\n \n"; echo "\n\n"; } ?>
Odleg�o�� Koszt
$od ". $od / 10 ."

że nie ma polskich to mniejszy problem muszę zmienić kodowanie, ale dlaczego pod $odl i $odl/10 nie wstawia liczb??
Go to the top of the page
+Quote Post
-batonik20-
post 25.03.2011, 16:57:02
Post #5





Goście







a i taki błąd:/

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'
Go to the top of the page
+Quote Post
Turson
post 25.03.2011, 16:57:15
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


$_POST
Go to the top of the page
+Quote Post
batonik20
post 25.03.2011, 17:11:22
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 25.03.2011

Ostrzeżenie: (0%)
-----


odl nie jest pobierany jest zdeklarowany w tym skrypcie, ale nawet jak dopisałem to ten sam błąd:/

Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Koszt</title>
</head>

<body>
<table border = "0" cellpadding="3">
    <tr>
        <td bgcolor="#CCCCCC" align="center">Odległość</td>
        <td bgcolor="#CCCCCC" align="center">Koszt</td>
    </tr>
    <?php
    for($odl = 50; $odl <= 250; $odl += 50)
    {
                echo '<tr><td align="right">'.$odl.'</td>';
                echo '<td align="right">'.$odl / 10.'</td></tr>';
    }
    ?>
</table>
</body>
</html>


Cytat(NEO.pl @ 25.03.2011, 16:52:35 ) *
Zamiast takich potworkow (albo co gorsza, echo "foo \"bar\"") ktore az sie prosza o sknocenie, dlaczego nie uzyjesz np: printf('<td align="right">%s</td>', $odl); I czytelniejsze i skopac trudniej


hm tym sposobem działa, ale dlaczego przez "echo" nie??
Go to the top of the page
+Quote Post
Turson
post 25.03.2011, 17:13:24
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Gdzie w ogóle masz zdefiniowaną zmienną $odl?
Go to the top of the page
+Quote Post
batonik20
post 25.03.2011, 17:24:09
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 25.03.2011

Ostrzeżenie: (0%)
-----


przy pierwszym użyciu w funkcji for?? tak miałem w kursie... moglibyście wytłumaczyć dlaczego przez printf działa a przez echo nie i jak to poprawić?

jak już korzystam z Waszej pomocy to zapytam jeszcze o takie coś:
kod:
Kod
<td>Jak dowiedzieli się Państwo o sklepie </td>
        <td><select name="jak">
            <option value="a">Jestem stałym klientem</option>
            <option value="b">Reklama telewizyjna</option>
            <option value="c">Książka telefoniczna</option>
            <option value="d">Znajomy</option>
            </select>
       </td>

i dane te sa wysyłane przez POST do innej strony i tam mam kod
Kod
switch($jak)
    {
        case 'a';
            echo'<P>Stały kient.';
            break;
        case 'b';
            echo'<P>Reklama telewizyjna.';
            break;
        case 'c';
            echo'<P>Ksiązka telefoniczna.';
            break;
        case 'd';
            echo'<P>Znajomy.';
            break;
        default;
            echo '<P>Zródło nieznane.';
            break;
    }


i bład:Notice: Undefined variable: jak in C:\xampp\htdocs\moje\janek\przetworzone.php
robie kurs i tam tak jest ale no nie działa://

Ten post edytował batonik20 25.03.2011, 17:26:28
Go to the top of the page
+Quote Post
NEO.pl
post 25.03.2011, 17:57:48
Post #10





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 26.01.2011

Ostrzeżenie: (40%)
XX---


Cytat(batonik20 @ 25.03.2011, 17:24:09 ) *
switch($jak)


switch( $_POST['jak'] )

poczytaj co to bylo register_globals i dlaczego to zlo.
Cytat
robie kurs i tam tak jest ale no nie działa://


Wyrzuc ten kurs. To smiec jakis przestarzaly (tak na oko PHP4).
Go to the top of the page
+Quote Post
batonik20
post 25.03.2011, 18:04:19
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 25.03.2011

Ostrzeżenie: (0%)
-----


fakt działa, dzięki:)
a z tym echo?? wiem że mogę używać tego printf ale chciałbym wiedzieć w czym tkwi tam problem...
Go to the top of the page
+Quote Post
NEO.pl
post 25.03.2011, 18:19:53
Post #12





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 26.01.2011

Ostrzeżenie: (40%)
XX---


To zadanie domowe dla Ciebie na weekend smile.gif Poczytaj najpier troche podstaw: http://pl.php.net/manual/en/language.types.string.php bo mam wrazenie nie rozumiesz do konca czym dokladnie jest string i po co (oraz *jak*) uzywa sie " czy ' . Jak to ogarniesz, to bedzie jasne dlaczego zapis ktory wykonales w swoim poczatkowym kodzie jest bledny (i czym rozni sie podany przeze mnie printf() -> bo to nie kwestia uzycia prinf() czy echo())

Ten post edytował NEO.pl 25.03.2011, 18:21:58
Go to the top of the page
+Quote Post
batonik20
post 25.03.2011, 18:52:19
Post #13





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 25.03.2011

Ostrzeżenie: (0%)
-----


tongue.gif
wiem że w zapisie z " php szuka zmiennych nawet jak ich tam nie ma i dlatego jest to metoda wolniejsza niż ' w której twardo określamy że to co się w tym znajduję ma być wydrukowane bez zmian... dobrze kminie?wink.gif

udało sięsmile.gif
Kod
echo ('<td align="right">'.$odl.'</td>');
     echo ('<td align="right">'.$odl/"10".'</td>');

działa;)
dzięki wszystkim za help;)
Go to the top of the page
+Quote Post
NEO.pl
post 25.03.2011, 20:35:13
Post #14





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 26.01.2011

Ostrzeżenie: (40%)
XX---


Cytat(batonik20 @ 25.03.2011, 18:52:19 ) *
wiem że w zapisie z " php szuka zmiennych nawet jak ich tam nie ma i dlatego jest to metoda wolniejsza niż ' w której twardo określamy że to co się w tym znajduję ma być wydrukowane bez zmian... dobrze kminie?wink.gif

Tak, choc akurat nie o to chodzi w tym przypadku smile.gif Napisales takie cos:

echo "<tr><td align="right">".$odl."</td>";

dla PHP drugi napotkany " (przed 'right') zamykal ciag ciag znakow ktory otworzyles, wiec dla parsera tam bylo cos takiego:

echo "<tr><td align=" i dalej jakies smieci i dlatego dostales blad skladni. Jesli zrobilby tak:

echo '<tr><td align="right">' . $odl . "</td>";

to problemu by nie bylo. Rowniez taki zapis bylby poprawny (choc szpetny i sugeruje unikac jesli nie uzywasz character escaping swiadomie ):

echo "<tr><td align=\"right\">" . $odl . "</td>";


Finalnie - sugeruje znajdz sobie jakis sensowny edytor z podswietlaniem skladni (np. ja lubie jedit.org + PHP parser plugin, ale generalnie dowolny mniej pokraczny niz niejaki notatnik powinien dac rade). Od razu bys widzial ze cos nie tak (bo akurat ten problem ze stringami nie jest zwiazany li tylko z php) i kazde podswietlanie by Ci to pokazalo.

Cytat
echo ('<td align="right">'.$odl/"10".'</td>');


A tak dycha to w cudzyslowiach po co? Chyba musisz przeczytac rozdzial jeszcze raz smile.gif

Ten post edytował NEO.pl 25.03.2011, 20:36:38
Go to the top of the page
+Quote Post
batonik20
post 26.03.2011, 00:02:40
Post #15





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 25.03.2011

Ostrzeżenie: (0%)
-----


o dzięki za info teraz to czuje;) no ten mój ostatni z "" dziwny ale o dziwo działał:0

zainstalowałem jEdit i ten plugin ale wcale nic mi nie podkreśla ani nie sprawdza:/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 04:54