bamboo
15.02.2008, 23:01:20
Jak wyświtlić jakomś liczbe pierwszych znaków z rekordu, dajmy na to że tabela nazywa sie TABELA i chcemy wyświetlić 100 pierwszych znaków z kolumny TRESC, z rekordu którego ID wynosi 1. Jak powinno wyglądać zapytanie lub kod PHP który wyświetli 100 pierwszych znaków tej wartości?
nospor
15.02.2008, 23:08:59
Manuala jeszcze nie zamkneli:
Funkcje operujące na tekscieps: przenosze
bamboo
15.02.2008, 23:14:46
czytałem i szukałem już tego w manualu, lecz niewiem jak sformułować zapytanie żeby to zadziałało...
nospor
15.02.2008, 23:18:57
a czego nie rozumiesz w tym przykladzie co podano
Cytat
SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
?
SELECT SUBSTRING(twojepole,0,100) twojepole FROM tabela WHERE jakiswarunekjakitamsobiechcesz
bamboo
15.02.2008, 23:30:10
Dałem ci punkcika a nawet niesprawdzilem czy działa... bo niedziała... więc jak to zrobić?
nospor
15.02.2008, 23:33:07
jesli napisales dokladnie tak jak ci podalem to pewnie ze ci dzialac nie bedzie. za jakiswarunekjakitamsobiechcesz masz wstawic swoj warunek, za "twojepole" masz wstawic twoje pole....
Jesli byles na tyle bystry ze to jednak zmieniles, to podaj caly kod na jaki zmieniles i napisz po ludzku czym objawia sie twoje niedzialanie. Jesli takie rzeczy nie są dla ciebie oczywiste to niech szybko się staną bo szkoda postow na ciagle proszenie o podanie kodu i pytanie o objawy nie dzialania.
bamboo
15.02.2008, 23:37:37
heh, nie jestem na tyle glupi... moje zapytanie wygląda tak:
SELECT newsid, tytul, tresc, autor, DATA SUBSTRING(tresc,0,100) FROM news ORDER BY newsid DESC LIMIT 3
nawet specjalnie gwiazde zamieniłem za wszystkie nazwy kolumny bo niewiedziałem o co chodzi, niedziało również wtedy gdy tą funkcje postawiłem przed nazwami, tylko że z tą różnicą że gdy było pa nazwach to wyświetla błąd, a gdy jest przed to wyświetla normalnie wartosci, ale całe, wszystkie znaki...
nospor
15.02.2008, 23:39:28
data SUBSTRING(tresc,0,100) - co to ma byc? A gdzie przecinek?
pozatym wyraźnie w moim kodzie po substring masz jeszcze powtorzone pole. To na wszelki wypadek jakbys w php sie probowal dobrac do tego skrocoengo pola poprzez jego nazwe. To jak z tą bystroscia?
bamboo
15.02.2008, 23:43:59
heh, ale jak wpisze nazwe pola po tej funkcji to wartosc sie wogule niewyswietla, reszta wartości wyświetla sie normalnie, poza tą jedną...
nospor
15.02.2008, 23:47:27
ech,
pokaz caly kod, wlacznie z kodem php ktory to obsluguje. Niech ten kod zawiera zapytanie mysql w mojej wersji, z polem PO. Wszystkim zawsze dziala a tobie jednemu nie, normalnie dziwne
Synapsa
15.02.2008, 23:48:31
Zobacz tak
SELECT SUBSTRING(tresc,0,100) tresc FROM news ORDER BY newsid DESC LIMIT 3
bamboo
15.02.2008, 23:51:35
niedziała, niewyświtla żadnej wartości...
prosze bardzo o to kodzik:
<?php
$wynik = mysql_query("SELECT newsid, tytul, tresc, autor, data, SUBSTRING(tresc,0,10) FROM news ORDER BY newsid DESC LIMIT 3")
if($wynik) {
/* jeżeli wynik jest pozytywny, to wyświetlamy dane */
echo "<table width=\"400\" align=\"center\" cellpadding=\"2\" border=1>"; echo "<tr><td>".$r['tytul']."</td></tr>"; echo "<tr><td>".$r['tresc']."</td></tr>"; echo "<tr><td>".$r['autor']."</td></tr>"; echo "<tr><td>".$r['data']."</td></tr>"; }
}
?>
nospor
16.02.2008, 00:00:32
kurcze, ale powiedz czego ty nie rozumiesz w zdaniu: daj nazwe pola po substring() tak jak ja dalem w przykladzie? No czego tu nie rozumiesz??
SELECT newsid, tytul, autor, DATA, SUBSTRING(tresc,0,10) tresc FROM news ORDER BY newsid DESC LIMIT 3
ja ci mowie jedno a ty i tak robisz po swojemu i jeszcze bezczelnie piszesz ze ci moj kod nie dziala....
ps: nie bierz za bardzo moich nerwow do siebie, ale musze troche odreagowac...
bamboo
16.02.2008, 00:04:41
niemówie tego bezczelnie, bo zauważ że ten kod niedziała

jak widzisz jest tam petla która tworzy tabelke i 4 komórki w każdej inne pole, w polu drugim niewyświetlane jest nic, a reszta działa OK...
ok, rozumiem cie...
nospor
16.02.2008, 00:06:39
to jest twoje zapytanie: SELECT newsid, tytul, tresc, autor, data, SUBSTRING(tresc,0,10) FROM news ORDER BY newsid DESC LIMIT 3
to jest moje: SELECT newsid, tytul, autor, data, SUBSTRING(tresc,0,10) tresc FROM news ORDER BY newsid DESC LIMIT 3
Wstawie ci nawet jedno pod drugim bys lepiej widzial:
SELECT newsid, tytul, tresc, autor, data, SUBSTRING(tresc,0,10) FROM news ORDER BY newsid DESC LIMIT 3
SELECT newsid, tytul, autor, data, SUBSTRING(tresc,0,10) tresc FROM news ORDER BY newsid DESC LIMIT 3
widzisz roznice? Skup sie czlowieku. Zastanow sie wkoncu nad kodem ktory dostajesz od bardziej doswiadczonego uzytkownika. Nie zmieniaj tego kodu, wklej jak ci podalem jesli nadal nie widzisz roznicy!
ps: jesli wkleiles dokladnie moj kod i nadal nic nie ma, znaczy ze twoje pole tresc w pierszych 10 znakach ma same spacje albo wogole to pole jest puste
bamboo
16.02.2008, 00:10:37
nieprzepisywałem, niepoprawiałem mojego - tylko skopiowałem twój (nawet dwa razy, dla pewności że nie uciołem żadnej literki)

i jaki wynik? jak wyżej, już napisałem, i niechce mi sie tego pisać trzeci raz
nospor
16.02.2008, 00:13:26
sluchaj, jak mozesz pisac ze wkleiles moj kod skoro podales taki:
SELECT newsid, tytul, tresc, autor, data, SUBSTRING(tresc,0,10) from ...
A ja ci wyraźnie pokazalem w poprzednim poscie ze ja ci podalem inny.
pozatym jesli jednak jakims cudem masz tam gdzies dokladnie moj kod (czego na razie ani razu nie pokazales) to w takim razie twoje pole tresc jest puste, a na pewno przez pierwsze 10 znakow.
ide spac bo sie zaraz pozabijamy
bamboo
16.02.2008, 00:17:16
wkleiłem to co mi podałeś zaraz po tym jak podałem ci kod całości, czyli wkleiłem to:
SELECT newsid, tytul, autor, DATA, SUBSTRING(tresc,0,10) tresc FROM news ORDER BY newsid DESC LIMIT 3
wszystkie wartości z kolumny TRESC mają conajmniej 10 znaków...
Synapsa
16.02.2008, 07:54:24
Daj tak.
SELECT newsid, tytul, autor, DATA, SUBSTRING(tresc,1,10) tresc FROM news ORDER BY newsid DESC LIMIT 3
bamboo
16.02.2008, 12:28:47
ok, działa, dzięki, pkt dla ciebie... doświadczony programista był uparty, no cóż, ale każdy się czasem myli i niemożna mieć za to do nikogo pretensji, nospor, również dziękuje za pomoc... a więc panowie forumowicze, funkcja wyświetlająca daną ilość znaków z danej wartości wygląda tak:
SUBSTRING(pole,1,200) pole
przed funkcją musi sie znajdować reszta pól które chcemy wywołać...
nospor
16.02.2008, 14:04:14
glupie 0...

Faktycznie, tez popelnilem blad

przeraszam.
Dobrze ze poszedlem spac.