Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML][MYSQL]Problem ze znakiem '<' :)
frykar
post 4.02.2009, 21:32:28
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

Ostrzeżenie: (10%)
X----


Witam, mam pozornie wyglądający "głupi problem". A mianowicie mam taki kod:
  1. <?php
  2.  if (!$Nazwa_serwisu)
  3.   {
  4.    echo "Nie ma danych<br>";
  5.   }
  6.  else
  7.   {
  8.    $connection = @mysql_connect("localhost", "root", "krasnal")
  9.    or die("Brak lacznosci");
  10.  
  11.    $db_name = "rma";
  12.  
  13.    mysql_select_db($db_name, $connection);
  14.  
  15.    $nazwa = $_POST['Nazwa_serwisu'];
  16.  
  17.    $sql = "UPDATE dodaj_serwis SET Nazwa_serwisu='$_POST[Nazwa_serwisu]' LIMIT 1";
  18.        
  19.  
  20.    $result = @mysql_query($sql, $connection);
  21.    
  22. $num=mysql_numrows($result);
  23.  
  24. $i=0;
  25. while ($i < $num)
  26. {
  27.  
  28. $Nazwa_serwisu=mysql_result($result,$i,"Nazwa_serwisu");
  29. $Telefon=mysql_result($result,$i,"Telefon");
  30. $Nr_seryjny=mysql_result($result,$i,"Nr_seryjny");
  31. $Data_zakupu=mysql_result($result,$i,"Data_zakupu");
  32. $Dlugosc_gwarancji=mysql_result($result,$i,"Dlugosc_gwarancji");
  33. $Rodzaj_serwisu=mysql_result($result,$i,"Rodzaj_serwisu");
  34. $Data_realizacji=mysql_result($result,$i,"Data_realizacji");
  35. $Dane_klienta=mysql_result($result,$i,"Dane_klienta");
  36. $Opis_problemu=mysql_result($result,$i,"Opis_problemu");
  37.  
  38.  
  39. <form action="edit.php" method="post">
  40. <input type="hidden" name="ud_id" value="<? <b><b><b><b>echo</b></b></b></b> $id; ?>">
  41. Nazwa_serwisu: <input type="text" name="ud_Nazwa_serwisu" value="<? <b><b><b><b>echo</b></b></b></b> $Nazwa_serwisu; ?>"><br>
  42. Telefon: <input type="text" name="ud_Telefon" value="<? <b><b><b><b>echo</b></b></b></b> $Telefon; ?>"><br>
  43. Nr_seryjny: <input type="text" name="ud_Nr_seryjny" value="<? <b><b><b><b>echo</b></b></b></b> $Nr_seryjny; ?>"><br>
  44. Data_zakupu: <input type="text" name="ud_Data_zakupu" value="<? <b><b><b><b>echo</b></b></b></b> $Data_zakupu; ?>"><br>
  45. Dlugosc_gwarancji: <input type="text" name="ud_Dlugosc_gwarancji" value="<? <b><b><b><b>echo</b></b></b></b> $Dlugosc_gwarancji; ?>"><br>
  46. Rodzaj_serwisu: <input type="text" name="ud_Rodzaj_serwisu" value="<? <b><b><b><b>echo</b></b></b></b> $Rodzaj_serwisu; ?>"><br>
  47. Data_realizacji: <input type="text" name="ud_Data_realizacji" value="<? <b><b><b><b>echo</b></b></b></b> $Data_realizacji; ?>"><br>
  48. Dane_klienta: <input type="text" name="ud_Dane_klienta" value="<? <b><b><b><b>echo</b></b></b></b> $Dane_klienta; ?>"><br>
  49. Opis_problemu: <input type="text" name="ud_Opis_problemu" value="<? <b><b><b><b>echo</b></b></b></b> $Opis_problemu; ?>"><br>
  50. <input type="Submit" value="Aktualizuj">
  51. </form>
  52.  
  53. ++$i;
  54. }
  55. ?>

Jak odpalam ten skrypt na stronie, pojawia mi się błąd że brakuje '<' w tym miejscu:
Kod
<form action="edit.php" method="post">

Dla mnie powyższy kod wygląda prawidłowo, ale nie działa to pewnie się mylę. Spójrzcie na niego
Dodam jeszcze że jak przed tym kawałkiem kodu
Kod
<form action="edit.php" method="post">
wstawie '?>' to fragment poniżej tego kodu jest ok, ale tak nie może być, bo wtedy nie bedzie realizacji całego kodu.

Ten post edytował frykar 4.02.2009, 21:33:53
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
piotrooo89
post 4.02.2009, 21:36:53
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




nie możesz w php używać "gołych" znaczników/tagów html'a, echo'uj je albo skończ wcześniej dając ?>


--------------------
Go to the top of the page
+Quote Post
decha-design
post 4.02.2009, 22:49:06
Post #3





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Cytat(piotrooo89 @ 4.02.2009, 21:36:53 ) *
echo'uj je albo skończ wcześniej dając ?>


kolega może nie wiedzieć co to znaczy echo'uj ... =)

  1. <form action="edit.php" method="post">
  2. <input type="hidden" name="ud_id" value="<? <b><b><b><b>echo</b></b></b></b> $id; ?>">
wtf?

  1. <?php
  2. echo '<form action="edit.php" method="post">
  3. <input type="hidden" name="ud_id" value="'.$id.'">';
  4. ?>


--------------------
Go to the top of the page
+Quote Post
frykar
post 4.02.2009, 23:43:57
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

Ostrzeżenie: (10%)
X----


Ale nie wiem czy zauważyliście gdzie sie zaczyna kod php i gdzie sie konczy. Zapis który uzyłem faktycznie nie jest najlepszy, ale taki znalazlem w jednej z ksiazek. Zrobilem tak jak napisales ale dalej wyskakuje komunikat o braku znaku '<'. Najlepiej to widac w jakims edytorze PHP.
Go to the top of the page
+Quote Post
Foxx
post 4.02.2009, 23:52:18
Post #5





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Widzimy gdzie się zaczyna php a gdzie kończy. W książce widocznie jest błąd, ten zapis jest całkowicie błędny a nie nienajlepszy.
Manual: wyskakiwanie z HTML'a

Ten post edytował Foxx 4.02.2009, 23:53:16
Go to the top of the page
+Quote Post
frykar
post 5.02.2009, 18:16:17
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

Ostrzeżenie: (10%)
X----


To może ktoś poprawić tam gdzie mam błąd? Patrzyłem na manula ale poprawki nic nie dały i dalej jest ten błąd czyli brak znaku '<'. A może jest inny sposób aby połączyć sie z plikiem edit.php?? Posty typu "kod jest niepoprawny" nic mi nie dają. Może napisze ktoś coś więcej.
Go to the top of the page
+Quote Post
matixrr
post 5.02.2009, 18:22:40
Post #7





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 14.04.2007

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


Przed
Kod
<form...

daj
Kod
echo'


a za
Kod
</form>

daj
Kod
';


I pozmieniaj te value tak jak decha-design napisał.

Ten post edytował matixrr 5.02.2009, 18:24:00


--------------------
Pomogłem? Zmotywuj mnie do dalszej pracy i kliknij magiczny przycisk:

Go to the top of the page
+Quote Post
Foxx
post 5.02.2009, 18:25:04
Post #8





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Dałem ci linka do manuala do rozdziału, w którym dowiesz się jak to poprawnie zrobić.
Nikt nie napisał samego "kod jest niepoprawny".
Jak poprawki mogły nic nie dać? Może chociaż numery linii, w których jest błąd się zmieniły?
Wklej poprawioną wersję i błąd.

Ten post edytował Foxx 5.02.2009, 18:26:24
Go to the top of the page
+Quote Post
Ramadisu
post 5.02.2009, 18:27:05
Post #9





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 27.01.2009

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


Cytat(frykar @ 5.02.2009, 18:16:17 ) *
To może ktoś poprawić tam gdzie mam błąd? Patrzyłem na manula ale poprawki nic nie dały i dalej jest ten błąd czyli brak znaku '<'. A może jest inny sposób aby połączyć sie z plikiem edit.php?? Posty typu "kod jest niepoprawny" nic mi nie dają. Może napisze ktoś coś więcej.





<?php otwiera kod php

?> zamyka kod php



Jeżeli chcesz w miejscu na php umieścić kod HTML, to musisz użyć funkcji echo(), lub print(). O obu traktuje się w manualu (www.php.net).
Widzę że przy zmiennych ponownie otwierasz miejsce dla kodu php za pomocą <? - wytłumaczysz mi w jakim celu to robisz, jeśli wcześniej nie został on zamknięty za pomocą ?> ? 

Kolejna sprawa:
Cytat
<? <b><b><b><b>echo</b></b></b></b> $id; ?>
- co to ma dać?
Otwierasz kod php, a następnie używasz znacznika html... to nie ma szans się nie wysypać. Następnie piszesz echo, które - jak się domyślam ma wyświetlić wartość $id. Poczytaj dokładnie jak się używa funkcji w php.
Składnia funkcji echo - echo('TEKST'); lub echo($zmienna). Jeśli chcesz wyświetlić znaczniki html, to musisz je wyświetlić jako tekst, bo nie należą one do składni języka php.

Ten post edytował Ramadisu 5.02.2009, 18:29:51
Go to the top of the page
+Quote Post
frykar
post 5.02.2009, 19:48:40
Post #10





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

Ostrzeżenie: (10%)
X----


Oto poprawiony kod:
  1. <?php
  2. while ($i < $num)
  3. {
  4.  
  5. $Nazwa_serwisu=mysql_result($result,$i,"Nazwa_serwisu");
  6. $Telefon=mysql_result($result,$i,"Telefon");
  7. $Nr_seryjny=mysql_result($result,$i,"Nr_seryjny");
  8. $Data_zakupu=mysql_result($result,$i,"Data_zakupu");
  9. $Dlugosc_gwarancji=mysql_result($result,$i,"Dlugosc_gwarancji");
  10. $Rodzaj_serwisu=mysql_result($result,$i,"Rodzaj_serwisu");
  11. $Data_realizacji=mysql_result($result,$i,"Data_realizacji");
  12. $Dane_klienta=mysql_result($result,$i,"Dane_klienta");
  13. $Opis_problemu=mysql_result($result,$i,"Opis_problemu");
  14.  
  15.  
  16. echo '<form action="edit.php" method="post">
  17. <input type="hidden" name="ud_id" value="'.$id.'">
  18.  
  19. Nazwa_serwisu: <input type="text" name="ud_Nazwa_serwisu" value=" '.$Nazwa_serwisu.'">
  20. Telefon: <input type="text" name="ud_Telefon" value=" '.$Telefon.'">
  21. Nr_seryjny: <input type="text" name="ud_Nr_seryjny" value=" '.$Nr_seryjny.'">
  22. Data_zakupu: <input type="text" name="ud_Data_zakupu" value=" '.$Data_zakupu.'">
  23. Dlugosc_gwarancji: <input type="text" name="ud_Dlugosc_gwarancji" value="'.$Dlugosc_gwarancji.'">
  24. Rodzaj_serwisu: <input type="text" name="ud_Rodzaj_serwisu" value="'.$Rodzaj_serwisu.'">
  25. Data_realizacji: <input type="text" name="ud_Data_realizacji" value="'.$Data_realizacji.'">
  26. Dane_klienta: <input type="text" name="ud_Dane_klienta" value="'.$Dane_klienta.'">
  27. Opis_problemu: <input type="text" name="ud_Opis_problemu" value="'.$Opis_problemu.'">
  28. <input type="Submit" value="Aktualizuj">
  29. </form>';
  30.  
  31. ++$i;
  32. }
  33. ?>

Teraz pojawia sie taki błąd:
Parse error: parse error, unexpected $end in "ścieżka" on line 60 (na samym końcu)
Go to the top of the page
+Quote Post
Ramadisu
post 5.02.2009, 20:17:04
Post #11





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 27.01.2009

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


Czy jesteś pewien że problem leży w tej części skryptu? Mi to wygląda na niedomknięty { }. Skrypt po odpaleniu u mnie na serwerze działa. Co prawda zazwyczaj zamiast ++$i, używam $i++, ale jak sprawdziłem, obie wersje działają.
Go to the top of the page
+Quote Post
frykar
post 5.02.2009, 20:27:27
Post #12





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

Ostrzeżenie: (10%)
X----


Tak miałeś rację brakowało zamknięcia '}' w jednym miejscu. Ale znowu wyskakuje błąd tym razem taki:
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\p1\edycja.php on line 22
Go to the top of the page
+Quote Post
erix
post 5.02.2009, 20:28:20
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Musiałeś zapytanie pokisić. Masz mysql_error" title="Zobacz w manualu PHP" target="_manual, debuguj. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Ramadisu
post 5.02.2009, 20:35:04
Post #14





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 27.01.2009

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


Cytat(frykar @ 5.02.2009, 20:27:27 ) *
Tak miałeś rację brakowało zamknięcia '}' w jednym miejscu. Ale znowu wyskakuje błąd tym razem taki:
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\p1\edycja.php on line 22


Prawdopodobnie mysql_query(), na którym użyłeś mysql_num_rows() jest błędnym zapytaniem. Mogłeś też użyć funkcji mysql_num_rows() w niewłaściwy sposób. Wklej fragment kodu w którym używasz tej funkcji + zapytanie do bazy na którym chcesz jej użyć.

I tak jak Erix napisał - przy mysql_query('SELECT...') dodaj or die(mysql_error());
Go to the top of the page
+Quote Post
frykar
post 5.02.2009, 21:13:50
Post #15





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

Ostrzeżenie: (10%)
X----


  1. <?php
  2.  if (!$Nazwa_serwisu)
  3.   {
  4.    echo "Nie ma danych<br>";
  5.   }
  6.  else
  7.   {
  8.    $connection = @mysql_connect("localhost", "root", "krasnal")
  9.    or die("Brak lacznosci");
  10.  
  11.    $db_name = "rma";
  12.  
  13.    mysql_select_db($db_name, $connection);
  14.  
  15.    $nazwa = $_POST['Nazwa_serwisu'];
  16.  
  17.    $$sql = "UPDATE dodaj_serwis SET Nazwa_serwisu='$_POST[Nazwa_serwisu]' LIMIT 1";
  18.        
  19.  
  20.    $result = @mysql_query($sql, $connection);
  21.    
  22. $num=mysql_num_rows($result)
  23. }
  24. $i=0;
  25. ?>

po tym kodzie zaczyna się petla while{} (poprzedni kod). po poprawce kodu otrzymuje taki komunikat:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\p1\edycja.php on line 22
Zapytanie było puste
Go to the top of the page
+Quote Post
erix
post 5.02.2009, 21:15:03
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. $$sql = "UPDATE dodaj_serwis SET Nazwa_serwisu='$_POST[Nazwa_serwisu]' LIMIT 1"
  3. ?>

Ten podwójny dolar, to celowo?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piotrooo89
post 5.02.2009, 21:16:05
Post #17


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




w zmiennej $sql masz UPDATE nie SELECTA, jak chcesz zliczyć rekordy? aha i od razu mówię że jest to mało wydajne lepiej zainteresować się COUNT().


--------------------
Go to the top of the page
+Quote Post
frykar
post 5.02.2009, 21:19:07
Post #18





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

Ostrzeżenie: (10%)
X----


smile.gif usunąłem $, ale ten sam błąd pozostał sad.gif
Go to the top of the page
+Quote Post
Ramadisu
post 5.02.2009, 21:27:57
Post #19





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 27.01.2009

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


Cytat(frykar @ 5.02.2009, 21:19:07 ) *
smile.gif usunąłem $, ale ten sam błąd pozostał sad.gif



Manual, manual, manual i jeszcze raz manual!


Cytat
mysql_num_rows() zwraca liczbę wierszy w wyniku. Tę funkcję stosuje się tylko do operacji SELECT. Aby pobrać ilość wierszy przetworzonych w operacjach INSERT, UPDATE lub DELETE należy użyć funkcji mysql_affected_rows().




http://pl.php.net/mysql_num_rows

Już nie mówię o tym, że :
Kod
"UPDATE dodaj_serwis SET Nazwa_serwisu='$_POST[Nazwa_serwisu]' LIMIT 1"

lepiej byłoby zapisać:
Kod
'UPDATE `dodaj_serwis` SET `Nazwa_serwisu` = '.$_POST[Nazwa_serwisu].' LIMIT 1'


Ten post edytował Ramadisu 5.02.2009, 21:29:50
Go to the top of the page
+Quote Post
frykar
post 5.02.2009, 21:29:20
Post #20





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

Ostrzeżenie: (10%)
X----


Teraz to już się wqrw...em. Teraz jak wpisuje w pliku edycja.html Nazwe_serwisu, który chcę aby został edytowany, to wszystkie rekordy zmieniają Nazwe_serwsiu na tą co wpiszę w polu tekstowym:(
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 25.06.2025 - 04:26