Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z updatem pojedynczego newsu
Forum PHP.pl > Forum > Przedszkole
rbodych
Witam,
1)
Mam teraz nowy problem z któym sse nie radze od kilku dni. Natomiast próboje zrobić aktualizacje newsa z formularza i cos mi nie wychodzi kod mam nastepujacy

  1. <?php 
  2. require &#092;"mysql_connect.php\";
  3. if (isset($_GET['id']))
  4. {
  5.   $_GET['id'] = intval($_GET['id']);
  6.   $pytanie = mysql_query('UPDATE news SET tytul=$tytul ,tresc=$tresc WHERE id='.$_GET['id']);
  7. }
  8.  
  9. $pytanie = mysql_query('SELECT * FROM news WHERE id='.$_GET['id']);
  10. while ($wynik = mysql_fetch_assoc($pytanie))
  11. {
  12. echo '
  13.        <form action=\"dodaj.php\" method=\"post\">
  14.        <table style=\"width: 700px;\" cellpadding=\"0\" cellspacing=\"0\">
  15.             <tr>
  16.                 <td style=\"width: 30px;\">Tytu&sup3; </td>
  17.                 <td style=\"width: 100px;\">
  18.                     <input maxlength=\"80\" size=\"40\" name=\"tytul\" value=\"'.$wynik['tytul'].'\" /></td>
  19.             </tr>
  20.         </table>
  21.         <table style=\"width: 700px;\" cellpadding=\"0\" cellspacing=\"0\">
  22.             <tr>
  23.                 
  24.                 <td style=\"width: 100px;\">
  25.                     <textarea name=\"tresc\" rows=\"5\" cols=\"60\" value=\"\">'.$wynik['tresc'].'</textarea></td>
  26.             </tr>
  27.         </table>
  28.         <table>
  29.             <tr>
  30.                 <td><input type=\"submit\" value=\"edytuj\" name=\"post\" /></td>
  31.                 <td><button value=\"Cofnij\" onClick=\"history.back();\">Cofnij</button></td>
  32.             </tr>        
  33.         </table>
  34.         </form>
  35.      
  36.     ';
  37.  
  38. }
  39.  
  40. ?>


Próbowałem też umieszczać w osobnym pliki formułke UPDATE ale też mi coś nie działało.

i jeszcze jedno
2) jak zabezpieczyć formularz przed dodowaniem pustego newsa do bazy danych po przez nacisnie nnp klawisza F5 w przeglądarce. Myślalem nad kontrolą w Javie ale chyba to nie wystarczy . Kod tego drugiego formularza wygląda tak

  1. <form action=\"now.php\" method=\"post\">
  2.  
  3. <table valign=\"top\">
  4.     <tr>
  5.         <td style=\"height:40px\"align = \"left\" >Dodawanie newsów</td>
  6.     </tr>
  7.     <tr>
  8.         <td align=\"left\">Tytuł</td>
  9.     </tr>
  10.     <tr>
  11.         <td><input type=\"text\" maxlenght=\"80\" size=\"40\" name=\"tytul\" /></<td>
  12.     </tr>
  13.     <tr>
  14.         <td><textarea name=\"tresc\" rows=\"10\" cols=\"60\"></textarea></<td>
  15.     </tr>
  16.     <tr>
  17.         <td><input name=\"submit\" type=\"submit\" value=\"Przeslij\"/></td>
  18.     </tr>
  19. </table>    
  20. </form>
  21. <p><a href=\"now2.php\">Wyswietl newsy</a></p>
  22.  
  23. <?php 
  24. require &#092;"mysql_connect.php\";
  25.  
  26. $sql = &#092;"INSERT INTO news (tytul,tresc,data) VALUES ('\".$tytul.\"','\".$tresc.\"', NOW())\";
  27. $result = mysql_query($sql);
  28.  
  29. mysql_close();    
  30. ?>



Będe wdzieczny za pomoc smile.gif
czachor
1. Nie powinno być przypadkiem $_POST['tresc'] (albo $_GET) itd.? Weź też wstawiane dane w apostrofy:
  1. <?php
  2. mysql_query('UPDATE news SET tytul='' . $_GET['tytul'] . '', tresc='' . $_GET['tresc'] . '' WHERE id='' . $_GET['id'] . ''');
  3. ?>


2. Ustaw sobie pole hidden w formularzu i sprawdzaj, czy ma daną wartość. Jeżeli tak, dodawaj dane do bazy, jeśli nie - wyświetlaj tylko formularz czy coś innego.
rbodych
hmm cosik nie bardzo to działa. Dałem te apostrofy ale przyczepil sie do fetcha w linii 5 . z usunietymi apostrofami tez to nie dziala . taki mam komunikat
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource on line 5
gilbo
Cytat(rbodych @ 2005-02-12 21:53:51)
hmm cosik nie bardzo to działa. Dałem te apostrofy ale przyczepil sie do fetcha w linii 5 . z usunietymi apostrofami tez to nie dziala . taki mam komunikat
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource on line 5

A co to jest mysql_fetch_assoc()? chyba chodziło o mysql_fetch_array()?
rbodych
ani array ani assoc nie dziala wiem ze dzieki assoc odwolujem sie do kazdego pola za pomoca jego nazwy a w array podobni tylko z indeksowaniem tablicy tylko ie dokonca to rozumiem :/

dobra usunelem ten blad z assoc ale nadal mi nie aktualizuje newsa teraz dalem taki kod
  1. <?php 
  2. require &#092;"mysql_connect.php\";
  3. {
  4. $_GET['id'] = intval($_GET['id']);
  5. $pytanie = mysql_query('UPDATE news SET tytul='.$_GET['tytul'].' ,tresc='.$_GET['tresc'].' WHERE id='.$_GET['id']);
  6. }
  7.  
  8.  
  9. $pytanie = mysql_query('SELECT * FROM news WHERE id='.$_GET['id']);
  10. while ($wynik = mysql_fetch_assoc($pytanie))
  11. {
  12. echo '
  13.  <form action=\"edit.php\" method=\"post\">
  14.  <table style=\"width: 700px;\" cellpadding=\"0\" cellspacing=\"0\">
  15. <tr>
  16. <td style=\"width: 30px;\">Tytuł </td>
  17. <td style=\"width: 100px;\">
  18. <input maxlength=\"80\" size=\"40\" name=\"tytul\" value=\"'.$wynik['tytul'].'\" /></td>
  19. </tr>
  20. </table>
  21. <table style=\"width: 700px;\" cellpadding=\"0\" cellspacing=\"0\">
  22. <tr>
  23.  
  24. <td style=\"width: 100px;\">
  25. <textarea name=\"tresc\" rows=\"5\" cols=\"60\" value=\"\">'.$wynik['tresc'].'</textarea></td>
  26. </tr>
  27. </table>
  28. <table>
  29. <tr>
  30. <td><input type=\"submit\" value=\"edytuj\" name=\"post\" /></td>
  31. <td><button value=\"Cofnij\" onClick=\"history.back();\">Cofnij</button></td>
  32. </tr>
  33. </table>
  34. </form>
  35.  
  36. ';
  37.  
  38. }
  39.  
  40. ?>
gilbo
Cytat(rbodych @ 2005-02-12 22:27:29)
ani array ani assoc nie dziala wiem ze dzieki assoc odwolujem sie do kazdego pola za pomoca jego nazwy a w array  podobni tylko z indeksowaniem tablicy tylko ie dokonca to rozumiem :/

coś ci się pomyliło nie ma czegoś takiego jak mysql_fetch_assoc() sprawdź w manualu jak nie wierzysz smile.gif

a właśnie w arrayu odwołujesz się poprzez nazwę pola np.
  1. <?php
  2.  
  3. $sql=&#092;"SELECT * FROM users\";
  4. $wynik=mysql_query($sql);
  5. while($dane=mysql_fetch_array($wynik))
  6. {
  7. $userid=$dane['userid'];
  8. $username=$dane['username'];
  9. echo $userid . &#092;" \" . $username . \"<BR>\";
  10. }
  11. ?>
rbodych
Cytat(gilbo @ 2005-02-12 20:34:39)
coś ci się pomyliło nie ma czegoś takiego jak mysql_fetch_assoc() sprawdź w manualu jak nie wierzysz smile.gif

no ja wlasnie mam otwarta przed soba ksiazke Bazy Danych od podstaw i MYSQL Heliona i na stronie 396 jest napisane ze istnieje mysql_fetch_assoc jakos w innym pliku gdzie mam funkcje kasowania newsa dziala smile.gif

a czy ktos by mógł mi pomóc z tą funkcją aktualizacji newsa bo już naprawde nie daje rady :/
aleksander
Cytat(gilbo @ 2005-02-12 21:34:39)
coś ci się pomyliło nie ma czegoś takiego jak mysql_fetch_assoc() sprawdź w manualu jak nie wierzysz smile.gif

no właśnie, lepiej sam sprawdź: mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual

Rbodych:
  1. <?php
  2. require &#092;"mysql_connect.php\";
  3. {
  4. $_GET['id'] = intval($_GET['id']);
  5. $pytanie = mysql_query('UPDATE news SET tytul=\"'.$_GET['tytul'].'\" ,tresc=\"'.$_GET['tresc'].'\" WHERE id='.$_GET['id']); // wartości kolumn typu *char *text *blob (czyli tekstowe musza byc ujete w \" lub '
  6. }
  7. ?>
Jeżeli kiedykolwiek będziesz miał problemy z mysqlem rób po mysql_query
  1. <?php
  2. ?>
gilbo
Cytat(aleksander @ 2005-02-12 22:43:22)
Cytat(gilbo @ 2005-02-12 21:34:39)
coś ci się pomyliło nie ma czegoś takiego jak mysql_fetch_assoc() sprawdź w manualu jak nie wierzysz smile.gif

no właśnie, lepiej sam sprawdź: mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual

sorrki macie racje winksmiley.jpg chyba sie pomyliłem przy wpisywaniu dry.gif
rbodych
no dalem mysql_error i wywala mi mi cos takiego Something is wrong in your syntax obok 'tresc= WHERE id=86' w linii 1

a po klknieciu edytuj mam to Something is wrong in your syntax obok 'tresc= WHERE id=0' w linii 1

czyli cos mam zle w skladni UPDATE
aleksander
aa no to nic dziwnego biggrin.gif biggrin.gif biggrin.gif Formularz jest typu POST a Ty pobierasz dane z GET. zamien w skrypcie $_GET na $_POST i volia smile.gif
rbodych
nadal jest cos nie tak z tym wyrazeniem teraz mam cos takiego

Something is wrong in your syntax obok 'tresc= WHERE id=86' w linii 1

i po edycji i kliknij edytuj

Something is wrong in your syntax obok 'to jest nasza stronka,tresc=hehe to jest nasza stronka ddddd WHE' w linii 1

kod dalem taki
  1. <?php 
  2. require &#092;"mysql_connect.php\";
  3. {
  4.   $_GET['id'] = intval($_GET['id']);
  5.   $pytanie = mysql_query('UPDATE news SET tytul='.$_POST['tytul'].',tresc='.$_POST['tresc'].' WHERE id='.$_GET['id']);
  6.  
  7. }
  8.  
  9.  
  10. $pytanie = mysql_query('SELECT * FROM news WHERE id='.$_GET['id']);
  11. while ($wynik = mysql_fetch_assoc($pytanie))
  12. {
  13.        <form action=&#092;"edit.php\" method=\"post\">
  14. ?>


ID jest przekazywane GETem chyba to nie ma wplywu na formularz. a dobre jest to ze po kliknieciu edituj w tym bledzie widze swoj edytowany news tylko ze on do bazy niejest przeslany. jest jakis blad skaldniowy tylko ja go nie widze
aleksander
przecież napisałem w moim pierwszym poście, że stringi muszą być ujmowane w cudzysłowy Ty tego nie robisz. to tak samo jak bys napisal
  1. <?php
  2. $string = to jest tresc;
  3. ?>

Kumasz?
rbodych
no tak ale ja mam ujete w w pojedynczy cudzyslow ' ' a nie w ten " " podwojny czy to jest jakas roznica ?
aleksander
ehh chodzi mi o coś takiego
  1. UPDATE news SET tytul="jakis tytul" tresc="blablabla" WHERE id=5
a u Ciebie jest
  1. UPDATE news SET tytul=jakis tytul tresc=blablabla WHERE id=5
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.