Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql]Błędny kod i racjonalne rozwiązanie...
Day Walker
post
Post #1





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

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


Witam!

Mam problem z UPDATE w mysql...
Chce by mnie z adresu edytuj.php?show=$id ACTION po wykonaniu poniższego kody przekierowywał na adres edytuj.php?edit=$id (gdzie edytowałby już dane w bazie)
Mam kod :

Kod
<html>
<head></head>
</head>
<body>
<?
$connection = mysql_connect("localhost","root","pass");
$db = mysql_select_db("news", $connection);
$sql = mysql_query("SELECT * FROM news WHERE id='$id'");
while ($row = mysql_fetch_array($sql)) {
$id = $row["id"];
$tytul = $row["tytul"];
$tresc = $row["tresc"];
$dodal = $row["dodal"];


echo '<form action="edytuj.php?edit='.$id.'" method="post">';
echo '<p align="center">Tytul:<br>';
echo '<input type="text" name="odsylacz" value="'.$tytul.'"/>';
echo '</p>';
echo '<p align="center">
       tresc:<br>
     <input type="text" name="nazwamaskujaca" value="'.$tresc.'"/>
     </p>';
echo '<p align="center">Nick dodającego:
     <br>
     <input type="text" name="nickdodajacego" value="'.$dodal.'"/>
     <br>
     <br>
     <input name="Wyślij link!" type="submit" id="Wyslij news!" value="Wyślij news!" />
     </p>';
echo '</form>';
?>
</body>
</html>


I nie wiem ale pokazuje mi błąd w ostatniej linijce... błąd brzmi:

Cytat
Parse error: parse error, unexpected $end in C:\Program Files\WebServ\httpd\tutorial\admin\edytuj.php on line 34


Jeśli można prosić o pomoc to proszę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdro!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
cornholio666
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


domknij pętle WHILE
Go to the top of the page
+Quote Post
Day Walker
post
Post #3





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

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


No okej...

Ale teraz pytanie ...

Dlaczego mi w formularzu nie wyświetla danych do edycji ?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. $sql = mysql_query("SELECT * FROM news WHERE id='$id'");
  3. ?>

No a teraz powiedz mi gdzie ty te $id ustawiasz? Bo ja nigdzie nie widze. nie uwazasz, ze napoczatky powinno byc tak:
  1. <?php
  2. $id=$_GET['edit'];
  3. $sql = mysql_query("SELECT * FROM news WHERE id='$id'") or die(mysql_error());
  4. ?>

?

i uzywaj wlasciwego bbcode
Go to the top of the page
+Quote Post
Day Walker
post
Post #5





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

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


No dobra ja się poddaje (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Kto mi powie co dokładnie robię źle:

Plik Edytuj.php

  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5.  
  6. <?
  7.  
  8. $connection = mysql_connect("localhost","root","pass");
  9. $db = mysql_select_db("linki", $connection);
  10. $id=$_GET['edit'];
  11. $sql = mysql_query("SELECT * FROM linki WHERE id='$id'");
  12. while ($row = mysql_fetch_array($sql)) {
  13. $id = $_POST["id"];
  14. $link = $_POST["link"];
  15. $nazwa = $_POST["nazwa_linku"];
  16. $dodal = $_POST["dodal"];
  17. }
  18. echo '<form action="edytujlink.php?edit="'.$id.'" method="post">';
  19. echo '<p align="center">Odsyłacz:<br>'; 
  20. echo '<input type="text" name="odsylacz" value="'.$_POST['link'].'"/>';
  21. echo '</p>';
  22. echo '<p align="center">
  23.  Nazwa maskująca:<br>
  24.  <input type="text" name="nazwamaskujaca" value="'.$_POST['nazwa_linku'].'"/>
  25.  </p>';
  26. echo '<p align="center">Nick dodającego: 
  27.  <br>
  28.  <input type="text" name="nickdodajacego" value="'.$_POST["dodal"].'"/>
  29.  <br>
  30.  <br>
  31.  <input name="Wyślij link!" type="submit" id="Wyślij link!" value="Wyślij link!" />
  32.  </p>';
  33. echo '</form>';
  34.  
  35. ?>
  36. </body>
  37. </html>


A teraz plik który bedzie to "trawił" o nazwie edytujlink.php

  1. <?php
  2. $con = mysql_connect("localhost","root","pass");
  3. if (!$con)
  4. {
  5. die('Nie mogę się połączyć: ' . mysql_error());
  6. }
  7.  
  8. mysql_select_db("linki", $con);
  9. $sql="UPDATE linki SET link='$link', nazwa_linku='$nazwa', dodal='$dodal' WHERE id='$id'";
  10.  
  11. if (!mysql_query($sql,$con))
  12. {
  13. die('Błąd: ' . mysql_error());
  14. }
  15. echo "Link został pomyślnie zedytowany :) <br>";
  16.  
  17. ?>
  18. <?
  19. echo '<a href="http://localhost/tutorial/index.php">Wróć do strony głównej</a>';
  20. echo '<br>';
  21. ?>


I nie wiem ale mi nie wywołuje konkretnego ID (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

~nospor - pomóż mi...

Dzięki!
Pozdrawiam!
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
I nie wiem ale mi nie wywołuje konkretnego ID
To znaczy co? w edytujlink ci nie robi update? No a czemu sie dziwsz? Przeciez znowu nie okresliles zmiennej $id

A tam we wczesniejszym co ci mowilem bys napisal $id=$_GET['edit'] to jesli ci to nadal nie dziala to powinno byc $id=$_GET['show'], bo ty raz masz parametr show w url a raz edit wiec sobie dostosuj co jest co.
Go to the top of the page
+Quote Post
Day Walker
post
Post #7





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

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


Ale to nie działa... Jesli w pliku edytuj.php wypełnie formularz to w pasku adresu jest .../edytuj?show=1 a jak nacisne zeby wysłało formularz to w adresie juz nie ma tego id...

Bardzo potrzebuje ten skrypt edycji...

Acha i jeszcze mi w formularzu nie wyswietla w "Value" danych zeby zobaczyć co i gdzie sie edytuje....

Pomoooocy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam!
Go to the top of the page
+Quote Post
cornholio666
post
Post #8





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Pokaz poprawiony skrypt to bedzie może łątwiej...
Go to the top of the page
+Quote Post
Day Walker
post
Post #9





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

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


Skrypt masz wyżej... oby dwa pliki. Nic nie poprawiłem bo nawet nie wiem w czym błąd (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

[...]

Moze znacie jakieś gotowe rozwiązania ? Jesli nie wiecie to chociaż poprawcie mi ten kod bo ja już nie mam sił (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
cornholio666
post
Post #10





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Cytat
Nic nie poprawiłem bo nawet nie wiem w czym błąd


Nie dziwie się że nie działa jak nie poprawiłeś. Nospor podał ci rozwiązanie, przeczytaj jego posty jeszcze raz
Go to the top of the page
+Quote Post
Day Walker
post
Post #11





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

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


cornholio666 ale to co on powiedział nie działa... Czy ktoś może mi napiosać jak powinno być poprawnie ? Bez zbędnego nabijania postów ? Wkoncy to jest forum o PHP a nikt nie umi pomóc (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Prosze was!

Przyjaciele mam teraz taki kod:

  1. <?
  2. include("config.php");
  3. $id=$_GET['id'];
  4. $link=mysql_query("SELECT * FROM linki WHERE id='$id'");
  5. $result = mysql_query ($link);
  6. while($row=mysql_fetch_array($link))
  7. {
  8. echo '<form name="name" action="edytuj2.php?id='.$row['id'].'" method="post">
  9. Tytuł<br>
  10. <input name="link" type="text" id="link" value="'.$row['link'].'" size="100%" />
  11. <br>
  12. Treść<br>';
  13. echo '<textarea name="nazwa_linku" cols="100%" rows="11" wrap="VIRTUAL" id="nazwa_linku">'.$row['nazwa_linku'].'</textarea>
  14. <br>';
  15. echo 'Autor<br>
  16. <input name="dodal" type="text" id="dodal" value="'.$row['dodal'].'" size="50%" />
  17. <input name="submit" type="submit" value="wyslij">';
  18. echo '</form>';
  19. }
  20. ?>

w nim wsio jest chyba ok...

a o to kod który ma upldate wykonywać...

  1. <?
  2. $id = $_POST['id'];
  3. $link = $_POST['link'];
  4. $nazwa = $_POST['nazwa_linku'];
  5. $dodal = $_POST['dodal'];
  6.  
  7. include("config.php");
  8. $id=$_GET['id'];
  9. $query = "UPDATE 'linki' SET 'link' = '$link', 'nazwa_linku' = '$nazwa', 'dodal' = '$dodal' WHERE 'id' = '$id'";
  10. $result = mysql_query($query);
  11. echo "Record Updated";
  12.  
  13. ?>


Nie pokazuje zadnego błędu ale nie mam w bazie zaaktualizowanych danych (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Tym razem jestem za blisko zeby odpuścić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pomoicy!
Go to the top of the page
+Quote Post
mickula
post
Post #12





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.10.2006

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


  1. <?
  2. $id = $_GET['id'];
  3. $link = $_POST['link'];
  4. $nazwa = $_POST['nazwa_linku'];
  5. $dodal = $_POST['dodal'];
  6.  
  7. include("config.php");
  8. $id=$_GET['id'];
  9. $query = "UPDATE 'linki' SET 'link' = '$link', 'nazwa_linku' = '$nazwa', 'dodal' = '$dodal' WHERE 'id' = '$id'";
  10. $result = mysql_query($query);
  11. echo "Record Updated";
  12.  
  13. ?>


Mimo, że podałeś "method=post" zmienna $id jest przesyłana w adresie (atrybut action) dlatego musisz ją odebrać GET-em.
Go to the top of the page
+Quote Post
Day Walker
post
Post #13





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

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


Zaskocze Cie ale nadal nic nie aktualizuje (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no ale masz bledy w zapytaniu. powinno byc:
  1. <?php
  2. $query = "UPDATE linki SET link = '$link', nazwa_linku = '$nazwa', dodal = '$dodal' WHERE id = '$id'";
  3. ?>
Czemu wy zawsze ty ciapkow tak sie czepiacie? Gdzie wyczytaliscie ze one musza byc, kiedy nie mogą? Jak juz jakies powinny byc to powinny to byc ``

A na przyszlosc pisz tak:
  1. <?php
  2. $result = mysql_query($query) or die ('zapytanie: '.$query.'---blad'.mysql_error());
  3. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 08:48