Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] usuwanie wiersza z tabeli
Forum PHP.pl > Forum > Przedszkole
2rek
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?
nospor
Bo zapewne gdziesz masz insert 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
2rek
Cytat(nospor @ 2.08.2006, 13:45 ) *
Bo zapewne gdziesz masz insert 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?
nospor
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
2rek
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
nospor
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.
2rek
i jak moj tytul? biggrin.gif powinno byc ok juz

dzieki za pomoc skrypt juz dziala

teraz wracam do poprzedniego problemu -ale napisze nowego posta z ladnym tytulem
nospor
czemu masz pisac na nowo? przeciez to ten sam problem. (czytaj: pisz tu)

ps: tytul ladny
2rek
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
nospor
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
2rek
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?
nospor
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
2rek
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>
nospor
Cytat
wiec jak to zrobi np w przypadku tego formularza
yyy, kto zrobi? skrypt? tak jak do tej pory smile.gif
chyba ze miales na mysli zrobic 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. ?>
2rek
dzieki za pomoc i wyrozumialosc 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
nospor
@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
2rek
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?
nospor
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 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... 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...." winksmiley.jpg
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.