Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Dopisywanie do bazy danych
Forum PHP.pl > Forum > Przedszkole
Czesuaf
jest problem dodałem do tej ksiażki telefonicznej możliwość wpisu. Wszystko fajnie gra wpisuje ale nie pokazuje puste pola sie robia ... tu jest cały kod:

  1. <html>
  2.  
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  5. <title>Czytanie z bazy danych</title>
  6. </head>
  7. <body>
  8. <?
  9. mysql_connect("localhost", "root", "krasnal") or
  10. die("Nie można połączyć się z MySQL");
  11. mysql_select_db("cwphp") or
  12. die("Nie można połązyć sie z bazą cwphp");
  13.  
  14. if ($_POST['co'] == 'dodaj') {
  15. if ($_POST['Imię'] && $_POST['Nazwisko'] && $_POST['Telefon']) {
  16. $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, ";
  17. $query .="telefon) VALUES ('".$_POST['imie']."', '".$_POST['nazwisko']."',
  18. '".$_POST['telefon']."');";
  19. $wynik = mysql_query ($query);
  20. }
  21. } elseif ($_GET['co'] == 'skasuj') {
  22. $wynik = mysql_query
  23.  ("DELETE FROM ksiazkatelefoniczna WHERE nr = '".$_GET['id']."';");
  24. }
  25. $wynik = mysql_query("SELECT * FROM `ksiazkatelefoniczna` ORDER BY `Nr` DESC LIMIT 0 , 5");
  26.  
  27. print "<TABLE CELLPADDING=5 BORDER=1>";
  28. print "<TR><TD><B>Imię</B></TD><TD><B>Nazwisko</B></TD>";
  29. print "<TD><B>Telefon</B></TD><TD></TD></TR>\n";
  30.  
  31. while ($rekord = mysql_fetch_assoc($wynik)) {
  32. $nr = $rekord['nr'];
  33. $imie = $rekord['imie'];
  34. $nazwisko = $rekord['nazwisko'];
  35. $telefon = $rekord['telefon'];
  36.  
  37. print "<TR><TD>$imie</TD><TD>$nazwisko</TD><TD>$telefon</TD><TD>";
  38. print "<A HREF=\"4-28.php?co=skasuj&id=$nr\">skasuj</A></TD></TR>\n";
  39.  
  40. }
  41. print "</TABLE>";
  42. print '<FORM METHOD="POST">Nowy rekord:';
  43. print '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj"><TABLE>';
  44. print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" ';
  45. print 'NAME="Imię"></TD></TR><TR><TD>Nazwisko:</TD><TD><INPUT ';
  46. print 'TYPE="text" NAME="Nazwisko"></TD></TR><TR><TD>Telefon:</TD>';
  47. print '<TD><INPUT TYPE="text" NAME="Telefon"></TD></TR>';
  48. print '</TABLE><INPUT TYPE="submit" VALUE="Dodaj"></FORM>';
  49. ?>
  50.  
  51. </body>
  52.  
  53. </html>


I mam pytanie czy istnieje możliwość żeby podczas odświerzania strony nie dodawaly sie te same informacje ? Poprostu jak nasiśnie się odświerz to niech nic nie dopisuje... sad.gif
Spirit86
pobierasz ostatni rekord i porównujesz go do obecnego.

  1. SELECT imie, nazwisko
  2. FROM tabele
  3. ORDER BY id DESC LIMIT 1
Czesuaf
Hmm zrobiłem tak jak powiedziałeś i dalej to samo sad.gif
Master Miko
Czy mógłbyś wytłumaczyć problem lepiej?
Cytat
jest problem dodałem do tej ksiażki telefonicznej możliwość wpisu. Wszystko fajnie gra wpisuje ale nie pokazuje puste pola sie robia ... tu jest cały kod:


Nie rozumiem.

PS. zmień linię

  1. <?php
  2. print '<FORM METHOD="POST">Nowy rekord:';
  3. ?>


na

  1. <?php
  2. print '<FORM METHOD="POST" action="nazwa_skryptu.php">Nowy rekord:';
  3. ?>
Czesuaf
Cytat(Master Miko @ 2006-03-04 16:35:49)
Czy mógłbyś wytłumaczyć problem lepiej?
Cytat
jest problem dodałem do tej ksiażki telefonicznej możliwość wpisu. Wszystko fajnie gra wpisuje ale nie pokazuje puste pola sie robia ... tu jest cały kod:


Nie rozumiem.

PS. zmień linię

  1. <?php
  2. print '<FORM METHOD="POST">Nowy rekord:';
  3. ?>


na

  1. <?php
  2. print '<FORM METHOD="POST" action="nazwa_skryptu.php">Nowy rekord:';
  3. ?>

Ok wyjaśnie to tak.

Kiedy wpisuje dane do pola daje Submit to dodaje sie nowy rekord tylko ze on nie wyświetla informacji przeze mnie wpisanych poprostu puste pola są i zmieniłem tak jak mówiłeś i dalej ten sam problem.
Master Miko
aha czyli o to Ci chodzi:

1. Wpisujesz dane do inputów (imie,nazwisko,telefon)
2. Klikasz submit - dodaje Ci to do bazy danych

i teraz

3a - chcesz żeby znowu pojawiły się w inputach
czy
3b - chcesz aby te dane pojawiły się w linii:
  1. <?php
  2.  
  3. while ($rekord = mysql_fetch_assoc($wynik)) {
  4. $nr = $rekord['nr'];
  5. $imie = $rekord['imie'];
  6. $nazwisko = $rekord['nazwisko'];
  7. $telefon = $rekord['telefon'];
  8.  
  9. print "<TR><TD>$imie</TD><TD>$nazwisko</TD><TD>$telefon</TD><TD>";
  10. print "<A HREF=\"4-28.php?co=skasuj&id=$nr\">skasuj</A></TD></TR>\n";
  11.  
  12. }
  13.  
  14. ?>




Dobrze zrozumiałem?
Czesuaf
Cytat(Master Miko @ 2006-03-04 16:49:44)
aha czyli o to Ci chodzi:

1. Wpisujesz dane do inputów (imie,nazwisko,telefon)
2. Klikasz submit - dodaje Ci to do bazy danych

i teraz

3a - chcesz żeby znowu pojawiły się w inputach
czy
3b - chcesz aby te dane pojawiły się w linii:
  1. <?php
  2.  
  3. while ($rekord = mysql_fetch_assoc($wynik)) {
  4.     $nr = $rekord['nr'];
  5.     $imie = $rekord['imie'];
  6.     $nazwisko = $rekord['nazwisko'];
  7.     $telefon = $rekord['telefon'];
  8.     
  9.     print "<TR><TD>$imie</TD><TD>$nazwisko</TD><TD>$telefon</TD><TD>";
  10.     print "<A HREF=\"4-28.php?co=skasuj&id=$nr\">skasuj</A></TD></TR>\n";
  11.     
  12. }
  13.  
  14. ?>




Dobrze zrozumiałem?

hmm może ja dam screena smile.gif

Tu masz linka

I takie puste pola mi się robią
Master Miko
Problem jest chyba z query. Dodaje, ale nie tak jak trzeba:
  1. <?php
  2.  
  3.         $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, ";
  4.         $query .="telefon) VALUES ('".$_POST['imie']."', '".$_POST['nazwisko']."',
  5.         '".$_POST['telefon']."');";
  6.  
  7. ?>


Spóbuj może:
  1. <?php
  2.  
  3. $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, telefon) VALUES (" .$_POST['imie'] . ", " .$_POST['nazwisko'] . ", " . $_POST['telefon'] . ")";
  4.  
  5. ?>



Poza tym jeśli chcesz, żeby Ci to dobrze działało pomyśl o zabezpieczeniach.
Nie wolno tak robić - Post w query do mysql. A nuż hacker wlepi Ci jakiś kod?
Czesuaf
Nie działa sad.gif
Master Miko
No to nie wiem! Spróbuj tak:

  1. <?php
  2.  
  3. $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, ";
  4. $query .="telefon) VALUES ('".$_POST['imie']."', '".$_POST['nazwisko']."',
  5. '".$_POST['telefon']."');";
  6. $wynik = mysql_query ($query);
  7.  
  8. ?>

NA
  1. <?php
  2.  
  3.  
  4. $imie = $_POST['Imie'];
  5. $nazwisko = $_POST['Nazwisko'];
  6. $telefon = $_POST['Telefon'];
  7.  
  8. $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, telefon) VALUES ('$imie', '$nazwisko', '$telefon')";
  9. $wynik = mysql_query ($query);
  10.  
  11.  
  12.  
  13. ?>
Czesuaf
Działa exclamation.gif dzieki wielkie smile.gif
Master Miko
Poprostu nie zgadzało mu się formatowanie - za dużo tych ' ' "" ''.
I pamiętaj - jeśli chcesz to postawić na zewnątrz to daj na to blokady - limitowaną długość liter - a w numerze telefonu sprawdź czy wszystkie znaki są cyframi
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.