Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]jak zmusić php aby pobrał ciąg (typu VARCHAR) "1-0" ...
Forum PHP.pl > Forum > Przedszkole
heniu87
witam, pytanie jak w temacie.

Poniższy skrypt zwraca mi niestety jedynkę:

  1. <?php
  2. while ($row = mysql_fetch_array($result))
  3. {
  4. $wynik = $row['wynik'];
  5. $ss_wynik = stripslashes($wynik);
  6. echo "<tr><form action=index.php method=post><td>" . 
  7. $row['g1'] . " (" . $row['c1'] . ")</td><td>" . 
  8. "<select name=wynik><option>" . $ss_wynik . "<option>" . JEDEN . "<option>" . ZERO . "<option>brak&nbsp;rozstrzygnięcia</select></td><td>" . 
  9.  
  10. (...)
  11. ?>
mariuszn3
Gdzie Ci tą jedynkę wywala i z czego ma niby powstać '1-0' ?
heniu87
ups, pomylilem sie - blad pojawia sie przed wprowadzeniem wpisu do bazy danych, problem lezy w czym innym:

mam sobie pewien formularz z rozwijalna lista typu <select>, działa poprawnie, wyswietla sie "1-0".

  1. <?php
  2. echo "<tr><form action=index.php method=post><td>" . 
  3. $row['g1'] . " (" . $row['c1'] . ")</td><td>" . 
  4. "<select name=wynik><option>" . $ss_wynik . "<option>1-0
  5. (...)
  6. ?>


po nacisnieciu przycisku submit pobierane sa zmienne metoda post:

  1. <?php
  2. $id = $_POST['id'];
  3. $wynik = $_POST['wynik'];
  4. echo "$wynik<br>";
  5. ?>


nadal dziala poprawnie, wyswietla sie "1-0"

ale gdy trzeba to wyslac do bazy danych:

  1. <?php
  2. if ($id != '')
  3. {
  4. $query = "UPDATE mecze SET wynik = $wynik WHERE id = $id";
  5. mysql_query($query);
  6. echo "zmieniono wynik meczu o id $id na $wynik !";
  7. }
  8. ?>


to zamiast "1-0" wysyła do mysql "1".

Jak temu zaradzić?
mariuszn3
Jeśli chcesz dodać do bazy wynik jako ciąg znaków a nie liczbę to musisz go wziąść w cudzysłów..
Nie mniej nadal nie rozumiem, czemu Ci się wyświetla 1..
Co się dzieje pomiędzy drugim a trzecim kodem, które teraz podałeś, następują bezpośrednio po sobie?
nospor
Cytat
Jeśli chcesz dodać do bazy wynik jako ciąg znaków a nie liczbę to musisz go wziąść w cudzysłów..
Prawda smile.gif

Cytat
Nie mniej nadal nie rozumiem, czemu Ci się wyświetla 1..
No to juz sobie sam odpowiedziales. jak wyglada jego zapytanie?
  1. ..... wynik = 1-0.....

Czyli do wynik wejdzie wynik dzialania: 1-0 czyli 1 smile.gif
Jaky wzial w cudzyslowy:
  1. ..... wynik = '1-0'.....
To by bylo git

proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole
mariuszn3
nospor ale zwróć uwagę, że w ostatnim przykładzie w echo on wkłada tą samą (niezmienioną) zmienną, którą wkładał do zapytania.. zmienna $wynik to nie jest wynik zapytania, gdyby tak było, byłoby to dla mnie jasne.

Jeśli przed wykorzystaniem w zapytaniu zmienna wynik ma wartość '1-0' to czemu miała by mieć inną potem (bez żadnej modyfikacji). php przecież nie wpiszę tam jedynki, bo MySQL tak wykalkulowało sobie jej zawartość smile.gif
nospor
@mariuszn3 ale zwroc na jedna rzecz jaką on napisal:
Cytat
to zamiast "1-0" wysyła do mysql "1".

Wyraźnie jest napisane, ze do bazy wkladane jest 1.

Autor topicu nie napisal ze kod:
  1. <?php
  2. echo "zmieniono wynik meczu o id $id na $wynik !"
  3. ?>
zwraca mu na koniec 1, tylko ze do mysql idzie 1. to roznica smile.gif
mariuszn3
aa tak masz rację.. zwracam honor.. nie doczytałem smile.gif
heniu87
ok działa, wielkie dzieki!

zamieniłem
  1. <?php
  2. $wynik
  3. ?>

na
  1. <?php
  2. '$wynik'
  3. ?>


Myślałem że tak nie można, bo wysle mi wtedy "$wynik" do bazy danych i potrzeba do tego jakiejs nieznanej mi funkcji... Kto by pomyslal ze to takie proste... biggrin.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.