Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wstawianie do bazy
huka
post
Post #1





Grupa: Zarejestrowani
Postów: 96
Pomógł: 0
Dołączył: 10.03.2004
Skąd: Warszawa

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Mariusz(P)
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.12.2003
Skąd: Lublin

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


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
Go to the top of the page
+Quote Post
huka
post
Post #3





Grupa: Zarejestrowani
Postów: 96
Pomógł: 0
Dołączył: 10.03.2004
Skąd: Warszawa

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


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?
Go to the top of the page
+Quote Post
Vertical
post
Post #4





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


...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
Go to the top of the page
+Quote Post

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 - 22:18