Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc z dodaniem informacji do tabeli
Forum PHP.pl > Forum > Przedszkole
Graba111
Witam serdecznie:

Kod
CREATE TABLE IF NOT EXISTS `czytelnik_ksiazka` (
  `ID_CZYTELNIKA` int(10) NOT NULL,
  `ID_KSIAZKI` int(10) NOT NULL,
  `STATUS` enum('W','R') NOT NULL,
  `DATA_WYPOZYCZENIA` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
   `DATA_PRZEDAWNIENIA` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  KEY `FK_czytelnik_ksiazka_czytelnicy` (`ID_CZYTELNIKA`),
  KEY `FK_czytelnik_ksiazka_ksiazki` (`ID_KSIAZKI`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Wypożyczone książki';

Kod
CREATE TABLE IF NOT EXISTS `ksiazki` (
  `ID` int(10) NOT NULL AUTO_INCREMENT,
  `TYTUL` varchar(100) NOT NULL,
  `AUTOR` varchar(100) NOT NULL,
  `ISBN` varchar(100) NOT NULL,
  `ROK_WYDANIA` varchar(100) NOT NULL,
  `CZY_WYPOZYCZONA` enum('W','N','R') NOT NULL DEFAULT 'N',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Dane książek';

Kod
CREATE TABLE `czytelnicy` (
  `ID` int(10) NOT NULL AUTO_INCREMENT,
  `LOGIN` varchar(100) NOT NULL,
  `HASLO` varchar(100) NOT NULL,
  `IMIE` varchar(100) NOT NULL,
  `NAZWISKO` varchar(100) NOT NULL,
  `PESEL` varchar(100) DEFAULT NULL,
  `KOD_POCZTOWY` varchar(100) DEFAULT NULL,
  `ULICA` varchar(100) DEFAULT NULL,
  `MIEJSCOWOSC` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `Indeks 2` (`LOGIN`),
  UNIQUE KEY `Indeks 3` (`PESEL`)
) TYPE=MyISAM;
  ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Dane osobowe czytelnikow';


chciałbym zrobić system wypożyczania tzn. 2 listy rozwijane z bazy mysql 1 z czytelnikami 2 z książkami i wpis do tabeli czytelnik_ksiazki tak aby zanotował wypożyczenie...
Jestem zielony w PHP robię to z musu i dlatego proszę o szybką pomoc. Z góry dziękuję.
b4rt3kk
To siadaj na tyłku i rób, przecież nikt Ci gotowca nie da.

1. Pobierz dane
2. Wstaw do formularza w pola select
3. Po submicie zapisz to wszystko do tabeli czytelnik_ksiazka
Graba111
Naskrobałem coś takiego...

Kod
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Latin-2" />
<title>Dodaj wypożyczenie</title>
</head>
<?php

session_start();
if(!session_is_registered('user')){
header('location:index1.php');
}
?>
<body bgcolor="#FFFFCC">
<center><table border="2" width="40%" bordercolor="#000000" bgcolor="#FFCC99" cellpadding="2" bordercolorlight="#000000" bordercolordark="#000000" style="border-collapse: collapse">
<tr><td><center><img src="ico/23.png" border="0"><br />Zalogowany jako pracownik<br /> <?php
{
echo 'Witaj '.$_SESSION['user'].'!<br />';
}
?></center></center></td><td><center><a href="administracja.php"><img src="ico/01.png" border="0"></a></center></td><td><center><a href="index.php"><img src="ico/17.png" border="0"><br />Wyloguj</a></center></td></tr>
</table></center>
<?php

mysql_connect('localhost', 'kamil', '!QAZxsw2') or die('Błąd: Nie można połączyć z MySQL!');
mysql_select_db('biblioteka') or die('Błąd: Nie można wybraż bazy danych!');

// odbieranie danych z bazy
$ID_CZYTELNIKA = $_POST['ID_CZYTELNIKA'];
$ID_KSIAZKI = $_POST['ID_KSIAZKI'];
$STATUS = $_POST['STATUS'];



if($ID_CZYTELNIKA and $ID_KSIAZKI) {
    
    // połączenie z bazą danych
    $connection = @mysql_connect('localhost', 'kamil', '!QAZxsw2')
    or die('Brak połączenia z serwerem MySQL');
    $db = @mysql_select_db('biblioteka', $connection)
    or die('Nie mogę połączyć się z bazą danych');
    
    // dodawanie rekordu do bazy
    $ins = @mysql_query("INSERT INTO czytelnik_ksiazka SET ID_CZYTELNIKA='$ID_CZYTELNIKA', ID_KSIAZKI='$ID_KSIAZKI', STATUS='$STATUS'");
    
    if($ins) echo "<script language='javascript' type='text/javascript'>alert('Wypożyczenie dodane poprawnie!'); </script>";
    else echo "<script language='javascript' type='text/javascript'>alert('Błąd nie udało się dodać wypożyczenia...'); </script>";
    
    mysql_close($connection);
}


?>


<center><table border="2" width="40%" bordercolor="#000000" bgcolor="#FFCC99" cellpadding="2" bordercolorlight="#000000" bordercolordark="#000000" style="border-collapse: collapse"><form action="wypozyczenia.php" method="post">
    <tr>
        <td colspan="2"><center><font size="4"><b>Formularz dodawania książki, proszę wypełnić poniższe pola:</b></font></center></td>
    </tr>
    
    <tr>
        <td width="40"><center>ID_CZYTELNIKA</center></td>
        <td width="35%"><center><input type="text" name="ID_CZYTELNIKA" /></center></td>
    </tr>
    <tr>
        <td><center>ID_KSIAZKI</center></td>
        <td><center><input type="text" name="ID_KSIAZKi" /></center></td>
    </tr>
    <tr>
        <td><center>Status</center></td>
        <td><center><input type="text" name="STATUS" /></center></td>
    </tr>
    <tr>
        <td colspan="2"><center><input type="image" name="dodaj" alt="opis obrazka" src="http://www.gci.czerniceborowe.pl/ico/dodaj.png"></center></td>
    </tr>
</form></table></center>

</body>
</html>


Niestety nie działa, co robię źle? Pewnie wszystko smile.gif
b4rt3kk
Nic nie robisz dobrze, zacznij od POBRANIA danych z bazy, o których mówiłeś w pierwszym poście, czyli z tabel ksiazki i czytelnicy. Następnie stwórz formularz, w którym te dane wstawisz. Np.

  1. <form action="" method="POST">
  2. <select name="czytelnik">
  3. <?php
  4. // tutaj pętla wyświetlająca dane z wyniku zapytania
  5. ?>
  6. </select>


I analogicznie postępując robisz resztę formularza.
Graba111
  1. <form action="wypozyczenia.php" method="POST">
  2.  
  3. <select name="TYTUL">
  4.  
  5. <?php
  6.  
  7. mysql_connect('localhost', 'kamil', '!QAZxsw2') or die('Błąd: Nie można połączyć z MySQL!');
  8. mysql_select_db('biblioteka') or die('Błąd: Nie można wybraż bazy danych!');
  9.  
  10. $wynik = mysql_query("SELECT * FROM ksiazki");
  11.  
  12. ?>
  13. <? while($rowk = mysql_fetch_array($wynik)): ?>
  14. <option value="<?= $rowk['id'] ?>"><?= $rowk['TYTUL'] ?></option>
  15. <? endwhile; ?>
  16. </select>
  17.  
  18. <form action="wypozyczenia.php" method="POST">
  19.  
  20. <select name="LOGIN">
  21.  
  22. <?php
  23.  
  24. mysql_connect('localhost', 'kamil', '!QAZxsw2') or die('Błąd: Nie można połączyć z MySQL!');
  25. mysql_select_db('biblioteka') or die('Błąd: Nie można wybraż bazy danych!');
  26.  
  27. $wynik = mysql_query("SELECT * FROM czytelnicy");
  28.  
  29. ?>
  30.  
  31. <? while($rowk = mysql_fetch_array($wynik)): ?>
  32. <option value="<?= $rowk['id'] ?>"><?= $rowk['LOGIN'] ?></option>
  33. <? endwhile; ?>
  34. </select>


Informacje wyświetlone poprawnie, jak zaktualizować tabelę czytelnik książka?questionmark.gif
pedro84
Myślisz czy nie? Dane pobierasz, ale ich nigdzie nie wyświetlasz. Poprawiłeś kod, no i git.

Jak zaktualizować? Stwórz formularz, do niego wstaw dane z bazy i po wysłaniu i walidacji zaktualizuj.
b4rt3kk
Ile razy masz się jeszcze zamiar łączyć z bazą danych w obrębie jednego skryptu? Raz w zupełności wystarczy. Skoro to już masz to dodaj:

  1. <input type="submit" />


I po wysłaniu, w pliku wypozyczenia.php możesz wstawić już INSERT, który zaprezentowałeś parę postów wyżej.
Graba111
  1. <form action="wypozyczenia.php" method="POST">
  2.  
  3. <select name="TYTUL">
  4.  
  5. <?php
  6.  
  7. mysql_connect('localhost', 'kamil', '!QAZxsw2') or die('Błąd: Nie można połączyć z MySQL!');
  8. mysql_select_db('biblioteka') or die('Błąd: Nie można wybraż bazy danych!');
  9.  
  10. $wynik = mysql_query("SELECT * FROM ksiazki");
  11.  
  12. ?>
  13. <? while($rowk = mysql_fetch_array($wynik)): ?>
  14. <option value="<?= $rowk['ID'] ?>"><?= $rowk['TYTUL'] ?></option>
  15. <? endwhile; ?>
  16. </select>
  17.  
  18. <form action="wypozyczenia.php" method="POST">
  19.  
  20. <select name="LOGIN">
  21.  
  22. <?php
  23.  
  24. mysql_connect('localhost', 'kamil', '!QAZxsw2') or die('Błąd: Nie można połączyć z MySQL!');
  25. mysql_select_db('biblioteka') or die('Błąd: Nie można wybraż bazy danych!');
  26.  
  27. $wynik = mysql_query("SELECT * FROM czytelnicy");
  28.  
  29. ?>
  30.  
  31. <? while($rowk = mysql_fetch_array($wynik)): ?>
  32. <option value="<?= $rowk['ID'] ?>"><?= $rowk['LOGIN'] ?></option>
  33. <? endwhile; ?>
  34. </select>
  35. <input type="submit" />
  36. <? mysql_query("INSERT INTO czytelnik_ksiazka SET ID_CZYTELNIKA='$ID_CZYTELNIKA', ID_KSIAZKI='$ID_KSIAZKI'");?>


Zrobiłem tak ale niestety nie działa...
b4rt3kk
Bo to nie może działać... Domknij form po pierwsze, a po drugie dodaj kod:

  1. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  2. mysql_query("INSERT INTO czytelnik_ksiazka SET ID_CZYTELNIKA='{$_POST['LOGIN']}', ID_KSIAZKI='{$_POST['TYTUL']}'");
  3. }


Graba111
Wszystko działa tylko teraz potrzebuję również usunięcia rekordu, napisałem coś takiego:

  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=Latin-2" />
  4. <title>Historia wypożyczeń</title>
  5. </head>
  6. <?php
  7.  
  8. if(!session_is_registered('user')){
  9. header('location:index1.php');
  10. }
  11. ?>
  12. <body bgcolor="#FFFFCC">
  13. <center><table border="2" width="80%" bordercolor="#000000" bgcolor="#FFCC99" cellpadding="2" bordercolorlight="#000000" bordercolordark="#000000" style="border-collapse: collapse">
  14. <tr><td><center><img src="ico/23.png" border="0"><br />Zalogowany jako pracownik<br /> <?php
  15. {
  16. echo 'Witaj '.$_SESSION['user'].'!<br />';
  17. }
  18. ?></center></td><td><center><a href="administracja.php"><img src="ico/01.png" border="0"></a></center></td><td><center><a href="index.php"><img src="ico/17.png" border="0"><br />Wyloguj</a></center></td></tr>
  19. </table></center>
  20. <center><table border="2" width="80%" bordercolor="#000000" bgcolor="#FFCC99" cellpadding="2" bordercolorlight="#000000" bordercolordark="#000000" style="border-collapse: collapse">
  21. <tr>
  22. <td width="23%"><center><b>Login czytelnika</b></center></td>
  23. <td width="23%"><center><b>Tytuł książki</b></center></td>
  24. <td width="18%"><center><b>Status</b></center></td>
  25. <td width="18%"><center><b>Data wypożyczenia</b></center></td>
  26. <td width="18%"><center><b>Data przedawnienia</b></center></td>
  27.  
  28. </tr>
  29.  
  30. </table></center>
  31. <?php
  32.  
  33. mysql_connect('localhost', 'kamil', '!QAZxsw2') or die('Błąd: Nie można połączyć z MySQL!');
  34. mysql_select_db('biblioteka') or die('Błąd: Nie można wybraż bazy danych!');
  35.  
  36. $wynik = mysql_query("SELECT * FROM czytelnik_ksiazka hw
  37. left join ksiazki k on hw.ID_KSIAZKI=k.ID
  38. left join czytelnicy c on hw.ID_CZYTELNIKA=c.ID ")
  39. or die('Błąd zapytania');
  40.  
  41.  
  42. if(mysql_num_rows($wynik) > 0) {
  43.  
  44. echo "<center><table border='2' width='80%' bordercolor='#000000' bgcolor='#FFCC99' cellpadding='2' bordercolorlight='#000000' bordercolordark='#000000' style='border-collapse: collapse'>";
  45. while($r = mysql_fetch_assoc($wynik)) {
  46.  
  47. echo "<tr>";
  48. echo "<td width='23%'><center>".$r['LOGIN']."</center></td>";
  49. echo "<td width='23%'><center>".$r['TYTUL']."</center></td>";
  50. echo "<td width='18%'><center>".$r['STATUS']."</center></td>";
  51. echo "<td width='18%'><center>".$r['DATA_WYPOZYCZENIA']."</center></td>";
  52. echo "<td width='18%'><center>".$r['DATA_PRZEDAWNIENIA']."</center></td>";
  53. echo "<td width='18%'><center><a href=\"czytelnikksiazka.php?a=del&amp;ID_CZYTELNIKA={$r['ID_CZYTELNIKA']};ID_KSIAZKI={$r['ID_KSIAZKI']}\"><img src='http://www.gci.czerniceborowe.pl/ico/04.png' alt='Usuń' border='0'></a><center></td>";
  54.  
  55.  
  56.  
  57. echo "</tr>";
  58. }
  59. echo "</table></center>";
  60. }
  61.  
  62. $a = trim($_GET['a']);
  63. $ID_CZYTELNIKA = trim($_GET['ID_CZYTELNIKA']);
  64. $ID_KSIAZKI = trim($_GET['ID_KSIAZKI']);
  65.  
  66. if($a == 'del' and !empty($ID_CZYTELNIKA)) {
  67.  
  68. /* usuwamy rekord */
  69. mysql_query("DELETE FROM czytelnik_ksiazka WHERE ID_CZYTELNIKA='$ID_CZYTELNIKA' and ID_KSIAZKI='$ID_KSIAZKI'")
  70. or die('Błąd zapytania: '.mysql_error());
  71.  
  72. echo "<script language='javascript' type='text/javascript'>alert('Wypozyczenie usunięte!'); </script>";
  73. echo '<script language="javascript"> setTimeout(\'document.location="czytelnikksiazka.php"\', 1000); </script>';
  74. } ?>
  75.  
  76. </body>
  77. </html>


ale niestety rekord się nie usuwa ;/ co robię źle?
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.