Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]PHP+SQL baza nie zapisuje danych ? Proszę o pomoc.
Forum PHP.pl > Forum > Przedszkole
mavricqs
Witam serdecznie oczywiście zaznaczę że są to moje pierwsze kroki z php i sql smile.gif siedzę nad tym problemem już 3 dzień i nie wiem co zrobić. Staram się stworzyć sobie stronę ułatwiającą mi pracę ogólny zarys jest taki że przez preg_match strona pobiera dane z allegro dane te chciałbym wysłać do bazy sql grupować je jako dzienne statystyki a następnie stworzyć sobie stronę generującą wykres uwzględniający dzienny przyrost w danych. Problemem jest dla mnie zapisanie danych do bazy sql korzystałem z tutka w którym podany był gotowy kod na którym postanowiłem się nauczyć zasad działania komunikacji php sql i niby wszystko działa ale jest taki problem że baza danych tworzy odpowiednia tabele dodaje w niej wiersz i poszczególne zmienne ale zmienne te są puste mimo że wcześniej podawane są ręcznie przez plik html. cały skrypt podzielony jest na kilka plików poniżej podaje ich kody.

P.S. Mój hosting to domeny.pl

Na początek html w którym pobierane są dane add.html
  1. <form action="insert.php" method="post">
  2. First Name: <input type="text" name="first"><br>
  3. Last Name: <input type="text" name="last"><br>
  4. Phone: <input type="text" name="phone"><br>
  5. Mobile: <input type="text" name="mobile"><br>
  6. Fax: <input type="text" name="fax"><br>
  7. E-mail: <input type="text" name="email"><br>
  8. Web: <input type="text" name="web"><br>
  9. <input type="Submit">
  10. </form>


Następnie dbinfo.inc.php
  1. <?
  2. $username="..."; // tu podaje nazwę użytkownika bazy danych
  3. $password="....."; // tu podaję hasło do bazy danych
  4. $database="......"; // tu podaje nazwę bazy danych
  5. ?>


Kolejny plik to insert.php czyli plik zapisujący dane do bazy
  1. <?
  2. include("dbinfo.inc.php");
  3. mysql_connect(localhost,$username,$password);
  4. @mysql_select_db($database) or die( "Unable to select database");
  5.  
  6. $query = "INSERT INTO contacts VALUES ('','$first','$last','$phone','$mobile','$fax','$email','$web')";
  7. mysql_query($query);
  8.  
  9. ?>


i plik index.php sterujący tym wszystkim
  1. <?
  2. include("dbinfo.inc.php");
  3. mysql_connect(localhost,$username,$password);
  4. @mysql_select_db($database) or die( "Unable to select database");
  5. $query="SELECT * FROM contacts";
  6. $result=mysql_query($query);
  7.  
  8. $num=mysql_numrows($result);
  9.  
  10.  
  11. echo "<b><center>Database Output</center></b><br><br>";
  12.  
  13. ?>
  14. <table border="0" cellspacing="2" cellpadding="2">
  15. <tr>
  16. <th><font face="Arial, Helvetica, sans-serif">Name</font></th>
  17. <th><font face="Arial, Helvetica, sans-serif">Phone</font></th>
  18. <th><font face="Arial, Helvetica, sans-serif">Mobile</font></th>
  19. <th><font face="Arial, Helvetica, sans-serif">Fax</font></th>
  20. <th><font face="Arial, Helvetica, sans-serif">E-mail</font></th>
  21. <th><font face="Arial, Helvetica, sans-serif">Website</font></th>
  22. </tr>
  23.  
  24. <?
  25. $i=0;
  26. while ($i < $num) {
  27. $first=mysql_result($result,$i,"first");
  28. $last=mysql_result($result,$i,"last");
  29. $phone=mysql_result($result,$i,"phone");
  30. $mobile=mysql_result($result,$i,"mobile");
  31. $fax=mysql_result($result,$i,"fax");
  32. $email=mysql_result($result,$i,"email");
  33. $web=mysql_result($result,$i,"web");
  34. ?>
  35.  
  36. <tr>
  37. <td><font face="Arial, Helvetica, sans-serif"><? echo "$first $last"; ?></font></td>
  38. <td><font face="Arial, Helvetica, sans-serif"><? echo "$phone"; ?></font></td>
  39. <td><font face="Arial, Helvetica, sans-serif"><? echo "$mobile"; ?></font></td>
  40. <td><font face="Arial, Helvetica, sans-serif"><? echo "$fax"; ?></font></td>
  41. <td><font face="Arial, Helvetica, sans-serif"><a href="mailto:<? echo "$email"; ?>">E-mail</a></font></td>
  42. <td><font face="Arial, Helvetica, sans-serif"><a href="<? echo "$web"; ?>">Website</a></font></td>
  43. </tr>
  44. <?
  45. ++$i;
  46. }
  47. echo "</table>";
  48.  
  49.  
  50. ?>


Proszę o pomoc bo naprawdę nie mogę zrozumieć dlaczego te dane nie są zapisywane w mojej bazie.
Nadmieniam że jeśli w bazie danych dodam wartości do odpowiednich pól ręcznie to dane są wyświetlane poprawnie
PanGuzol
Ponieważ masz wyłączone register_globals (i dobrze, że tak jest) więc zmienne $first, $last, $phone, $mobile, $fax, $email, $web w pliku insert.php są puste, wartości pól z twojego formularza znajdują się w tablicy $_POST.
mavricqs
Zmieniłem w pliku index kod na taki
  1. $first=mysql_result($result,$i,$_POST[first]);
  2. $last=mysql_result($result,$i,$_POST[last]);
  3. $phone=mysql_result($result,$i,$_POST[phone]);
  4. $mobile=mysql_result($result,$i,$_POST[mobile]);
  5. $fax=mysql_result($result,$i,$_POST[fax]);
  6. $email=mysql_result($result,$i,$_POST[email]);
  7. $web=mysql_result($result,$i,$_POST[web]);


W tej chwili we wszystkich polach zwracany jest $i czyli numer wiersza w tabeli.
PanGuzol
Czytanie ze zrozumieniem się kłania.
Pisałem o pliku insert a nie index.
mavricqs
Dziękuję bardzo za pomoc pomogło smile.gif
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.