Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wstawianie do bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
huka
Hej,

mam problem z napisaniem skryptu który wstawiałby do bazy dane. Chodzi mi o to że robie taki programik do testów i niestety utknąłem w pewnym miejscu. Skrypt powinien wstawiać do tabeli dane podane na formularzu oraz dane wybrane z listy(dane te zapisane są już w innej tabeli).
Problem pojawia sie w momencie dodawania poniewaz wogle nie chce mi wpisywać do tabeli. Nie wiem dlaczego tak sie dzieje. Jak macie pomysł jak to rozwiązać to dajcie znać.
Napisany przeze mnie skrypt wygląda tak:
  1. <?php
  2.  
  3. $db_name = &#092;"generator\";
  4. $con = mysql_connect(&#092;"localhost\") or die(\"Blad otwarcia bazy\");
  5. $db = mysql_select_db($db_name, $con) or die(&#092;"Otwarcie tabeli\");
  6. $sql = &#092;"SELECT ID_prowadzacego, Nazwisko, Imie FROM Prowadzacy ORDER BY Nazwisko \";
  7. $result = mysql_query($sql, $con) or die(&#092;"Polaczenie z baza nie udalo sie\");
  8. echo &#092;"<select name=ID_prowadzacego>\"; 
  9. while($row = mysql_fetch_array($result)) { 
  10. echo &#092;"<option value=\".$row['ID_prowadzacego'].\">\".$row['Nazwisko'].\"n\"; 
  11. }
  12. echo &#092;"</select>\";
  13. $sql2 = &#092;"SELECT ID_przedmiotu, Nazwa_przedmiotu FROM Przedmioty ORDER BY Nazwa_przed
    m
  14. otu \";
  15. $result2 = mysql_query($sql2, $con) or die(\"Polaczenie z baza nie udalo sie\");
  16. echo \"<select name=ID_przedmiotu>\"; 
  17. while($row = mysql_fetch_array($result2)) { 
  18. echo \"<option value=\".$row['ID_przedmiotu'].\">\".$row['Nazwa_przedmiotu'].\"n\";
  19. }
  20. echo \"</select>\";
  21.  
  22. if( isset($_POST['Nazwa_testu']) and isset($_POST['Temat_testu']) and isset($_POST['Poziom_testu'])) {
  23. $sql3 = \"insert into Testy values('null','$ID_prowadz','$ID_przedmiotu','\".$_POST['Nazwa_testu'].\"','\".$_POST['Temat_testu'].\"','\".$_POST['Poziom_testu'].\"')\";
  24. $result3 = mysql_query($sql3, $con) or die(\"Polaczenie z baza nie udalo sie\");
  25. }
  26.  
  27. ?>


skrypt ten powinien jeszcze wstawiać w polu Id_prowadz i Id_przedmiotu pobrany identyfikator z innych tabel odpowiednio przypisany do prowadzącego i do przedmiotu.
Mariusz(P)
Nie powinienem ci podawać na tacy rozwiązania ale zrobię wyjątek.
  1. <?php require_once('Connections/localhost.php'); ?>
  2. <?php
  3. function GetSQLValueString($theValue, $theType, $theDefinedValue = &#092;"\", $theNotDefinedValue = \"\") 
  4. {
  5. $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
  6.  
  7. switch ($theType) {
  8. case &#092;"text\":
  9. $theValue = ($theValue != &#092;"\") ? \"'\" . $theValue . \"'\" : \"NULL\";
  10. break;
  11. case &#092;"long\":
  12. case &#092;"int\":
  13. $theValue = ($theValue != &#092;"\") ? intval($theValue) : \"NULL\";
  14. break;
  15. case &#092;"double\":
  16. $theValue = ($theValue != &#092;"\") ? \"'\" . doubleval($theValue) . \"'\" : \"NULL\";
  17. break;
  18. case &#092;"date\":
  19. $theValue = ($theValue != &#092;"\") ? \"'\" . $theValue . \"'\" : \"NULL\";
  20. break;
  21. case &#092;"defined\":
  22. $theValue = ($theValue != &#092;"\") ? $theDefinedValue : $theNotDefinedValue;
  23. break;
  24. }
  25. return $theValue;
  26. }
  27.  
  28. $editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
  29. if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
  30. $editFormAction .= &#092;"?\" . $HTTP_SERVER_VARS['QUERY_STRING'];
  31. }
  32.  
  33. if ((isset($HTTP_POST_VARS[&#092;"MM_insert\"])) && ($HTTP_POST_VARS[\"MM_insert\"] == \"form1\")) {
  34. $insertSQL = sprintf(&#092;"INSERT INTO testy (Id_testu, ID_prowadz, ID_przedmiotu, Nazwa_testu, Temat_testu, Poziom_testu) VALUES (%s, %s, %s, %s, %s, %s)\",
  35.  GetSQLValueString($HTTP_POST_VARS['Id_testu'], &#092;"int\"),
  36.  GetSQLValueString($HTTP_POST_VARS['ID_prowadz'], &#092;"int\"),
  37.  GetSQLValueString($HTTP_POST_VARS['ID_przedmiotu'], &#092;"int\"),
  38.  GetSQLValueString($HTTP_POST_VARS['Nazwa_testu'], &#092;"text\"),
  39.  GetSQLValueString($HTTP_POST_VARS['Temat_testu'], &#092;"text\"),
  40.  GetSQLValueString($HTTP_POST_VARS['Poziom_testu'], &#092;"int\"));
  41.  
  42. mysql_select_db($database_localhost, $localhost);
  43. $Result1 = mysql_query($insertSQL, $localhost) or die(mysql_error());
  44. }
  45.  
  46. mysql_select_db($database_localhost, $localhost);
  47. $query_prowadzacy = &#092;"SELECT * FROM prowadzacy ORDER BY Nazwisko ASC\";
  48. $prowadzacy = mysql_query($query_prowadzacy, $localhost) or die(mysql_error());
  49. $row_prowadzacy = mysql_fetch_assoc($prowadzacy);
  50. $totalRows_prowadzacy = mysql_num_rows($prowadzacy);
  51.  
  52. mysql_select_db($database_localhost, $localhost);
  53. $query_przedmioty = &#092;"SELECT * FROM przedmioty ORDER BY Nazwa_przedmiotu ASC\";
  54. $przedmioty = mysql_query($query_przedmioty, $localhost) or die(mysql_error());
  55. $row_przedmioty = mysql_fetch_assoc($przedmioty);
  56. $totalRows_przedmioty = mysql_num_rows($przedmioty);
  57. ?>

  1. <title>Untitled Document</title>
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  3. </head>
  4.  
  5. <form method="post" name="form1" action="<?php echo $editFormAction; ?>">
  6. <table align="center">
  7. <tr valign="baseline">
  8. <td nowrap align="right">Prowadzšcy:</td>
  9. <td> <select name="ID_prowadz">
  10. <?php
  11. do {
  12. ?>
  13. <option value="<?php echo $row_prowadzacy['ID_prowadzacego']?>" <?php if (!(strcmp($row_prowadzacy['ID_prowadzacego'], $row_prowadzacy['Nazwisko']))) {echo "SELECTED";} ?>><?php echo $row_prowadzacy['Nazwisko']?></option>
  14. <?php } while ($row_prowadzacy = mysql_fetch_assoc($prowadzacy));
  15. ?>
  16. </select> </td>
  17. <tr>
  18. <tr valign="baseline">
  19. <td nowrap align="right">Przedmiot:</td>
  20. <td> <select name="ID_przedmiotu">
  21. <?php
  22. do {
  23. ?>
  24. <option value="<?php echo $row_przedmioty['ID_przedmiotu']?>" <?php if (!(strcmp($row_przedmioty['ID_przedmiotu'], $row_przedmioty['Nazwa_przedmiotu']))) {echo "SELECTED";} ?>><?php echo $row_przedmioty['Nazwa_przedmiotu']?></option>
  25. <?php } while ($row_przedmioty = mysql_fetch_assoc($przedmioty));
  26. ?>
  27. </select> </td>
  28. <tr>
  29. <tr valign="baseline">
  30. <td nowrap align="right">Nazwa_testu:</td>
  31. <td><input type="text" name="Nazwa_testu" value="" size="32"></td>
  32. </tr>
  33. <tr valign="baseline">
  34. <td nowrap align="right">Temat_testu:</td>
  35. <td><input type="text" name="Temat_testu" value="" size="32"></td>
  36. </tr>
  37. <tr valign="baseline">
  38. <td nowrap align="right">Poziom_testu:</td>
  39. <td><input type="text" name="Poziom_testu" value="" size="32"></td>
  40. </tr>
  41. <tr valign="baseline">
  42. <td nowrap align="right">&nbsp;</td>
  43. <td><input type="submit" value="Insert Record"></td>
  44. </tr>
  45. </table>
  46. <input type="hidden" name="Id_testu" value="">
  47. <input type="hidden" name="MM_insert" value="form1">
  48. </form>
  49. <p>&nbsp;</p>
  50.  
  51. </body>
  52. </html>

  1. <?php
  2. mysql_free_result($prowadzacy);
  3.  
  4. mysql_free_result($przedmioty);
  5. ?>


i jeszcze plik localhost.php
  1. <?php
  2. $hostname_localhost = &#092;"localhost\";
  3. $database_localhost = &#092;"nazwa twojej bazy danych\";
  4. $username_localhost = &#092;"nazwa użytkownika\";
  5. $password_localhost = &#092;"hasło\";
  6. $localhost = mysql_pconnect($hostname_localhost, $username_localhost, $password_localhost) or die(mysql_error());
  7. ?>


pozdrawiam
huka
Wielkie dzięki za podesłanie gotowca.

Jednak mam jeszcze mały problem bo wywala mi podczas uruchamiania błąd:
Kod
Failed opening required 'Connections/localhost.php' (include_path='.;c:\apache\php\pear') in c:\apache\htdocs\generator\stronka.php on line 1


może to jest związane z tym że mam starszą wersje php i poprostu nie obsługuje tej funkcji?

I jeszcze jedno w którym miejscu mam wykorzystać ten fragment kodu
  1. <?php
  2. mysql_free_result($prowadzacy);
  3.  
  4. mysql_free_result($przedmioty);
  5. ?>


i jeżeli dobrze sie domyślam to html jest w oddzielnym pliku?
Vertical
...Jeśli chcesz dodać do bazy dane, powinieneś użyć INSERT
  1. <?php
  2. $sql = &#092;"INSERT INTO tabela VALUES('dane1', 'dane2')\";
  3. ?>

Jeśli to stasujesz, skrypt nie ma prawa odmówić Ci posłuszeństwa
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.