Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] UPDATE, DELETE nie dziala ? ;x
Forum PHP.pl > Forum > Przedszkole
TroYan
tak wygląda edycja:
  1. <?php
  2. $tytul=$_POST['tytul2'];
  3. $tresc=$_POST['tresc2'];
  4. $id=$_GET['id'];
  5. echo($tytul.' ');
  6. echo($tresc.' ');
  7. echo($id);
  8. $zmien="UPDATE `newsy` SET `tytul`='$tytul', `tresc`='$tresc' WHERE `id`='$id'";
  9. $wykonajzmien=mysql_query($zmien) or die('nie zmieniam');
  10. ?>


tak usuwanie:
  1. <?php
  2. $usun="DELETE FROM `newsy` WHERE `id`='$id'"
  3. $idusun=mysql_query($usun) or die('nie usuwam');
  4.  
  5. echo(News zosta&#322; usunięty!);
  6. ?>



w pierwszym przypadku wyskakuje komunikat z die('nie zmieniam'). ale echo tytulu, tresci i id wyswietla się.

w drugim nic nie wyskakuje (mam konto na cba.pl) tam chyba jest wyłączone wyświetlanie błędów php - po próbie włączenia wyskakuje mi czysta strona. a rekordy sie nie usuwaja;x

szukalem na forum podobnych tematów, nawet znalazlem jeden ale nie pomogło mi to. pewnie nie widze jakiegos głupiego apostrofa o którym zapomnialem i dlatego mi się sypie? a moze pliki te nie maja uprawnien do takich operacji w bazie? nie mam pojecia bo dopiero zaczynam przygode z sqlem
sticker
wypadałoby sie połączyć z bazą ?
kopczyk
Cytat
wypadałoby sie połączyć z bazą ?


Przede wszystkim smile.gif

Spróbuj jeszcze:

Kod
echo "UPDATE `newsy` SET `tytul`='$tytul', `tresc`='$tresc' WHERE `id`='$id'";


I sprawdź czy w tych pojedynczych cydzysłowiach interpoluje Ci zmienną $id.

tak nawiasem to w zapytaniach liczb nie musisz umieszczać w cydzysłowiach.
miccom
Podczas update rekordów ja bym zrobił tak:
  1. <?
  2. $zmien="UPDATE `newsy` SET `tytul`='$tytul', `tresc`='$tresc' WHERE `id`='$id'";
  3. $wykonajzmien = @mysql_query($zmien);
  4. if ($wykonajzmien){ //jezeli nie wystapily zadne bledy
  5. $message .= 'Wiadomość jeśli zapytanie wykonane';
  6. }else{
  7. $message .= 'Wiadomość jeśli coś sie nie powiodło';
  8. } 
  9.  
  10. echo $message;//i wyświetlanie komentarzy
  11. ?>


Powinno działać. Odnośnie drugiego zapytania myślę ze pominąłeś średnik po zapytaniu:
  1. <?php
  2. $usun="DELETE FROM `newsy` WHERE `id`='$id'"
  3. ?>


Spróbuj tak:
  1. <?php
  2. $usun="DELETE FROM `newsy` WHERE `newsy`.`id`='$id' LIMIT 1";
  3. $idusun = @mysql_query($usun);
  4. if ($idusun){ //jezeli nie wystapily zadne bledy
  5. $message .= 'News został usunięty!';
  6. }else{
  7. $message .= 'NIe mogłem usunąć tego newsa. Spróbuj ponownie';
  8. } 
  9.  
  10. echo $message;//i wyświetlanie komentarzy
  11. ?>


U mnie te zapytania działają- więc myślę że i Tobie będą działać. Pozdrawiam.
TroYan
Cytat(miccom @ 28.01.2008, 01:41:51 ) *
Podczas update rekordów ja bym zrobił tak:
(...)
U mnie te zapytania działają- więc myślę że i Tobie będą działać. Pozdrawiam.


do poprzedników: chłopaki ;-) jestem noobem no ale nie az takim zeby sie z baza nie łączyc ;ppp

miccom - skopiowałem twój skrypt do nowego pliku zeby przetestowac i zamiast $id wpisalem konkretny numer newsa do usunięcia to wyskakuje "Nie mogłem usunąć tego newsa. Spróbuj ponownie". próbowalem kilka róznych numerów id.
uli
wywal ` przy nazwach kolumn i nazwie tabeli. Z reguły mi pomagało
miccom
Też właśnie słyszałem że niepotrzebne są te ` ale u mnie z kolei właśnie dodałem takowe- bo miałem problemy. Teraz działa bez zarzutu. Od czego to może zależeć?? U mnie działa.
Poczytaj tutaj- chyba najlepsze kursy w necie - HTML+css, php, MySQL, ajax, GIMP, Smarty polecam.
INSERT, DELETE, UPDATE
TroYan
ej czy plikom trzeba dac jakies prawa do zmian w bazie danych? bo naprawde nie kumam - usunąłem jeden rekord przez phpmyadmin poprosiłem zeby wygenerowało mi kod, skopiowałem - nadal wywala die, "nie zmieniam" nie kleje tego ;/
Fishu
Mi zawsze jak niedziała to pierw wykonuje tą opcje w PHPMyAdmin i kopiuje zapytanie i wklejam do jakiejś zmiennej i pięknie wszystko śmiga.
//Edit: Sorrki nie doczytałem do końca twojego postu. A spróbuj do die() dać funkcje mysql_error();
  1. <?php
  2. $tytul=$_POST['tytul2'];
  3. $tresc=$_POST['tresc2'];
  4. $id=$_GET['id'];
  5. echo($tytul.' ');
  6. echo($tresc.' ');
  7. echo($id);
  8. $zmien="UPDATE `newsy` SET `tytul`='$tytul', `tresc`='$tresc' WHERE `id`='$id'";
  9. $wykonajzmien=mysql_query($zmien) or die(mysql_error());
  10. ?>
TroYan
ej aż wstyd się przyznac ;o rozwiązałem problem... ale naprawdę głupio mi strasznie ze wam zabrałem czas...

w mysql_select_db z rozpędu wpisałem nazwę tabeli zamiast nazwy bazy ... pomogła mi funkcja mysql_error() ... jeszcze raz przepraszam i dziękuję za starania. ;pp jednak jestem bardzo noob biggrin.gif
miccom
Czyli pomógł fishu:D
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.