Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-10-18 18:20:38

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Zamiana spacji - dziwny problem

Witam! Mam taki problem odnośnie usuwania spacji:

Mam dane w bazie Mysql'a a dokładnie chodzi mi o kolumnę typu varchar w której mam wczytane kwoty:

np: 1 788.99

chciałbym usunąć tą spację pomiędzy 1 i 7 ( rekordów oczywiście jest bardzo dużo z różnymi kwotami ) ale kombinuje już pare godzin i niewiem co jest grane;

Najpierw próbowałem :

UPDATE tabelka SET kwota = replace(kwota, " ", "")

czy np UPDATE tabelka SET kwota = TRIM(kwota)

ale nic to nie daje. Oczywiście jeżeli inne kolumny próbuję tą metodą zamienić to jest OK!

Czyli wygląda na to że to nie jest spacja - tylko pytanie co??

Próbowałem także z poziomu php:

Kod:

$zapytanie = "SELECT kwota FROM tabelka";
$wykonaj = mysql_query($zapytanie); 

while($wiersz=mysql_fetch_array ($wykonaj))
 { 
 echo $wiersz['kwota']."<br>";
 $nowy = $wiersz['kwota'];

     $tescik = str_replace(" ", "", $nowy);
   //         $tescik = trim($nowy);
                       echo $tescik."<br>";
                              echo "TO jest test";
 }

Ale wyświetla jedno pod drugim to samo - nie usuwa spacji.

Jedna rzecz jaką udało mi się zauważyć ( jak widać specjalnie dorzuciłem echo "TO jest test"; )
jak zmienię pod firefoxem kodowanie w widoku na UTF-8 to w tych kwotach w miejscach gdzie jest niby ta spacja
pojawia mi się znak - � czyli:

1�788.99
1�788.99

a pod spodem zwyczajne:

TO jest test
( bez żadnych dziwnych znaków tam gdzie spacje ) w związku z czym podejrzewam właśnie że to nie spacja jest w tych kwotach.

Spotkał się ktoś może z podobnym problemem??


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#2  2010-10-18 19:27:46

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Zamiana spacji - dziwny problem

może naookoło ale powinno zadziałać: rekord po rekordzie wczytujesz sobie kwotę, następnie konwersja to stringa, wycięcie spacji (nie pamiętam jak się funkcja nazywa bo php wieki nie używałem), wrzucenie nowej wartości do tabeli. Odpowiedni fragment kodu w bashu :))

Kod:

echo "SELECT kwota FROM tabelka" |mysql -uUSER -pPASS |while read KWOTA
do
NOWA_KWOTA=$(echo "$KWOTA" |tr -d " ")
echo "UPDATE tabelka SET kwota=\"$NOWA_KWOTA\" WHERE (tu musisz sobie warunek wymyślić :P)" |mysql -uUSER -pPASS
done

Może nie jest to jakiś mega optymalny kod ale działający ;) przynajmniej u mnie działa podobny ;) Tak wiem chory jestem używać basha do obsługi mysqla ale tak mi było wygodnie i po drodze ;]


LRU: #472938
[b]napisz do mnie:[/b] ola@mojmail.eu
[url=http://valhalla.org.pl]Hołmpejdż[/url] | [url=http://valhalla.org.pl/foto]Galerie[/url] | [url=http://valhalla.org.pl/tech]"Twórczość"[/url] || [url=http://img.munn.in]Free Image Hosting[/url]

Offline

 

#3  2010-10-18 20:14:16

  lessmian - Użytkownik

lessmian
Użytkownik
Skąd: Kraków
Zarejestrowany: 2009-09-25

Re: Zamiana spacji - dziwny problem

Kod:

mysql> CREATE TABLE test(test varchar(10));
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO test VALUES('test test');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT test FROM test;
+-----------+
| test      |
+-----------+
| test test | 
+-----------+
1 row in set (0.00 sec)

mysql> UPDATE test SET test=REPLACE(test, ' ','');
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT test FROM test;
+----------+
| test     |
+----------+
| testtest | 
+----------+
1 row in set (0.00 sec)

A teraz pokaż jak Ty to robisz i co Ci nie działa ;)

Tak BTW, do trzymania wartości liczbowych to są jednak lepsze typy niż varchar ;)

Ostatnio edytowany przez lessmian (2010-10-18 20:16:17)

Offline

 

#4  2010-10-28 12:51:36

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Zamiana spacji - dziwny problem

w Bashu po wyświetleniu w miejscu gdzie normalnie jest spacja pokazuje się znak -

Wie ktoś może co to za znak i jak go zamienić??

Czyli generalnie kwota wygląda tak: 1▒788.99


debbie
[color=blue]Wrócę jak zjem zupę i drugie danie - tyle[/color]
[color=blue]a oto ta zupa:[/color]

Offline

 

#5  2010-10-28 13:57:34

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: Zamiana spacji - dziwny problem

Unicode wyróżnia przynajmniej [url=http://www.sagehill.net/docbookxsl/SpecialChars.html#SpecialSpaces]16 różnych spacji[/url]. To pewnie któraś z nich.

Ja bym ją w terminalu zaznaczył i wkleił (shift+insert lub środkowy klawisz myszy) w odpowiednim miejscu w sedzie czy czymś.


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.007 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00150 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.117.105.230' WHERE u.id=1
0.00061 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.105.230', 1732346030)
0.00023 SELECT * FROM punbb_online WHERE logged<1732345730
0.00084 SELECT topic_id FROM punbb_posts WHERE id=157116
0.00006 SELECT id FROM punbb_posts WHERE topic_id=17548 ORDER BY posted
0.00029 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=17548 AND t.moved_to IS NULL
0.00025 SELECT search_for, replace_with FROM punbb_censoring
0.00048 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=17548 ORDER BY p.id LIMIT 0,25
0.00072 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17548
Total query time: 0.00513 s