Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] X pierwszych znaków rekordu
Forum PHP.pl > Forum > Przedszkole
bamboo
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
Manuala jeszcze nie zamkneli:
Funkcje operujące na tekscie

ps: przenosze
bamboo
czytałem i szukałem już tego w manualu, lecz niewiem jak sformułować zapytanie żeby to zadziałało...
nospor
a czego nie rozumiesz w tym przykladzie co podano
Cytat
SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'

?

  1. SELECT SUBSTRING(twojepole,0,100) twojepole FROM tabela WHERE jakiswarunekjakitamsobiechcesz
bamboo
Dałem ci punkcika a nawet niesprawdzilem czy działa... bo niedziała... więc jak to zrobić?
nospor
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
heh, nie jestem na tyle glupi... moje zapytanie wygląda tak:
  1. 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
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? tongue.gif
bamboo
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
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 winksmiley.jpg
Synapsa
Zobacz tak
  1. SELECT SUBSTRING(tresc,0,100) tresc FROM news ORDER BY newsid DESC LIMIT 3
bamboo
niedziała, niewyświtla żadnej wartości...
prosze bardzo o to kodzik:
  1. <?php
  2. $wynik = mysql_query("SELECT newsid, tytul, tresc, autor, data, SUBSTRING(tresc,0,10) FROM news ORDER BY newsid DESC LIMIT 3")
  3. or die('Błąd zapytania'.mysql_error().'');
  4.  
  5. if($wynik) {
  6. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  7. while($r = mysql_fetch_assoc($wynik)) {
  8. echo "<table width=\"400\" align=\"center\" cellpadding=\"2\" border=1>";
  9. echo "<tr><td>".$r['tytul']."</td></tr>";
  10. echo "<tr><td>".$r['tresc']."</td></tr>";
  11. echo "<tr><td>".$r['autor']."</td></tr>";
  12. echo "<tr><td>".$r['data']."</td></tr>";
  13. echo "</table><br>";
  14. }
  15. }
  16. ?>
nospor
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??
  1. 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... smile.gif
bamboo
niemówie tego bezczelnie, bo zauważ że ten kod niedziała blinksmiley.gif 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... smile.gif
nospor
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
nieprzepisywałem, niepoprawiałem mojego - tylko skopiowałem twój (nawet dwa razy, dla pewności że nie uciołem żadnej literki) smile.gif i jaki wynik? jak wyżej, już napisałem, i niechce mi sie tego pisać trzeci raz blinksmiley.gif
nospor
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 winksmiley.jpg
bamboo
wkleiłem to co mi podałeś zaraz po tym jak podałem ci kod całości, czyli wkleiłem to:
  1. 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
Daj tak.
  1. SELECT newsid, tytul, autor, DATA, SUBSTRING(tresc,1,10) tresc FROM news ORDER BY newsid DESC LIMIT 3
bamboo
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:
  1. SUBSTRING(pole,1,200) pole

przed funkcją musi sie znajdować reszta pól które chcemy wywołać...
nospor
glupie 0... winksmiley.jpg
Faktycznie, tez popelnilem blad sad.gif przeraszam.
Dobrze ze poszedlem spac.
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.