Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] usuwanie wiersza z tabeli
2rek
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2006

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


a wiec mam tabele

KATEGORIA_LINKI
-id_kat_linki
-naz_kat_linki

wyciagam z tabeli wszystko do selecta , wstawiam przycisk USUN -chodzi o to aby z menu rozwijalnego wybrac nazwe kategori i po kliknieciu usunac odpowiadajacy jej wiersz z tabeli

- napisalem to tak:
  1. <SELECT NAME="naz_kat_link">

  1. <? $zapytanie = 'SELECT * FROM `kategoria_link`';
  2. $wypis = mysql_query($zapytanie);
  3. while ($wiersz = mysql_fetch_row($wypis)) {
  4. echo '<OPTION value='. $wiersz[0] .'>'. $wiersz[1].'</OPTION>';
  5. }
  6. ?>

  1. </td>
  2. </tr>
  3. <tr>
  4. <td></td>
  5. <td><INPUT TYPE="submit" VALUE="u s u n"></td>
  6. </tr>
  7. </table>
  8. </form>

  1. <?
  2. $zapytanie2 = 'DELETE FROM `kategoria_link` WHERE `naz_kat_link` = '.$wiersz[1].'';
  3. $usun = mysql_query($zapytanie2);
  4. mysql_close($link);
  5. ?>


ale zamiast usuwac wiersz -to dodaje kolejny i w naz_kat_link wpisuje id_kat_link ktory chcialem usunac

-co robie zle?

Ten post edytował 2rek 2.08.2006, 13:28:59
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




Bo zapewne gdziesz masz insert (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
zamiast wejsc ci do delete wchodzi ci do insert. czemu? ano tego z fusow ci nie wywroze przy takim kodzie co nam pokazales

proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole
Go to the top of the page
+Quote Post
2rek
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2006

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


Cytat(nospor @ 2.08.2006, 13:45 ) *
Bo zapewne gdziesz masz insert (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
zamiast wejsc ci do delete wchodzi ci do insert. czemu? ano tego z fusow ci nie wywroze przy takim kodzie co nam pokazales

proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole


to jest jeden z kilku formularzy ktore includuje do jednego pliku -byc moze ktorys z poprzednich ma na to wplyw -ale to pozniej -bo pojawil sie kolejny problem -gdy odpalam ten skrypt -juz nie includujac tylko samodzielnie -to i tak nie usuwa wiersza z tabeli -robi "nic"

-gdzie jest blad?
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




Sprawdź czy ci wogole dochodzi do tego usuwania i wyswietlaj ewentaulne bledy

  1. <?php
  2. echo 'Doszedlem a to zapytanie:'.$zapytanie2;
  3. $usun = mysql_query($zapytanie2) or die(mysql_error());
  4. ?>


ponawiam prosbe o dopisanie znacznika...
edit:
Cytat
znacznik & zapytanie SQL

Przepraszam ze to napisze, ale normalnie jestes "niesamowity"... Przeczytaj jeszcze raz dokladnie, uwaznie, 20 razy jesli nie rozumiesz, zasady do ktorych podalem ci linka
Go to the top of the page
+Quote Post
2rek
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2006

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


w odpowiedzi wyswietla mi:

Doszedlem a to zapytanie:DELETE FROM `kategoria_link` WHERE `naz_kat_link` = You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

-jakby nie mogl pobrac wartosci z pola SELECT
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




No a co to jest te $wiersz[1] ? przeciez ty dane do usuniecia pobierasz z formularza a nie z mysql. Powinno byc : $_POST['nazwaselecta'];

ps: nie uwazasz ze wyrazenie: "znacznik &" powiinno zniknac z tytulu? Naprawde to ma związek z tematem?
"zapytanie SQL" zamiast tego tez moglo by byc cos, co w jakis sposob odzwierciedla problem.
Go to the top of the page
+Quote Post
2rek
post
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2006

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


i jak moj tytul? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) powinno byc ok juz

dzieki za pomoc skrypt juz dziala

teraz wracam do poprzedniego problemu -ale napisze nowego posta z ladnym tytulem
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




czemu masz pisac na nowo? przeciez to ten sam problem. (czytaj: pisz tu)

ps: tytul ladny
Go to the top of the page
+Quote Post
2rek
post
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2006

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


moj problem wyglada tak:

do pliku admin.php includuje kolejne formularze:


<h4>dodaj linka</h4>
<? include ("../include/dod_now_link.php"); ?>
<h4>dodaj kategorie</h4>
<? include ("../include/dod_kat_link.php");?>
<h4>spis linków</h4>
<? include ("../include/pok_link.php");?>
<h4>usuń kategorie</h4>
<? include ("../include/usun_kat_link.php");?>" title="Zobacz w manualu php" target="_manual


trzy z nich zawieraja formularze -kazdy ze swoim przyciskiem SUBMIT

problem pojawia sie gdy poprzez formularz usun_kat_link.php usuwam wiersz z tabeli -zamiast usuwania dodaje mi kolejny wiersz -z tego co juz dowiedzialem sie -zapewne zamiast DELETE zawartego w tym formularzu lapie mi jakiegos INSERTa -ale jedyne wyjscie to lapie go z innego includowanego formularza

czy jest taka mozliwosc i jaka moze byc przyczyna?

-wewnatrz includowanych skryptow nie ma if'ow
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




No to ty includujesz i wywolujesz akcje jak leci bez ifow? To skad skrypt ma wiedziec, ze teraz ma usunac a nie dodac? To nie sztuczna inteligencja. Musisz mu powiedziec: jesli cos to zrob cos
I albo oifuj includy, albo oifuj kod wewnatrz includow
Go to the top of the page
+Quote Post
2rek
post
Post #11





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2006

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


wiec jesli kazdy iclude dodaje inny formularz a kazdy z tych formularzy ma oddzielny przycisk SUBMIT -wszystkie zostaja wyswietlone na jednej stronie -
to po wypelnieniu jednego i kliknieciu w SUBMIT wysyla on do bazy zapytania ze wszystkich formularzy?
Go to the top of the page
+Quote Post
nospor
post
Post #12





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




sumbit wysyla dane tylko z jednego formularza.
Ale co z tego, skoro ty akcje dodawania, usuwania, i jakie tam jeszcze chcesz wykonujesz jak leci, bez sprawdzania jakie dane otrzymales. Pytam jeszcze raz: jak ty sobie wyobrazasz, ze skrypt sam zgadnie ze ty akurat wcisnales kasuj? No nie zgadnie. Ty musisz napisac: if (wcisnieto kasuj) wtedy kasuj

Inaczej by sie sprawa miala, gdyby kazdy formularz szedl do oddzielnego skryptu, specjalnie dla niego stworzonego, a nie jak teraz wszystko leci do jednego
Go to the top of the page
+Quote Post
2rek
post
Post #13





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2006

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


wiec jak to zrobi np w przypadku tego formularza


  1. <SELECT NAME="naz_kat_link">

  1. <? $zapytanie2 = 'SELECT * FROM `kategoria_link`';
  2. $wypis2 = mysql_query($zapytanie2);
  3. while ($wiersz = mysql_fetch_row($wypis2)) {
  4. echo '<OPTION value='. $wiersz[0] .'>'. $wiersz[1].'</OPTION>';
  5. }
  6.  
  7.  
  8. $zapytanie3 = 'DELETE FROM `kategoria_link` WHERE `id_kat_link` = '.$_POST['naz_kat_link'].'';
  9. $usun = mysql_query($zapytanie3);
  10. mysql_close($link);
  11. ?>
  1. </td>
  2. </tr>
  3. <tr>
  4. <td></td>
  5. <td><INPUT TYPE="submit" VALUE="u s u n"></td>
  6. </tr>
  7. </table>
  8. </form>
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




Cytat
wiec jak to zrobi np w przypadku tego formularza
yyy, kto zrobi? skrypt? tak jak do tej pory (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
chyba ze miales na mysli zrobic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dla submitow musisz nadawac nazwy. przykladowo:
  1. <INPUT TYPE="submit" name="remove" VALUE="u s u n">

a potem
  1. <?php
  2. if (isset($_POST['remove'])){
  3. //a tu akcja z usuwaniem
  4. }
  5. ?>
Go to the top of the page
+Quote Post
2rek
post
Post #15





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2006

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


dzieki za pomoc i wyrozumialosc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

no tak pospieszylem sie albo znow cos zdupcylem bo dalej mi jakies dziwne rzeczy moj skrypcik wyprawia

aktualny kod:

<form name="usu_kat_link" method="post" action=usun_kat_link.php>
<table>
<tr>
<td>usuń kategorie:</td>
<td>
<?
//polczenie z baza [...]


<SELECT NAME="id_kat_link">
<? $zapytanie2 = 'SELECT * FROM `kategoria_link`';
$wypis2 = mysql_query($zapytanie2);
while ($wiersz = mysql_fetch_row($wypis2)) {
echo '<OPTION value='. $wiersz[0] .'>'. $wiersz[1].'</OPTION>';
}

?>
</SELECT>
</td>
</tr>
<tr>
<td></td>
<td><INPUT TYPE="submit" NAME="usun_kategorie" VALUE="u s u n"></td>
</tr>
</table>
</form>

<?$
zapytanie3 = 'DELETE FROM `kategoria_link` WHERE `id_kat_link` = '.$_POST['id_kat_link'].'';

if (isset($_POST['usun_kategorie'])){
$wynik = mysql_query($zapytanie3);
}
//sprawdzam
echo 'zapytanie wysylane do bazy:'.$sql2;
$wyswietl = mysql_query($sql2) or die(mysql_error());
mysql_close($link);
?>

...chyba cos nie gra gdy przekazuje zmienna z pola SELECT poniewaz przy sprawdzeniu pokazuje mi...

zapytanie wysylane do bazy:Query was empty
Go to the top of the page
+Quote Post
nospor
post
Post #16





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




@2rek no ale na logike.... ciezko troche pomyslec? trzeba od razu na forum leciec? Jak wol ci pisze, ze zapytanie jest puste. Juz w tym momencie powinno ci cos switac w glowie. Przeciez ty wykonujesz zapytanie zapisane w zmiennej $sql2. Ino jet maly problem. Ty nigdzie do tej zmiennej nic nie zapisujesz...

I uzywaj bbcode
Go to the top of the page
+Quote Post
2rek
post
Post #17





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2006

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


dlatego jestem na forum -przedszkole bo dopiero się ucze i wchodząc na forum.php.pl oczekiwałem pomocy a nie testów typu:
Cytat
.... ciezko troche pomyslec?
Go to the top of the page
+Quote Post
nospor
post
Post #18





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




Cytat
oczekiwałem pomocy
Wybacz, ale czy nie dostales tu pomocy? Dostales. udzielono ci odpowiedzi co masz nie tak. Przy okazji jedynie zasugerowano, bys nastepnym razem sie zastanowil odrobine zanim napiszesz na forum. Nawet jesli to jest przedszkole, to od myslenia i samodzielnosci to nie zwalnia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

przyklad:
Nalales kompot do rozowej szklanki, ale do reki wziales szklanke żółtą i sie zastanawiasz czemu w niej nie ma kompotu. No sorki, ale w takiej sytucji trzeba troche tobą potrząsnąc bys sie zastanowil co robisz, a ze ty jakis wyczulony jestes to juz nie moja wina... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

edit:
zapomniałem jeszcze dodac, ze w przytoczonym przykladzie, gdzie z oddali dochodzi cichy, miły, kobiecy glos:
"Glass is empty, glass is empty...." (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
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 - 15:59