Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MySQL i wyniki zapytania w PHP (help)
Forum PHP.pl > Forum > PHP
marv
maly kodzik na poczatek:

<?

$srb=2.64;

mysql_connect ("localhost", "root", "") or die ("Nie można się połączyć z bazą danych");
mysql_select_db ("rad") or die ("Nie można połączyć się z bazą rad");

$wynik=mysql_query ("SELECT nazwisko FROM zawodnicy WHERE srb=$srb;") or die ("błąd w pytaniu");

$nazwisko=mysql_fetch_array($wynik);
echo($nazwisko[0]);

?>

dodam, ze kolumna "srb' w bazie jest typu float (zaokraglona do dwoch miejsc po przecinku)

kiedy wykonam to samo w zwyklym MySQL nie ma problemu .. dziala (oczywiscie wpisuje w zapytaniu 2.64) ale w php za cholere .. a najgorsze jest to ze calosc nie zwraca zadnego bledu ani nic .. jest zupelnie czysto po takiej "akcji" ..

kiedy wykonam identyczny kod ale np. na liczbach calkowitych w innej kolumnie wszystko dziala cacy .. tylko tego przypadku nie jestem w stanie naklonic do wspolpracy grrr... :cry:

rozwiazanie byc moze (ehh..) bedzie banalne ale nie moge go dostrzec :

prosze o pomoc bo juz mi normalnie rece opadaja sad.gif
hamlecik
jestem pierwszy biggrin.gif

BBCODE
cahe
Cytat
jestem pierwszy biggrin.gif

BBCODE


Kurde sad.gif 8)
cahe
[php:1:234b0c41ec]<?php
$srb=2.64;

mysql_connect ("localhost", "root", "") or die ("Nie można się połączyć z bazą danych");
mysql_select_db ("rad") or die ("Nie można połączyć się z bazą rad");

$wynik=mysql_query ("SELECT nazwisko FROM zawodnicy WHERE srb=$srb;") or die ("błąd w pytaniu");

$nazwisko=mysql_fetch_array($wynik);
echo($nazwisko['srb']); //<==== Tutaj zmiana
?>[/php:1:234b0c41ec]

Ten kod powinien zadziałać. Funkcja [manual:234b0c41ec]mysql_fetch_array[/manual:234b0c41ec] zwraca tablice w formie:
[php:1:234b0c41ec]
$zmienna['nazwa_pola_w_tabeli'] = "wartość";[/php:1:234b0c41ec]
spenalzo
Cytat
jestem pierwszy biggrin.gif

Naprawdę nie rozumiem tych wyścigów....
cahe
Cytat
Cytat
jestem pierwszy biggrin.gif

Naprawdę nie rozumiem tych wyścigów....


Ja tez... laugh.gif laugh.gif laugh.gif

Cytat
Cytat
jestem pierwszy biggrin.gif

BBCODE


Kurde sad.gif 8)


8)
KaMeLeOn
Ostrzegam, że następnym razem usunę te bzdurne posty...
cahe
Cytat
Ostrzegam, że następnym razem usunę te bzdurne posty...


Myślałem, że tylko na awatarze jesteś groźny... brrr rolleyes.gif

Ale co racja to racja - offtopic nie powinien być tolerowany :-).
q
Cytat
[php:1:ddfd06fe1f]<?php
<?

$srb=2.64;

mysql_connect ("localhost", "root", "") or die ("Nie można się połączyć z bazą danych");
mysql_select_db ("rad") or die ("Nie można połączyć się z bazą rad");

$wynik=mysql_query ("SELECT nazwisko FROM zawodnicy WHERE srb=$srb;") or die ("błąd w pytaniu");

$nazwisko=mysql_fetch_array($wynik);
echo($nazwisko[0]);

?>
?>[/php:1:ddfd06fe1f]


powinno byc chyba tak: zmienna w cudzyslowie (pojedynczym) i oczwiscie bez srednika na koncu

[php:1:ddfd06fe1f]<?php
wynik=mysql_query ("SELECT nazwisko FROM zawodnicy WHERE srb='$srb'") or die ("błąd w pytaniu");
?>[/php:1:ddfd06fe1f]
cahe
Cytat
powinno byc chyba tak: zmienna w cudzyslowie (pojedynczym) i oczwiscie bez srednika.


Chyba nie. Średnik też OK. Odpowiedź masz w moim poście, kilka wyżej.
marv
Cytat
[php:1:267d976757]<?php
echo($nazwisko['srb']); //<==== Tutaj zmiana
?>[/php:1:267d976757]

Ten kod powinien zadziałać.
[/php]


Nie pomaga ... nadal mam czysciutko .. zero bledow i zero wynikow :
cahe
Cytat
Cytat
[php:1:8d461fd590]<?php
echo($nazwisko['srb']); //<==== Tutaj zmiana
?>[/php:1:8d461fd590]

Ten kod powinien zadziałać.
[/php]


Nie pomaga ... nadal mam czysciutko .. zero bledow i zero wynikow :


Arrghh tongue.gif. Przepraszam! Tam powinno być :

[php:1:8d461fd590]<?php
echo($nazwisko['nazwisko']); //<==== Tutaj zmiana
?>[/php:1:8d461fd590]

Mój błąd.. nie doczytałem całego skryptu tongue.gif
KaMeLeOn
Sprawdz po zapytaniu czy wynik nie jest pusty, bo mysle że jednak jest...
[php:1:85994de693]<?php
print_r($nazwisko);
?>[/php:1:85994de693]
marv
[quote="q"][quote]

powinno byc chyba tak: zmienna w cudzyslowie (pojedynczym) i oczwiscie bez srednika na koncu

[/quote]

to rozwiazanie tez nie pomaga srednik jest na 100% ok ... hmm.. macie jeszcze jakies pomysly ? :?
cahe
Cytat
to rozwiazanie tez nie pomaga srednik jest na 100% ok ... hmm.. macie jeszcze jakies pomysly ?


Zobacz nad postem kameleona! :-)
q
cahe masz racje, srednik to faktycznie nie problem, o tym nie wiedzialem, wg mnie problem tkwi w apostrofach a wlasciwie ich braku przy zmiennej w zapytaniu, sprawdzalem u siebie i wtedy zapytanie rzeczywiscie nic nie zwraca

[php:1:0c678e4f4f]<?php
wynik=mysql_query ("SELECT nazwisko FROM zawodnicy WHERE srb='$srb'") or die ("błąd
w pytaniu");
?>[/php:1:0c678e4f4f]
cahe
Cytat
cahe masz racje, srednik to faktycznie nie problem, o tym nie wiedzialem, wg mnie problem tkwi w apostrofach a wlasciwie ich braku przy zmiennej w zapytaniu, sprawdzalem u siebie i wtedy zapytanie rzeczywiscie nic nie zwraca

[php:1:ff5ae343eb]<?php
wynik=mysql_query ("SELECT nazwisko FROM zawodnicy WHERE srb='$srb'") or die ("błąd
w pytaniu");
?>[/php:1:ff5ae343eb]


Wszystko OK, ale to jest liczba a nie string, więc apostrofy nie są konieczne.

Więc jeszcze raz mówie:

[php:1:ff5ae343eb]
<?php
echo($nazwisko['nazwisko']);
?>
[/php:1:ff5ae343eb]

Zadziała na 90%!
marv
Cytat
Sprawdz po zapytaniu czy wynik nie jest pusty, bo mysle że jednak jest...
[php:1:bcb5214fc7]<?php
print_r($nazwisko);
?>[/php:1:bcb5214fc7]


echo empty($nazwisko); zwraca mi slicznie "1", sprawdzilem wszystkie sposoby jakie podaliscie .. takze ich kombinacje .. i od trzech !@#$%^&* godzin mecze ten shit .. czuje ze zleci do rana jak tak dalej pojdzie :
KaMeLeOn
Cytat
echo empty($nazwisko); zwraca mi slicznie "1" [...]

To mówi samo za siebie wynik jest pusty...
Sprawdź zapytanie, a zwłaszcza nazwy kolumn...
marv
Cytat
Cytat
echo empty($nazwisko); zwraca mi slicznie "1" [...]

To mówi samo za siebie wynik jest pusty...
Sprawdź zapytanie, a zwłaszcza nazwy kolumn...


powoli od poczatku smile.gif

1. Ten kod ktory jest na poczatku tego watku winksmiley.jpg dziala SUPER przy liczbach typu int oraz stringach(wtedy jak pisze "q" dodaje apostrofy bo sa potrzebne)

2. Samo MySQL radzi sobie OK gdy wykonam to samo co tutaj ale zamiast zmiennej wrzuce to przeklete 2.64 do zapytania .. wynik jest dokladnie taki jak oczekuje

3. Caly problem zaczal sie jak wkladam to do php i robie w zapytaniu $srb zamiast 2.64

4. Praz setny sprawdzilem tak dla pewnosci winksmiley.jpg jak jest w bazie i sa kolumny "nazwisko"(char,25) oraz "srb"(float(4,2))

5. Sposob jaki proponuje cahe nie dziala ... nadal jest czysto :

6. Jezeli zmienna jest pusta (a wynika z tego ze jest) to gdzie tkwi problem ?

.. tyle pytan i zadnych odpowiedzi smile.gif
KaMeLeOn
Myślę, że problem tkwi w konwersji tej liczby ze stringa na float...
Ponieważ każde zapytanie wysyłane przez php jest stringiem najprawdopodobniej MySQL konwertuje to w taki sposób (a wydaje mi się że zaokrągla do typu int), że nie znajduje odpowiednika w tej kolumnie.
Spróbuj przekonwertować tę liczbę w samym zapytaniu na float...
marv
Cytat
Spróbuj przekonwertować tę liczbę w samym zapytaniu na float...


:idea: hmm.. co masz na mysli ? chyba nie wiem jak to zrobic :
KaMeLeOn
Cytat
:idea: hmm.. co masz na mysli ? chyba nie wiem jak to zrobic :

Hmm... zapomniałem, że MySQL nie posiada funkcji konwertującej dopiero chyba od wersji 4.0.2...
Widzisz w manualu MySQL piszą, że mogą występować problemy przy porównywaniu wartości typu float i double. Piszą również żeby nie ufać automatycznej konwersji przez MySQL, więc myślę że pozostanie przy wartości w apostrofach będzie najlepszym rozwiązaniem. Chociaż i tutaj mogą wystąpić w przyszłości problemy, bo rzadko porównuje się wartości zmiennoprzecinkowe w zapytaniach... praktycznie się tego nie robi.
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.