Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]kasowanie danych w bazie problem z wkonaniem php
Forum PHP.pl > Forum > Przedszkole
michal_86
Witam - dopiero zaczynam przygodę z php - udało mi się na razie stworzyć bazę, dodawać do niej rekordy i pokazywać je w strukturze html

Mam teraz problem ze skryptem kasowania danych z bazy mysql
oto skrypt:
  1. <?php
  2.  
  3.  
  4.  
  5. $connection = @mysql_connect('localhost', 'root')
  6. or die('Brak połączenia z serwerem MySQL');
  7. $db = @mysql_select_db('biurapow5', $connection)
  8. or die('Nie mogę połączyć się z bazą danych');
  9.  
  10. $zapytanie = "SELECT * FROM pow5 ORDER BY id ";
  11. $wykonaj = mysql_query ($zapytanie);
  12. while($wiersz=mysql_fetch_array ($wykonaj)) {
  13. echo " <tr>
  14. <td width=\"4%\">".$wiersz['id']."</td>
  15. <td width=\"18%\">".$wiersz['tytul']."</td>
  16. <td width=\"18%\">".$wiersz['opis']."</td>
  17. <td width=\"18%\">".$wiersz['powierzchnia']."</td>
  18. <td width=\"18%\">".$wiersz['czynsz']."</td>
  19. <td width=\"14%\">".$wiersz['dostepne']."</td>
  20.  
  21. <td width=\"6%\"><a href=\"kasoferte.php?stan=del&iddel=".$wiersz['id']."\">KASUJ</a></b></td>
  22. </tr>";
  23. }
  24. if(stan=='del') {
  25. $zapytanie2="DELETE FROM dane WHERE id=$iddel";
  26. $wynik2 = mysql_query($zapytanie2);
  27. echo "Rekord o id=$iddel został skasowany !";
  28. }
  29. else { echo "Błąd nie udało się skasować rekordu";
  30.  
  31. }
  32. ?>

Nie wywala mi błędu żadnego tylko pisze wartość ostatnią else : "Błąd nie udało się skasować rekordu"
Jaki może być problem?
Dodam tylko że zmienna id jest w phpmyadminie zapisana jako AUTO_INCREMENT
proszę o pomoc

pozdr!
nospor
if(stan=='del')

pytanie pomocnicze do ciebie:
Co to jest 'stan' ?
Tylko zastanow sie dwa razy zanim mi odpowiesz. Bo ja wiem, ty nie wiesz winksmiley.jpg
john_doe
$zapytanie2="DELETE FROM dane WHERE id=" . $_GET['iddel'];

wysyłasz to do tego samego pliku?
michal_86
stan miało być nazwą zmiennej umożliwiającą kasowanie, takie było założenie - rozumiem że coś mi się pomyliło?

czyli zamiast stan powinienem tam wpisać " " questionmark.gif

nospor
stan - to dla php stala o nazwie stan. gdy takiej nie ma to uznaje to za tekst 'stan'

Wiesz jak wygladają zmienne w php?

$stan - to jest zmienna w php

$_GET['stan'] - to jest zmienna z url i to wlasnie powinno byc zamiast stan
michal_86
ok , spróbuje, dzięki - jak pisałem i jak widać - dopiero zaczynam i nie jest to wszystko poukładane..smile.gif



Prosze tylko nie bić. Nie wiem czy dobrze zrozumiałem jeśli chodzi o wstawienie - pokaże po prostu co zrobiłem:
  1. <td width=\"6%\"><a href=\"kasoferte.php? $stan=del&iddel=".$wiersz['id']."\">KASUJ</a></b></td>
  2. </tr>";
  3. }
  4. if($_GET['stan']=='del') {
  5. $zapytanie2="DELETE FROM dane WHERE id=$iddel ";
nospor
"kasoferte.php? $stan=

tutaj tego $ mozesz sobie darowac.
"kasoferte.php?stan=
michal_86
$zapytanie2="DELETE FROM dane WHERE id=$iddel - czy przy tym $idel nie powinienem czegoś zmienić?
teraz mam komunikat że skasowało , ale wpis nadal jest i oczywiście przy pokazaniu id= jest pusto..czyli tutaj mam próbować z $GET?? i czy ze zmienną stan czy nie?

a mozę olać to wszystko i robić z osobnym formularzem na zasadzie $post?
nospor
Cytat
a mozę olać to wszystko i robić z osobnym formularzem na zasadzie $post?
a co za roznica czy get czy post? Jak nei umiesz uzyc $_GET to i tym bardziej nie bedziesz umial uzyc $_POST.

Cytat
czyli tutaj mam próbować z $GET
tak. jak cos jest z url to masz sie do tego dobierac poprzez $_GET, jak coś jest z post to masz sie do tego dobierac poprzez $_POST
bastard13
http://www.w3schools.com/PHP/php_get.asp
http://php.net/manual/en/reserved.variables.get.php
http://php.net/manual/en/reserved.variables.php
Przejrzyj to pobierznie, a obiecuję, że połowa z Twoich pytań w twej kwestii zostanie wyjaśniona.
michal_86
dzięki powalczę jutro calutki dzień.

$post akurat umiałem użyć..ale bardziej przypadkowo..do dodawania danych do bazy co działa mi bez zarzutu

generalnie nie raz tu jeszcze tak czy owak zawitam, bo mam w planach stworzenie funkcji dodawania danych do bazy przy równoczesnym tworzeniu podstrony w których część z tych danych się znajdjdzie...o ile
przez php mogę tworzyć nową stronę przez formularz

początki są trudne - thx za pomoc

na pewno - do zobaczenia na forum





mam taki kod :
  1. $zapytanie2="DELETE FROM dane WHERE id=$_GET['$iddel'] ";

i taki błąd : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\xampp\kasoferte.php on line 75

naczytałem się o tej funckji $_GET i wszędzie były dane przestłane w [''] - nie wiem natomiast czy w funkcji selekt mam to zrobić inaczej?
nospor
nie chodzi o select, tylko chodzi o tekst. Przeczytaj dokladnie to:
http://pl.php.net/manual/pl/language.types.string.php
michal_86
poczytałem - trzeba było wstawić klamrę {

nadal jednak nie chciał zrealizowac funkcji "zapytanie2"
Postanowiłem zmienić taktykę , nieco, ale nadal muszę coś mylić ponieważ funkcji nie chce nawet ruszyć



  1. <td width=\"6%\"><a href=\"kasoferte.php?stan=del&iddel=".$wiersz['id']."\">KASUJ</a></b></td>
  2.  
  3. </tr>";
  4.  
  5. }
  6.  
  7. $iddel=$_GET['iddel'];
  8. $stan=$_GET['stan'];
  9.  
  10. if($stan=='del') {
  11.  
  12. $zapytanie2="DELETE FROM dane WHERE id='$iddel' ";
  13.  
  14. $wynik2 = mysql_query($zapytanie2);
  15.  
  16. echo "Rekord o id='$iddel' został skasowany !";
  17.  
  18. }
  19.  
  20. else { echo "Błąd nie udało się skasować rekordu";
  21.  
  22.  
  23.  
  24. }
  25.  
  26. ?>


jakaś podpowiedź?

znalazłem w necie coś takiego:
  1. /website/deleteuser.php?id=<userid> for each, where deleteuser.php contains the (pseudocode):
  2.  
  3. $sql = "DELETE FROM usertable WHERE id = " . (int) $_GET['id'];


czy oznacznie id jest poprawne tutaj?

czy mogę po wpisaniu frazy
  1. $_GET['stan'] = $stan;
użyć go tak potem w warunku if :
  1. if($stan=='del')


czy za każdym razem musze pisać
  1. if($_GET['$stan']=='del')
mhw
Cytat(michal_86 @ 2.02.2010, 18:57:42 ) *
czy mogę po wpisaniu frazy
  1. $_GET['stan'] = $stan;
użyć go tak potem w warunku if [...]

Nie, ale po wpisaniu
  1. $stan = $_GET['stan'];
już tak winksmiley.jpg



michal_86
dzięki..okazuje się że robiłem to dobrze, tylko żę baza z której miałem kasować rekord ma inną nazwę..stąd cały czas błędy

ALE - bardzo dziękuje za linki i pomoc bo się cholernie dużo nauczyłem

pozdr!

bardzo dziękuję!
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.