Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]jak zaktualizowac newsa o danym ID
Forum PHP.pl > Forum > Przedszkole
Qss
zrobiłem formularz edycji newsa czyli wczytałem do inputów rekordy z bazy

pod adresem ...../edit_news.php?newsid=1 wyświetla się właśnie ten news do edycji o podanym id

teraz jak napisać zapytanie UPDATE żeby właśnie aktualizowało news o id podanym w adresie

  1. <?php
  2. $zapytanie = "UPDATE news SET title='".$title."', newspartone='".$newspartone."', newsparttwo='".$newsparttwo."'" ;
  3. ?>


ja mam powyższe zapytanie i aktualizuje wszystkie rekordy a tabeli ;/
tomsi
W zapytaniu dodaj WHERE np. jeśli chcesz pierwszy news to mmyśle, że dobrze będzie jeśli wybierzesz numer id z paska adresu i wpiszesz właśnie w WHERE.
Fantazyn
  1. <?php
  2. $zapytanie = "UPDATE news SET title='".$title."', newspartone='".$newspartone."', newsparttwo='".$newsparttwo."' WHERE id = '".$id."'" ;
  3. ?>
ArekJ
@Fantazyn podał dobre rozwiązanie, tylko w zmienną ID wsadź sobie $_GET['newsid'].
Qss
jak dam $_GET['newsid'] wywala błąd a jak dam $id to tez klapa bo nie jest zdeklarowana
Parse error: syntax error, unexpected T_VARIABLE in......
ayeo
~Qss, proponuję zacząć od jakiegoś kursu winksmiley.jpg W komunikacie błędu masz napisane co jest źle poza tym.

Pozdrawiam!
Qss
może rzucę na to nico więcej światła haha.gif

plik edit_news.php (z formularzem od edycji)

  1. <?php
  2. require('db_connect.php');
  3.  
  4.  
  5. if(intval($_GET['newsid']))
  6. {
  7.  
  8.  echo '<p><a href="index.php">Najnowsze newsy</a></p>';
  9.  
  10.  
  11.  $sql="SELECT dodano, title, newspartone, newsparttwo FROM news WHERE id='".intval($_GET['newsid'])."'";
  12.  $wynik=mysql_query($sql);
  13.  if($r=mysql_fetch_assoc($wynik))
  14.  {
  15.  
  16.  echo '<form method="post" action="edit_przetworz.php">';
  17.  
  18. echo ' Temat:<br /><input class="t_news" name="title" type="text" size="19" maxlength="200" value="'.$r['title'].'"><br />
  19. Pierwsza część newsa:<br /><textarea class="first_news" name="newspartone" type="text" cols="" rows="" >'.$r['newspartone'].'</textarea><br />
  20. Druga część newsa:<br />
  21. <textarea class="second_news" name="newsparttwo" type="text" cols="" rows="" >'.$r['newsparttwo'].'</textarea><br />
  22. <input name="addnews" type="submit" value="Dodaj"><input name="resetnews" type="reset" value="Wyczyść wszystko"></form>';
  23.  
  24.  
  25.   }}
  26.        else
  27.        {
  28.          $sql="SELECT id, title FROM news";
  29.  $wynik=mysql_query($sql);
  30.  while($r=mysql_fetch_assoc($wynik))
  31.  {
  32.    echo $r['title'].'<br />';
  33.    echo '<a href="edit_news.php?newsid='.$r['id'].'">edytuj</a><br />';
  34.  
  35.  }
  36.        }
  37. ?>


i drugi to przetwarzania tego co wpisane w inputach... edit_przetworz.php

  1. <?php
  2. $title = $_POST['title'];
  3. $newspartone = $_POST['newspartone'];
  4. $newsparttwo = $_POST['newsparttwo'];
  5.  
  6. require('db_connect.php');
  7. $zapytanie = "UPDATE news SET title='".$title."', newspartone='".$newspartone."', newsparttwo='".$newsparttwo."'
  8. WHERE id ='"$_GET['newsid']"'";
  9. ?>
matixrr
  1. <?php
  2. $title = $_POST['title'];
  3. $newspartone = $_POST['newspartone'];
  4. $newsparttwo = $_POST['newsparttwo'];
  5.  
  6. require('db_connect.php');
  7. $zapytanie = "UPDATE news SET title='$title', newspartone='$newspartone', newsparttwo='$newsparttwo' WHERE id='{$_GET['newsid']}'";
  8. ?>
Qss
to wyżej to już wogole niedziała
bląd unexpected '{ w lini 8 więc {} z get nie mają sensu
piotrooo89
  1. <?php
  2. $title = $_POST['title'];
  3. $newspartone = $_POST['newspartone'];
  4. $newsparttwo = $_POST['newsparttwo'];
  5. $id=$_GET['newsid'];
  6.  
  7. require('db_connect.php');
  8. $zapytanie = "UPDATE news SET title='".$title."', newspartone='".$newspartone."', newsparttwo='".$newsparttwo."' WHERE id='$id'";
  9. ?>


może tak?
Qss
to nic niedaje mam pytanie czy wogole moja koncepcja edytowania postów jest poprawna?
Spawnm
a co ci teraz wyskakuje ?
jeśli post mogą edytować wszyscy to filtruj dane:
mysql_real_escape_string()" title="Zobacz w manualu PHP" target="_manual

$title =mysql_real_escape_string($_POST['title']); itp...
Suh
Spróbuj napisać zapytanie do sql w ten sposób :

  1. $zapytanie = "UPDATE news SET title='$title', newspartone='$newspartone', newsparttwo='$newsparttwo' WHERE id='$_GET[newsid]'";
piotrooo89
czy w tych zmiennych masz wartości? czy łączysz się poprawnie z bazą danych? i przetestuj coś takiego?

  1. <?php
  2. $zapytanie = mysql_query("UPDATE news SET title='".$title."', newspartone='".$newspartone."', newsparttwo='".$newsparttwo."' WHERE id='$id'") or die(mysql_error());
  3. ?>


i powiedz czy zwraca jakieś błędy.
Hpsi
zechuj to zapytanie także zebysmy widzieli czy jak wyzej juz sie spytal piotro masz w nich wartosc np tak:
  1. <?php
  2. echo ("UPDATE news SET title='".$title."', newspartone='".$newspartone."', newsparttwo='".$newsparttwo."' WHERE id='$id'");
  3. ?>
slewin
ciężko szukać dziury w całym . Najlepiej wrzuć sobie linijkę na początku skryptu <?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?> . ayeo juz o tym wspomniał . Nam jest cięzko wychwycić błąd który jest mało widoczny .

Twoja koncepcja nie jest zła . Ja bym jednak te dwa pliki połączył w jeden . Więcej plików , większy młyn , więcej poprawiania i strata czasu tongue.gif .
Nie wiem po co to wrzuciłeś intval($_GE.......) , nie może być samo $_GET questionmark.gif
ayeo
~Qss, przesadzasz. Wyskakuje Ci, że masz błąd w linii 8, masz napisane dokładnie co jest nie tak! Tak trudno chwilkę pomyśleć? Szybciej sam to rozwiążesz zanim napiszesz kolejnego posta na forum. Piszesz o każdą durną literówkę! Myśl i czytaj komunikaty błędów!

Pozdrawiam!
Qss
wielkie dzięki za chęć pomocy ale już sobie sam poradziłem haha.gif dzieki za rady i sorry za zaśmiecanie forum czasem ma po prostu dość i pisze ale znalazłem noew chęci i znalazłem błedy ;p
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.