Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]usunięcie i edycja rekordów w bazie danych
Forum PHP.pl > Forum > Przedszkole
unnamed
stworzyłam skrypt usuwający rekordy z bazy danych, ale cos jest nie tak, nie usuwa pozycji odkąd całość umieściłam w warunku if (empty($nazwisko) and ($wydawnictwo) and ($tytul)) :/ jak to inaczej napisać aby:

1. gdy podam nazwisko, wydawnictwo i tytuł to usunęło rekord z tabeli ksiazki (moja wersja zadziałała zanim wszystko zawarłam w: if (empty($nazwisko) and ($wydawnictwo) and ($tytul)) )
2. gdy podam samo nazwisko - usunęło tylko autora z tabeli autor
3. gdy podam wydawnictwo - usunęło wydawnictwo z tabeli wydawn



  1. <?php
  2. $nazwisko=$_POST[nazwisko];
  3. $id_autor=$_POST[id_autor];
  4. $tytul=$_POST[tytul];
  5. $wydawnictwo=$_POST[wydawnictwo];
  6. $wydawnictwo_id=$_POST[wydawnictwo_id];
  7.  
  8. $host="localhost";
  9. $db_user="a";
  10. $db_password="";
  11. $database="b";
  12. mysql_connect($host,$db_user,$db_password);
  13. mysql_select_db($database);
  14.  
  15. if (empty($nazwisko) and ($wydawnictwo) and ($tytul))
  16. {
  17. $wydawnictwo_id = mysql_query("SELECT wydawnictwo_id FROM wydawn WHERE wydawnictwo='".$wydawnictwo."'") or die(mysql_error());
  18. $wydawnictwo_id = mysql_fetch_array($wydawnictwo_id,MYSQL_ASSOC);
  19. $wydawnictwo_id = $wydawnictwo_id['wydawnictwo_id'];
  20.  
  21. $id_autor = mysql_query("SELECT id_autor FROM autor WHERE nazwisko='".$nazwisko."' ") or die(mysql_error());
  22. $id_autor = mysql_fetch_array($id_autor,MYSQL_ASSOC);
  23. $id_autor = $id_autor['id_autor'];
  24.  
  25.  
  26. $sql = mysql_query("SELECT id, id_autor, tytul, wydawnictwo_id, rok FROM ksiazki WHERE tytul='".$tytul."' and wydawnictwo_id='".$wydawnictwo_id."' and id_autor='".$id_autor."'") or die(mysql_error());
  27. if(mysql_num_rows($sql))
  28. {
  29.    $sql = "DELETE FROM ksiazki WHERE tytul='".$tytul."' and wydawnictwo_id='".$wydawnictwo_id."' and id_autor='".$id_autor."'";
  30.    mysql_query($sql) or die(mysql_error());
  31. }
  32. }
  33. else
  34. {
  35.  if (empty($nazwisko) or ($wydawnictwo))
  36.   {
  37.       if (empty($nazwisko))
  38.       {
  39.       $id_autor = mysql_query("SELECT id_autor, imie, nazwisko FROM autor WHERE nazwisko='".$nazwisko."' ") or die(mysql_error());
  40.                 if(mysql_num_rows($id_autor))
  41.                 {
  42.                 $id_autor = "DELETE FROM autor WHERE nazwisko='".$nazwisko."' ";
  43.                 mysql_query($id_autor) or die(mysql_error());
  44.                 echo '<br /><br /><b>Autor został usunięty z bazy danych.<br /></b>';
  45.                 }
  46.                 else
  47.                 {
  48.                 echo '<br /><br /><b>Autor nie istnieje w bazie danych.<br /></b>';
  49.                 }
  50.       }
  51.       else
  52.       {
  53.        if  (empty($wydawnictwo))
  54.        {
  55.            $wydawnictwo_id = mysql_query("SELECT wydawnictwo_id, wydawnictwo FROM wydawn WHERE wydawnictwo='".$wydawnictwo."'") or die(mysql_error());
  56.            if(mysql_num_rows($wydawnictwo_id))
  57.            {
  58.                 $wydawnictwo_id = "DELETE FROM wydawn WHERE wydawnictwo='".$wydawnictwo."'";
  59.                 mysql_query($wydawnictwo_id) or die(mysql_error());
  60.                 echo '<br /><br /><b>wydawnictwo zostało usunięte z bazy danych.<br /></b>';
  61.            }
  62.            else
  63.            {
  64.            echo '<br /><br /><b>wydawnictwo nie istnieje w bazie danych.<br /></b>';
  65.            }
  66.       }
  67.    }
  68. }
  69. ?>
nevt
  1. <?php
  2. $nazwisko= isset($_POST['nazwisko']) ? $_POST['nazwisko'] : NULL;
  3. $id_autor=isset($_POST['id_autor']) ? $_POST['id_autor'] : NULL;
  4. $tytul=isset($_POST['tytul']) ? $_POST['tytul'] : NULL;
  5. $wydawnictwo=isset($_POST['wydawnictwo']) ? $_POST['wydawnictwo'] : NULL;
  6. $wydawnictwo_id=isset($_POST['wydawnictwo_id']) ? $_POST['wydawnictwo_id'] : NULL;
  7.  
  8. if(!(is_null($nazwisko) || is_null($tytul) || is_null($wydawnictwo)))
  9. {
  10.  // usuwasz rekord z tabeli książki
  11. }
  12. elseif(!is_null($nazwisko) && is_null($tytul) && is_null($wydawnictwo))
  13. {
  14.   // usuwasz rekord z tabeli autor
  15. }
  16. elseif(!is_null($wydawnictwo) && is_null($tytul) && is_null($nazwisko))
  17. {
  18.    // usuwasz rekord z tabeli wydawn
  19.  }
  20. else
  21. {
  22.  // wyświetlasz komunikat, że wprowadzono nieprawidłowe dane
  23.  // (bo nic nie podano albo podano nazwisko i wydawnictwo bez tytulu...)
  24. }
  25. ?>

powodzenia
unnamed
a jak edytować takie rekordy w bazie danych?

użytkownik w formularzu podaje poprawione dane, ale żeby nie zmieniło wszystkich rekordów w bazie muszę pobrać autora, który ma imie i nazwisko istniejące w bazie...? poniższy fragment kodu nie działa bo selectuje imie='".$imie."' and nazwisko='".$nazwisko." które pobiera z formularza a tam przeciez uzytkownik wpisuje poprawione dane a nie stare :/

  1. <?php
  2. if  (isset($nazwisko) and ($imie))
  3.       {
  4.       $id_autor = mysql_query("SELECT id_autor, imie, nazwisko FROM autor WHERE imie='".$imie."' and nazwisko='".$nazwisko."'") or die(mysql_error());
  5.       if(mysql_num_rows($id_autor))
  6.                 {
  7.                 $id_autor = "UPDATE autor SET imie='".$imie."', nazwisko='".$nazwisko."' ";
  8.                 mysql_query($id_autor) or die(mysql_error());
  9.                 echo '<br /><br /><b>Autor został edytowany.<br /></b>';
  10.                 }
  11.                 else{echo '<br /><br /><b>Edycja autora nie powiodła się.<br /></b>';   }
  12.        }
  13. ?>
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.