Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Zwracanie rekordu "0"
Dominator
post
Post #1





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


Cześć

Mam taki "błąd" który polega na tym że gdy wpisuję do pola np: FORUM czy PROGRAMOWANIE to wyskakuje mi rekord 0

Dlaczego ?

  1. <form action="index.php" method="POST">
  2. Nick:<input type="text" name="nick"><br>
  3. Nagroda:<input type="text" name="prize"><br>
  4. <input type="submit" value="przeslij requesta" name="post">
  5.  
  6. <?php
  7. $polaczenie = mysql_connect('XXX', 'p1XXXXnato', 'XXXXXXXXXXXXXXXX') or die (mysql_error());
  8. $baza = mysql_select_db('pXXXr', $polaczenie) or exit(mysql_error());
  9.  
  10. if($_POST['post']){
  11. $nick = $_POST['nick'];
  12. $prize = $_POST['prize'];
  13. $dodaj = mysql_query("INSERT INTO wygrani (nick, prize) VALUES ('".$nick."', '".$prize."')", $polaczenie) or die(mysql_error());
  14. echo "Dodano";
  15. }
  16. ?>
  17. <br>
  18. Ci ktorzy wygrali to:
  19.  
  20. <?php
  21. include('db.php');
  22.  
  23. $zapytanie = "SELECT nick, prize FROM wygrani";
  24. $pobierz = mysql_query($zapytanie);
  25.  
  26. while($dane = mysql_fetch_array($pobierz))
  27. {
  28. echo $dane['nick'];
  29. echo $dane['prize'];
  30. }
  31.  
  32. ?>


pomoże ktoś ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
YaQzi
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 31
Dołączył: 12.10.2008
Skąd: WAT

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


  1. if($_POST['post'])

tu lepsze będzie
  1. if(isset($_POST['post']))


To samoprzetwarzający się form więc możesz z tego zrezygnować: action="index.php"

Co do błędu to sprawdź co będzie jak domkniesz formularz </form>
i te inputy też by było miło zakończyć /> a nie samym > chociaż to akurat powinno działać mimo wszystko

Jak to nic nie da to podaj strukturę tabeli 'wygrani' albo sprawdź jakieś "suche" zapytanie czy zadziała. np "INSERT INTO wygrani (nick, prize) VALUES ('testy', 'testy')"

Ten post edytował YaQzi 15.07.2011, 20:12:30


--------------------
 Wszystkie wielkości świata nie są tyle warte, co dobra przyjaźń...
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A ja tak z czystej ciekawości: co to jest rekord 0 ?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Rid
post
Post #4





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Nie podał Pan jakie typy komórek ma Pan w bazie danych,więc nie jestem pewny ,czy dobrze wnioskuję.
Jeśli ma Pan komórkę w bazie typu int,a do tej komórki nie zostały dodane dane ,baza danych wypluje wartość 0,gdyż
zmienna int nie jest typem nullable.
Go to the top of the page
+Quote Post
Armed
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 2.02.2008

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


Nie zrozumiałem jednej rzeczy, otóż dodaje do bazy 0 zamiast danych?
Czy "wypluwa" z bazy 0 mimo że w bazie jest dobrze.
Jeżeli w bazie 0 to zgadzam się z Rid'em otóż może masz błędne typy komórek.

PS. Doradzam zabezpieczenie $_POST


--------------------
Game-Dev.pl Tworzenie Gier to nasza Pasja!
Go to the top of the page
+Quote Post
Rid
post
Post #6





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Otóż tak jeśli do komórki typu int nie zostały wprowadzone żadne dane ,mimo ,że komórka ta ma ustawioną właściwość allow null,to do komórki tej zostanie wprowadzona wartość 0 ,gdyż zmienna typu int nie jest nullable w przeciwieństwie do stringa.
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: 21.08.2025 - 08:27