Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dziwny wynik prostego zapytania mysql
Forum PHP.pl > Forum > Przedszkole
maraska
Robię w php proste zapytanie mysql do tabeli w której są nazwy miast
  1. $sql_miasta = mysql_query("SELECT miejscowosc FROM `tabela` WHERE (coś tam...) LIMIT 0,14");
  2.  
  3. $res = mysql_fetch_array ($sql_miasta);
  4.  
  5. $results = $res["miejscowosc"];
  6.  
  7. echo $result;
  8.  


Wynik wygląda tak:
  1. Gdynia ttt56064
  2. Wisełka ttt56064
  3. Warszawa ttt56064
  4. Gdańsk ttt56064
  5. SOPOT ttt56064
  6. ...itd


Pytanie, skąd się biorą te "ttt56064" i jak się tego pozbyć.
Z góry dziękuję za pomoc.
dublinka
$results czy $result
maraska
Dziękuję za zainteresowanie

$results.

Wynik wygląda tak
  1. Ostrów WielkopolskiKąty Wrocławskie ttt56064
  2. Gdynia ttt56064
  3. Wisełka ttt56064
  4. Warszawa ttt56064
  5. Gdańsk ttt56064
  6. SOPOT ttt56064
  7. ...itd


Generalnie, chcę doprowadzić do postaci:
  1. Ostrów Wielkopolski, Kąty Wrocławskie, Gdynia, Wisełka ....
viking
Samo się to na pewno nie dopisuje. Dumpuj zmienne i zobacz jaki jest wynik.
Ps. Rozszerzenia mysql nie ma w php od lat. Może pora zrobić update?
maraska
Cytat(viking @ 25.04.2021, 20:00:18 ) *
Samo się to na pewno nie dopisuje. Dumpuj zmienne i zobacz jaki jest wynik.
Ps. Rozszerzenia mysql nie ma w php od lat. Może pora zrobić update?


Dla zapytania sql o dowolne Limit 2, var_dump($res)

wynik:
  1. array(2) { [0]=> string(10) "Pyrzowice " ["miejscowosc"]=> string(10) "Pyrzowice " } Mielno ttt56064

Zawsze pierwszy jest OK a następne z tym "ttt56064" które znaczy błąd tylko czemu?
dublinka
Sprawdzales co jest w bazie ?
maraska
Jasne. W bazie jest OK
dublinka
To pokaz to wszystko
maraska
Cytat(dublinka @ 25.04.2021, 20:51:28 ) *
To pokaz to wszystko

Ale co wszystko? smile.gif

Zapytanie jest takie, że prościej się nie da
  1. $sql_miasta = mysql_query("SELECT miejscowosc FROM `tabela` LIMIT 13,2");

Wynik dostaję taki jak pokazałem. W pma miasta są wyświetlane poprawnie.
var_dump pokazuje, że tablica sypie się po pierwszym rekordzie.
Bez względu na to, o które rekordy zapytam (LIMIT 0,2; 100,20 itp.)
  1. array(2) { [0]=> string(6) "Płock" ["miejscowosc"]=> string(6) "Płock" } Zielona Góra ttt56064

Czemu?
nospor
Pokaz caly kod a nie jakies wyrywki z ktorych nic nie wynika
Pyton_000
pokaż cały kod który wykonujesz.
maraska
Cytat(nospor @ 26.04.2021, 11:24:02 ) *
Pokaz caly kod a nie jakies wyrywki z ktorych nic nie wynika


Pokazałem na początku. Nie chodziło więc testuję zapytanie w pliku php w którym nic więcej nie ma
  1. $sql_miasta = mysql_query("SELECT miejscowosc FROM `tabela` LIMIT 13,4");
  2.  
  3. $res = mysql_fetch_array ($sql_miasta);
  4.  
  5. var_dump($res);
  6.  


Wynik - teraz jeszcze inaczej
  1. array(2) { [0]=> string(6) "Płock" ["miejscowosc"]=> string(6) "Płock" }


Wynik w pma:
Płock
Zielona Góra
Chęciny
Gdańsk
nospor
Nie, nadal nie pokazalescalego kodu. Kod co pokazujesz wyswietla TYLKO JEDEN rekord, zas marudzisz ze ci sie psuje gdy wyswietlasz wiecej wiec masz gdzies tam petle czy cos takiego....
maraska


  1. include_once('baza.php'); // Polaczenie z baza
  2.  
  3. $sql_miasta = mysql_query("SELECT `miejscowosc` FROM `tabela` LIMIT 13,4");
  4.  
  5. $res = mysql_fetch_array ($sql_miasta);
  6.  
  7.  
  8.  
  9. $results = $res["miejscowosc"];
  10.  
  11.  
  12. //while ($row = mysql_fetch_assoc($sql_miasta)) {
  13. //echo $row["id"];
  14. // echo $row["miejscowosc"];
  15. //}
  16.  
  17. echo '<br><br>';
  18.  
  19. //echo $results;
  20. var_dump($res);
  21. //print_r($sql_miasta, false);
nospor
Ostatni raz:
kod co tu pokazujesz nie generuje bledu o ktorym mowisz. Wiec powtorz blad i od razu jak powtorzysz, pokaz dokladnie kod ktory go wygenerowal. Bo zakladam ze zadnego ajaxa wywolywanego x razy tutaj nie masz.
maraska
Jak pisałem, robię to w pliku testowym tylko dla testu tego jednego zapytania. Więc tam nic więcej nie ma.
wynik działania tego co pokazałem:
  1. array(2) { [0]=> string(6) "Płock" ["miejscowosc"]=> string(6) "Płock" }


Ciekawe, że wcześniej były inne wyniki.
Nie mogę niestety teraz zrestartować silnika bazy.
nospor
Znaczy sie teraz wszystko dziala smile.gif
maraska
No, nie działa. Pytam o 4 rekordy a dostaję jeden.
Wcześniej przy takim zapytaniu był pierwszy prawidłowy i 3 kolejne w postaci sama nazwa i krzaki, np. "Zielona Góra ttt56064"
nospor
No bo wywaliles petle to logiczne ze dostajesz tylko jeden....
Pyton_000
Albo inaczej... Poczytaj sobie w dokumentacji co robi https://www.php.net/mysql_fetch_array
maraska
"A bo mnie zmyliły" smile.gif

Może komuś się przyda:
  1. $str = '';
  2. while ($row = mysql_fetch_array($sql_miasta)){
  3.  
  4. $str .= ((strlen($str) > 0) ? "\n" : '') . $row['miejscowosc'] . ', ';
  5. }
  6.  
  7. echo $str ;
  8.  
  9. //Wynik: Pyrzowice , Mielno , Warszawa, Świeradów Zdrój, Bolków,

Dziękuję wszystkim
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.