Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie można dodać zera do rekordu
Forum PHP.pl > Forum > Przedszkole
adams1692
Witam,

Mam pewien problem nie mogę dodać cyfry 0 do żadnego rekordu w bazie danych natomiast wyższe liczby już wchodzą co może być przyczyną?
mortus
Może kolumna jest AUTO_INCREMENT-owana?
adams1692
Używam kolumny VARCHAR lub TEXT.
wujek2009
Jeszcze raz, masz kolumnę np. "cena" - którą masz zapisaną jako varchar/lub tekst i próbujesz dodać zero do tego stringa, tak? - Możesz udostępnić kod w jaki sposób to robisz + zrzut tabeli, którą próbujesz uaktualnić.
adams1692
Dokładnie tak chcę dodać 0 do stringa.

Poniżej daję kod formularza.
  1. <?php
  2. $result = dbquery("SELECT id, nazwa, ostatni, zolta, czerwona, info, klub, zdjecie FROM edycja_obronca WHERE id='".$_GET['id']."'");
  3. $data = mysql_fetch_assoc($result);
  4. ?>
  5.  
  6. <?php
  7. $image_files = makefilelist(BASEDIR."zawodnicy/", ".|..|index.php", true);
  8. $image_list = makefileopts($image_files);
  9. ?>
  10.  
  11. <form method="POST" action="/viewpage.php?page_id=228">
  12. <strong>
  13. Imię i Nazwisko:</strong><br />
  14. <input type="text" class='textbox' name="nazwa" value="<?php
  15. echo $data['nazwa'];
  16. ?>"><br /><br />
  17.  
  18. <strong>Minuty w ostatnim meczu:</strong><br />
  19. <input type="number" class='textbox' name="ostatni" value="<?php
  20. echo $data['ostatni'];
  21. ?>"><br /><br />
  22.  
  23. <strong>Ilość żółtych kartek:</strong><br />
  24. <input type="number" class='textbox' name="zolta" value="<?php
  25. echo $data['zolta'];
  26. ?>"><br /><br />
  27.  
  28. <strong>Ilość czerwonych kartek:</strong><br />
  29. <input type="number" class='textbox' name="czerwona" value="<?php
  30. echo $data['czerwona'];
  31. ?>"><br /><br />
  32.  
  33. <strong>Czy kontuzjowany?</strong><br />
  34. <select name="info" class="textbox">
  35. <option><?php
  36. echo $data['info'];
  37. ?></option>
  38. <option value="kontuzja">Kontuzjowany</option>
  39. <option value="zdrowy">Zdolny do gry</option>
  40. </select><br /><br />
  41.  
  42. <strong>Ostatni klub:</strong><br />
  43. <input type="text" class='textbox' name="klub" value="<?php
  44. echo $data['klub'];
  45. ?>"><br /><br />
  46.  
  47. <strong>Zdjęcie:</strong><br />
  48. <select name="zdjecie" class="textbox">
  49. <option><?php
  50. echo $data['zdjecie'];
  51. ?></option>
  52. <option>&nbsp;</option>
  53. <?php
  54. echo $image_list;
  55. ?>
  56. </select><br />
  57.  
  58. <br /><center><input class="button" type="submit" name="go" value="Wyślij"></center>
  59. </form>
  60.  
  61.  
  62. <?php
  63.  
  64. $result2 = dbquery("SELECT id FROM edycja_obronca WHERE id='".$_GET['id']."'");
  65. $data2 = mysql_fetch_assoc($result2);
  66.  
  67. if(isset($_POST['go'])){ // sprawdzamy czy kliknięto na przycisk do wysyłania formularza.
  68.  
  69.  
  70. if(!empty($nazwa) and !empty($ostatni) and !empty($zolta) and !empty($czerwona) and !empty($info) and !empty($klub) and !empty($zdjecie)){ // sprawdzamy czy zostały wypełnione wszystkie pola
  71.  
  72.  
  73. $zapytanie = "INSERT INTO edycja_obronca SET nazwa='$nazwa', ostatni='$ostatni', zolta='$zolta', czerwona='$czerwona', info='$info', klub='$klub', zdjecie='$zdjecie'";
  74. $wykonaj = dbquery ($zapytanie); // dodajemy rekord do bazy
  75.  
  76. if($wykonaj == 'TRUE'){
  77.  
  78. echo '<br><center><b>Zaktualizowano</b></center>'; // wyświetlamy komunikat o poprawnym dodaniu rekordu do bazy
  79.  
  80. }
  81.  
  82. } else {
  83.  
  84. echo '<br><center><b>Nie wypełniłeś wszystkich pól!</b></center>'; // wyświetlamy komunikat o błędnym wypełnieniu formularza
  85.  
  86. }
  87.  
  88. }
  89.  
  90. ?>


A tutaj zrzut tabeli:
  1. -- phpMyAdmin SQL Dump
  2. -- version 3.5.6
  3. -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
  4. --
  5. -- Host: localhost
  6. -- Czas wygenerowania: 06 Kwi 2013, 11:43
  7. -- Wersja serwera: 5.1.65
  8. -- Wersja PHP: 5.3.21
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11. SET time_zone = "+00:00";
  12.  
  13. --
  14. -- Baza danych: `adams16_a`
  15. --
  16.  
  17. -- --------------------------------------------------------
  18.  
  19. --
  20. -- Struktura tabeli dla tabeli `edycja_obronca`
  21. --
  22.  
  23. CREATE TABLE IF NOT EXISTS `edycja_obronca` (
  24. `id` int(11) NOT NULL AUTO_INCREMENT,
  25. `nazwa` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  26. `ostatni` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  27. `zolta` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  28. `czerwona` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  29. `info` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  30. `klub` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  31. `zdjecie` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  32. `strona` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  33. PRIMARY KEY (`id`)
  34. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=4 ;
  35.  
  36. --
  37. -- Zrzut danych tabeli `edycja_obronca`
  38. --
  39.  
  40. INSERT INTO `edycja_obronca` (`id`, `nazwa`, `ostatni`, `zolta`, `czerwona`, `info`, `klub`, `zdjecie`, `strona`) VALUES
  41. (1, 'Wojciech Odrowski', '-', '-', '-', 'zdrowy', 'LKS Ślesin', 'wojciechodrowski.png', ''),
  42. (2, 'Sławomir Sałaciński', '-', '-', '-', 'kontuzja', 'Orzeł Parzęczew', 'salata.png', ''),
nospor
No i gdzie w tym kodzie niby próbujesz dodać te 0?

Jeśli masz na myśli ten kawałek kodu:
if(!empty($nazwa) and !empty($ostatni) and !empty($zolta) and !empty($czerwona) and !empty($info) and !empty($klub) and !empty($zdjecie)){ // sprawdzamy czy zostały wypełnione wszystkie pola

$zapytanie = "INSERT INTO edycja_obronca SET nazwa='$nazwa', ostatni='$ostatni', zolta='$zolta', czerwona='$czerwona', info='$info', klub='$klub', zdjecie='$zdjecie'";

$wykonaj = dbquery ($zapytanie); // dodajemy rekord do bazy

To po pierwsze:
nigdzie tutaj nie dodajesz nic do stringa jak sugerujesz, a najzwyklej w swiecie próbujesz dodać nowy rekord z pewnymi wartosciami

A po drugie, jesli to faktycznie to jest ten kod, to niby jakim cudem ma ci się coś dodac, skoro masz warunek
if(!empty($nazwa) and !empty($ostatni) and !empty($zolta) and !empty($czerwona) and !empty($info) and !empty($klub) and !empty($zdjecie)){ //
A przecież 0 jest "puste" i !empty(0) nigdy nie będzie prawdziwe a co zatym idzie nigdy nie dojdzie ci do INSERT.

przenosze na przedszkole
adams1692
Więc jak to zmienić żebym mógł dodać to 0?
Michael2318
Zacznij od znalezienia różnicy pomiędzy ZAKTUALIZOWANIEM rekordu, a DODANIEM nowego.
nospor
Przecież ci napisałem:
twoje warunki
if(!empty($nazwa) and !empty($ostatni) and !empty($zolta) and !empty($czerwona) and !empty($info) and !empty($klub) and !empty($zdjecie))
nie są spelnione dla 0. Pomysł nad tym...
adams1692
Poradziłem sobie, dzięki za wskazanie przyczyny.
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.