Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php][mysql] skrypt
stypkalukasz
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Witam. Mam taki skrypcik. Powinien usuwać wybrany wiersz z bazy danych. Tymczasem nie działa jakoś poprawnie.
może rzucicie okiem??
  1. <form action="" method="post"> 
  2. <select name="klub" onchange="this.form.submit()"> 
  3. <option value="">Wybierz dział</option> 
  4. <option value="Legia Warszawa">Legia Warszawa</option> 
  5. <option value="Wisła Kraków">Wisła kraków</option> 
  6. <option value="Pogoń Szczecin">Pogoń Szczecin</option>
  7. <option value="Górnik Łęczna">Górnik Łęczna</option>
  8. <option value="www">www</option> 
  9. </select> 
  10. </form> 
  11.  
  12. <?php 
  13.  
  14. // parametry serwera 
  15. $serwer = "localhost"; // nazwa serwera mysql 
  16. $login = "root"; // login do bazy 
  17. $haslo = "krasnal"; // haslo do bazy 
  18. $baza  = "skarb_kibica"; // nazwa bazy 
  19. $tabela = "dane"; // nazwa tabeli 
  20.  
  21. $klub = $_POST['klub']; 
  22.  
  23. if($klub) { 
  24.  
  25. // łączymy się z bazą danych 
  26. if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) { 
  27.  
  28. // zapytanie do bazy danych 
  29. $wynik = ("delete * FROM dane WHERE klub = '.$klub.'")
  30. or die("Błąd w zapytaniu!"); 
  31.  
  32. } 
  33. else echo "Nie mogę połączyć się z bazą danych!"; 
  34.  
  35.  
  36.  
  37. } 
  38.  
  39. ?>

Powinien usuwać wiersz który wybierma z listy rozwijanej (np. Wisła Kraków) i przechowywany pod zmienną $klub.
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




  1. <?php
  2. $wynik = ("delete * FROM dane WHERE klub = '.$klub.'")
  3. ?>
ze jak?
1) http://pl.php.net/manual/pl/function.mysql-query.php
2) naucz sie lączyc ciagi

  1. <?php
  2. $wynik = mysql_query("delete * FROM dane WHERE klub = '$klub'")
  3. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
stypkalukasz
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Jak dodałem mysql_query to jest błąd w zapytaniu:(
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




Wiesz, to wywal mysql_query() i bledu miec nie bedziesz... tongue.gif

Poprawiles calosc jak ci podalem? Jesli tak to zrob jeszcze tak:
  1. <?php
  2. $sql = "delete * FROM dane WHERE klub = '$klub'";
  3. $wynik = mysql_query($sql) or die("Zapytanie: $sql ----- blad:".mysql_error());
  4. ?>

I zapamietaj te skladnie do konca zycia


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
stypkalukasz
post
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Witam ponownie.
Miałem ostatnio małą przerwę ale już wracam do pracy.
Zmodyfikowałem kod o który rozchodzi się powyżej według sugestii:

  1. <form action="" method="post"> 
  2. <select name="klub" onchange="this.form.submit()"> 
  3. <option value="">Wybierz nazwę klubu:</option> 
  4. <option value="Legia Warszawa">Legia Warszawa</option> 
  5. <option value="Wisła Kraków">Wisła kraków</option> 
  6. <option value="Pogoń Szczecin">Pogoń Szczecin</option>
  7. <option value="Górnik Łęczna">Górnik Łęczna</option> 
  8. <option value="Widzew ŁódĽ">Widzew ŁódĽ</option>
  9. <option value="Groclin Grodzisk Wielkopolski">Groclin Grodzisk Wielkopolski</option>
  10. <option value="Wisła Płock">Wisła Płock</option>
  11. <option value="Zagłębie Lubin">Zagłębie Lubin</option>
  12. <option value="Korona Kielce">Korona Kielce</option>
  13. <option value="Odra Wodzisław &brvbar;l&plusmn;ski">Odra Wodzisław &brvbar;l&plusmn;ski</option>
  14. <option value="Górnik Zabrze">Górnik Zabrze</option>
  15. </select> 
  16. </form> 
  17.  
  18. <?php 
  19.  
  20. // parametry serwera 
  21. $serwer = "localhost"; // nazwa serwera mysql 
  22. $login = "root"; // login do bazy 
  23. $haslo = "krasnal"; // haslo do bazy 
  24. $baza  = "skarb_kibica"; // nazwa bazy 
  25. $tabela = "dane"; // nazwa tabeli 
  26.  
  27. $klub = $_POST['klub']; 
  28.  
  29. if($klub) { 
  30.  
  31. // łączymy się z bazą danych 
  32. if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) { 
  33.  
  34. // zapytanie do bazy danych 
  35. $sql = "delete * FROM dane WHERE klub = '$klub'";
  36. $wynik = mysql_query($sql) or die("Zapytanie: $sql ----- blad:".mysql_error());
  37. or die("Błąd w zapytaniu!"); 
  38.  
  39. } 
  40. else echo "Nie mogę połączyć się z bazą danych!"; 
  41.  
  42. // wyświetlany wyniki zapytania 
  43. while($rek = mysql_fetch_array($wynik)) { 
  44. echo $rek['tresc']."<br />"; 
  45. } 
  46. } 
  47.  
  48. ?>


No ale niestety znowu coś nie tak. Bardzo proszę o rzucenie okiem. Wyświtla błąd: unexpected T_LOGICAL_OR .

PS. Szybko przypominam problem: skrypt ma usuwać z bazy danych dane klubu którego nazwę wybieramy z menu rozwijanego zdefiniowanego na początku skryptu.

Ten post edytował stypkalukasz 20.11.2007, 22:20:24
Go to the top of the page
+Quote Post
Pride
post
Post #6





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


nieche mi sie tego testowac ale... mysql_close(); to powinno byc na koncu skryptu tongue.gif Bo jak zamykasz połaczenie z bazą to jak on ma ci coś wczytac?


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post
Danone
post
Post #7





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


Zamiast tak w 29 linii:

  1. <?php
  2. if($klub)
  3. ?>



Zrób tak:


  1. <?php
  2. if(isset($klub)){
  3. }
  4. ?>



i jeszcze w linii 35 zamiast:

  1. <?php
  2. $sql = "delete * FROM dane WHERE klub = '$klub'";
  3. ?>



Zrób:


  1. <?php
  2. $sql = "delete * FROM dane WHERE klub = ".$klub."";
  3. ?>


Powinno pomóc
Go to the top of the page
+Quote Post
Pride
post
Post #8





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


Jeszcze tak patrze... po co zasmieciac sobie skrypt zbednymi zmiennymi? snitch.gif
Zamiast:
  1. <?php
  2. if($klub)
  3. ?>

nawet nie tak jak powiedzial przedmówca ale:
  1. <?php
  2. if(isset($POST['klub']))
  3. ?>


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post
Danone
post
Post #9





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


Po prostu pokazałem, jak ma być przerobione ze zmiennymi takimi jak sobie autor narzucił smile.gif
Go to the top of the page
+Quote Post
stypkalukasz
post
Post #10





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Dzięki Waszej pomocy jestem już chyba blisko rozwiązania problmu. Wyświetla mi się teraz błąd: Zapytanie: delete * FROM dane WHERE klub = Odra Wodzisław Śląski ----- blad:Something is wrong in your syntax obok '* FROM dane WHERE klub = Odra Wodzisław Śląski' w linii 1

Sprawdziłem baze danych i wszystko jest ok: nazwa tabeli, klubu. Składnia zapytania do bazy chyba też jest ok. Co Wy na to?
Go to the top of the page
+Quote Post
Cienki1980
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Porównaj dwa zapisy:
  1. DELETE * FROM ...

i
  1. DELETE FROM ....


Aaaa i jeszcze jedno
jeżeli klub to pole varchar to przydałoby się nazwę klubu wziąć w 'tutaj nazwa klubu'


--------------------
404
Go to the top of the page
+Quote Post
drPayton
post
Post #12





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


A co się dziwić, jak każdy radzi co innego i to takie bzdury:
@Pride:
  1. <?php
  2. if(isset($POST['klub']))
  3. ?>

Co to jest $POST?
@Danone:
Cytat:
Zamiast:
  1. <?php
  2. $sql = "delete * FROM dane WHERE klub = '$klub'";
  3. ?>

Zrób:
  1. <?php
  2. $sql = "delete * FROM dane WHERE klub = ".$klub."";
  3. ?>

?
Marsz do przedszkola tongue.gif
Ehhh

Ten post edytował drPayton 21.11.2007, 22:43:56
Go to the top of the page
+Quote Post
Pride
post
Post #13





Grupa: Zarejestrowani
Postów: 139
Pomógł: 11
Dołączył: 31.01.2005
Skąd: Bydgoszcz

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


Cytat(drPayton @ 21.11.2007, 22:43:30 ) *
A co się dziwić, jak każdy radzi co innego i to takie bzdury:
@Pride:
  1. <?php
  2. if(isset($POST['klub']))
  3. ?>

Co to jest $POST?

ohmy.gif jedna mała literówka a dokladnie brak _ :|


--------------------
Kto pyta - nie błądzi, kto szuka - znajduje.
Go to the top of the page
+Quote Post
-benes-
post
Post #14





Goście







działa na 100%%%%

Kod
<form action="" method="post">
<select name="klub" onchange="this.form.submit()">
<option value="">Wybierz dział</option>
<option value="Legia Warszawa">Legia Warszawa</option>
<option value="Wisła Kraków">Wisła kraków</option>
<option value="Pogoń Szczecin">Pogoń Szczecin</option>
<option value="Górnik Łęczna">Górnik Łęczna</option>
<option value="www">www</option>
</select>
</form>

<?php

// parametry serwera
$serwer = "localhost";  // nazwa serwera mysql
$login  = "root";  // login do bazy
$haslo  = "krasnal";  // haslo do bazy
$baza   = "skarb_kibica";  // nazwa bazy
$tabela = "dane";  // nazwa tabeli

$klub = mysql_escape_string($_POST['klub']);

if(isset($klub)) {
    
    // łączymy się z bazą danych
    if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) {
        
        // zapytanie do bazy danych
       $query = "delete from dane where klub = '$klub'";  
        if(!@mysql_query($query)) die("Błąd w zapytaniu!");
        
        mysql_close();
    } else {
    echo 'Nie mogę połączyć się z bazą danych!';
    }
    
    
    
}

?>
Go to the top of the page
+Quote Post
-benes-
post
Post #15





Goście







ewentualnie tak
  1. <form action="" method="post"> 
  2. <select name="klub" onchange="this.form.submit()"> 
  3. <option value="">Wybierz dział</option> 
  4. <option value="Legia Warszawa">Legia Warszawa</option> 
  5. <option value="Wisła Kraków">Wisła kraków</option> 
  6. <option value="Pogoń Szczecin">Pogoń Szczecin</option>
  7. <option value="Górnik Łęczna">Górnik Łęczna</option>
  8. <option value="www">www</option> 
  9. </select> 
  10. </form> 
  11.  
  12. <?php 
  13.  
  14. // parametry serwera 
  15. $serwer = "localhost"; // nazwa serwera mysql 
  16. $login = "root"; // login do bazy 
  17. $haslo = "krasnal"; // haslo do bazy 
  18. $baza  = "skarb_kibica"; // nazwa bazy 
  19. $tabela = "dane"; // nazwa tabeli 
  20.  
  21. $klub = mysql_escape_string($_POST['klub']); 
  22.  
  23. if(isset($klub)) { 
  24. if (!@mysql_connect($serwer, $login, $haslo) or !@mysql_select_db($baza)) exit("Nie mogę połączyć się z bazą danych!");
  25. if(!@mysql_query("delete from dane where klub = '$klub'")) die("Błąd w zapytaniu!"); 
  26.  
  27. } 
  28. ?>
Go to the top of the page
+Quote Post
--stypkalukasz--
post
Post #16





Goście







Witam ponownie.
Sprawdziłem kod i dziala poprawnie.
Mam tylko jeszcze jedną prośbę. Chciałbym zrobić w ten sposób, że jezeli danego klubu który chcę usunąć z bazy danych nie ma w bazie to jeżeli wybiorę go z listy do skasowania to żeby wyświetlał mi się komunikat że danego klubu nie ma w bazie.
Go to the top of the page
+Quote Post
stypkalukasz
post
Post #17





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Acha. I jeszcze da się ten skrypt przekształcić tak, abym zamiast listy rozwijanej wpisywał w polu tekstowym nazwę drużynu do usunięcia?
Go to the top of the page
+Quote Post
Moli
post
Post #18





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


W tym kodzie mysql_escape_string nie zadziała, ta funkcja musi być wywołana po połaczeniu z baza danych.
Go to the top of the page
+Quote Post
stypkalukasz
post
Post #19





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Przerobiłem dwa skrypty i wyszło mi coś takiego:
PIERWSZY: wpisuję w nim nazwę piłkarza którego chcę usunąć:
  1. <title>usuwanie klubów z bazy danych</title>
  2. </head>
  3.  
  4. <h1>usuwanie klubów z bazy danych</h1>
  5.  
  6. <form action="wstaw_ksiazke.php" method="post">
  7. <table border="0">
  8.  
  9. <tr><td>Piłkarz</td><td> <input type="text" name="pilkarz" maxlength="30" size="30"><br /></td></tr>
  10.  
  11. <tr><td colspan="2"><input type="submit" value="Usuń"></td></tr>
  12. </table>
  13. </form>
  14. </body>
  15. </html>


DRUGI: powinien usuwać z bazy nazwę którą podałem wcześniej:
  1. <html>
  2. <head>
  3. <title>usuwanie klubów z bazy danych</title>
  4. </head>
  5. <body>
  6. <h1>usuwanie klubów z bazy danych </h1>
  7. <?php
  8.  
  9.  
  10. $pilkarz=$HTTP_POST_VARS['pilkarz'];
  11.  
  12.  
  13. if (!$pilkarz)
  14. {
  15.  echo 'Nie podano wszystkich potrzebnych danych.<br />'
  16. .'Wróć do poprzedniej strony i spróbuj ponownie.';
  17.  exit;
  18. }
  19.  
  20.  
  21. $pilkarz = addslashes($pilkarz);
  22.  
  23.  
  24. @ $db = mysql_pconnect('localhost', 'root', 'krasnal');
  25.  
  26. if (!$db)
  27. {
  28.  echo 'Błąd: : Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  29.  exit;
  30. }
  31.  
  32. mysql_select_db('skarb_kibica');
  33. $zapytanie = "delete from pilkarze where values ('".$pilkarz."')"; 
  34. $wynik = mysql_query($zapytanie);
  35. if ($wynik)
  36. echo mysql_affected_rows().' usunięto z bazy'; 
  37. ?>
  38.  
  39. </body>
  40. </html>


Problem w tym że nie usuwa mi nic z bazy.
Na bank namotałem coś. Może zerkniecie czy chociaż w dobrym kierunku idę:)
Go to the top of the page
+Quote Post
Danone
post
Post #20





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


Moim zdaniem twoje zapytanie jest złe.

  1. "delete from pilkarze where values ('".$pilkarz."')";



a powinno być coś takiego na wzór:


  1. $zapytanie = "DELETE FROM pilkarze WHERE nazwisko='$_POST['pilkarz']'";


I nie deklaruj tak :

  1. <?php
  2. $pilkarz=$HTTP_POST_VARS['pilkarz'];
  3. ?>


Jak już chcesz posta do zmiennej przypisać to rób tak:

  1. <?php
  2. $pilkarz = $_POST['pilkarz'];
  3. ?>


Ten post edytował Danone 24.11.2007, 11:30:37
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:31