Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyswietlanie daty i 100 slow z bazy danych
Forum PHP.pl > Forum > Bazy danych > MySQL
jaca121212
  1. mam problem chcialbym wyswietlic date i 100 pierwszych slow z bazy danych jesli pomoze to pokaze odczyt z selecta
  2. $query = mysql_query ("SELECT * FROM `sport` ORDER BY `data` DESC ");
Pyton_000
no i ?
jaca121212
no mam problem z tym wyswietleniem pomoze ktos jak to zastosowac
  1. .'<p id="art_tre">'.$shout[SUBSTRING_INDEX('tresc',10,)].'</p>'.'</br>'


Turson
Z jakiej racji do PHP wplątujesz funkcję MySQL? Odpowiedź to substr
jaca121212
jesli zastosuje to w taki sposob to mi wyswietla blad
  1. $query = mysql_query ("SELECT * FROM `sport` ORDER BY `data`, `substr(['tresc'],100)` DESC ");

o nazwie
  1. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\test\log_rej\pliki\pliki\sport.php on line 41
  2. w lini 41
znajduje sie
  1. while($shout=mysql_fetch_array($query)) {
Turson
Zdecyduj się... raz chcesz obciąc string w zapytaniu a raz w PHP. Do tego twoje zapytanie jest błędne.
SELECT kolumna1, SUBSTRING(kolumna2, 0, 100) FROM tabela
jaca121212
ja chce wyciagnac z bazy danych wszystko po dacie i tylko zeby wyciagnal 100 pierwszych slow i zrobilem w ten sposob
  1. $query = mysql_query ("select * from `sport`order by `data`, substr(tresc, 0 ,10) desc" );
i wyciaga mi wszystko po dacie ale nie wyswietla skroconego tekstu tylko caly tekst
  1. $query = mysql_query ("SELECT `data`, `SUBSTRING(tresc, 0, 100)` FROM `sport` ORDER BY data DESC" );
i dalej jest blad w lini 41
no chyba ze mozna laczyc wyciaganie po dacie i skracanie tekstu
jest moze inny sposob na to zeby to zaradzic
Turson
  1. $query = mysql_query ("SELECT `data`, SUBSTRING(`tresc`, 0, 100) FROM `sport` ORDER BY data DESC" );
markonix
Cytat(jaca121212 @ 7.01.2015, 13:35:58 ) *
100 pierwszych slow

Słów czy znaków bo to istotna różnica..

I zacznij człowieku używać ALT jak piszesz posty..
jaca121212
Dobra bd używał już tego ALT jest problem z tym zapytanie bo wyświetla mi takie coś
  1. Notice: Undefined index: zrodlo in C:\xampp\htdocs\test\log_rej\pliki\pliki\sport.php on line 45
  2.  
  3. Notice: Undefined index: image in C:\xampp\htdocs\test\log_rej\pliki\pliki\sport.php on line 46
  4.  
  5. Notice: Undefined index: login in C:\xampp\htdocs\test\log_rej\pliki\pliki\sport.php on line 47
  6.  
  7. Notice: Undefined index: temat in C:\xampp\htdocs\test\log_rej\pliki\pliki\sport.php on line 48
  8.  
  9. Notice: Undefined index: tresc in C:\xampp\htdocs\test\log_rej\pliki\pliki\sport.php on line 49

Pokaże kod
  1. $query = mysql_query ("SELECT `data`, SUBSTRING(`tresc`, 0, 100) FROM `sport` ORDER BY data DESC" );
  2.  
  3.  
  4. echo '<div id="qt" >';
  5.  
  6.  
  7. while($shout=mysql_fetch_array($query)) {
  8.  
  9. echo '<div id="st" ><div id="pt">';
  10.  
  11. echo"<a href='{$shout['zrodlo']}'</a>";
  12. echo "<img id='img' src='{$shout['image']}'/>"
  13. .'<b id="autor"> '.'Autor: '.$shout['login'].'</b> ' .'</br>'
  14. .'<h1 id="temat">'.$shout['temat'].'</h1> ' .'</br>'
  15. .'<p id="art_tre">'.$shout['tresc'] .'</p>'.'</br>'
  16. .'<br/>'
  17.  
  18. .'Czas Napisania: '.$shout['data'] .'</br>'
  19. .'</div></div>';
  20.  
  21. }

problem jest od liniki
  1. echo"<a href='{$shout['zrodlo']}'</a>";
trueblue
Zobacz skąd bierzesz zmienną $shout, a potem sprawdź co pobierasz w zapytaniu.
jaca121212
$shout jest przypisana do zmiennej mysql_fetch_array a dane które są pobierane to z inputa
  1.  
  2. $zrodlo = mysql_real_escape_string(htmlspecialchars($_POST['zrodlo']));
  3. $image = mysql_real_escape_string(htmlspecialchars($_POST['image']));
  4. $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
  5. $tresc = mysql_real_escape_string(htmlspecialchars($_POST['tresc']));
  6. $temat = mysql_real_escape_string(htmlspecialchars($_POST['temat']));
  7. $data = date('Y-m-d H:i:s');
  8. $ip = $_SERVER['REMOTE_ADDR'];
  9.  
  10.  
  11.  
  12. mysql_query ("INSERT INTO `sport` (`zrodlo`, `image`,`login`, `data`, `ip`, `tresc`, `temat`) VALUES('$zrodlo' ,'$image', '$login', '$data', '$ip', '$tresc', '$temat')");
  13.  
  14.  
  15. header('Location: '.$_SERVER['REQUEST_URI']);
  16. }
  17.  
  18. else {
  19.  
  20.  
  21. $query = mysql_query ("SELECT `data`, SUBSTRING(`tresc`, 0, 100) FROM `sport` ORDER BY data DESC" );
  22.  
  23.  
  24. echo '<div id="qt" >';
  25.  
  26.  
  27. while($shout=mysql_fetch_array($query)) {
  28.  
  29. echo '<div id="st" ><div id="pt">';
  30.  
  31. echo"<a href='{$shout['zrodlo']}'</a>";
  32. echo "<img id='img' src='{$shout['image']}'/>"
  33. .'<b id="autor"> '.'Autor: '.$shout['login'].'</b> ' .'</br>'
  34. .'<h1 id="temat">'.$shout['temat'].'</h1> ' .'</br>'
  35. .'<p id="art_tre">'.$shout['tresc'] .'</p>'.'</br>'
  36. .'<br/>'
  37.  
  38. .'Czas Napisania: '.$shout['data'] .'</br>'
  39. .'</div></div>';
  40.  
  41. }
  42.  
  43.  
  44. echo '</div>';
  45.  
  46. }
trueblue
A czy w $shout istnieje zmienna pod indeksem 'zrodlo'?
jaca121212

to już jest cały kod
  1. <form action="sport.php" method="POST">
  2. <input type="url" name="zrodlo" class="wyg_input" autocomplete="off" required placeholder="Podaj link skąd wzięty został artykuł..."/>
  3. <input type="url" name="image" class="wyg_input" autocomplete="off" required placeholder="Podaj link do zdjęcia..."/>
  4. <input type="text" name="login" class="wyg_input" required placeholder="Podaj swój nick..."/>
  5. <input type="text" name="temat" class="wyg_input" required autocomplete="off" placeholder="Podaj treść twojego tematu... "/>
  6. <textarea name="tresc" class="wyg_text" rows="3" required autocomplete="off" placeholder="Treść twojej wiadomości..."></textarea>
  7. <button type="submit" class="btn_wyslij" name="wyslij">Wyślij wiadomość</button>
  8. </form>

jak miałem zastosowane w taki sposób
  1. $query = mysql_query ("SELECT * FROM `sport` ORDER BY `data`, DESC ");
to wszystko działa
a jak zmieniłem na to
  1. $query = mysql_query ("SELECT `data`, SUBSTRING(`tresc`, 0, 100) FROM `sport` ORDER BY data DESC" );
to już nie działa
Pyton_000
`data`
jaca121212
to nic nie zmienia jeśli dam tak `data` to samo wyświetla
Pyton_000
Kod
$query = mysql_query ("SELECT `data`, SUBSTRING(`tresc`, 0, 100) FROM `sport` ORDER BY  `data` DESC" );
die(mysql_error());

Tak nie działa?
jaca121212
Teraz to wyświetla pustą stronę
Pyton_000
Wywal tego die(... i wklej gdzieś cały kod np. na http://pastebin.com/
trueblue
Pyton_000, jeśli się nie zgubiłem, to koledze chodzi o niedziałanie opisane w poście 10.
jaca121212
http://pastebin.com/CxFWfvPk
wykasowałem die(); i wyświetlił mi taki komunikat powyższy link

dodam jeszcze że w bazie danych wszystko się zapisuje tylko jest problem z wyświetleniem tej zawartości
Pyton_000
Czyli już jasne. Widzisz przecież że komunikat jasno Ci mówi że nie ma określonego indeksu w tablicy. A nie ma go tam bo go nie pobierasz w zapytaniu. Dodaj te kolumny do zapytania i po SUBSTRING(...) as `text`
jaca121212
  1. $query = mysql_query ("SELECT `data`, `zrodlo`, `login`, `image`, `ip`, `temat`, SUBSTRING(0, 100) as `tresc` FROM `sport` ORDER BY `tresc` DESC" );

zrobiłem tak jak mówiłeś nadal nie wyświetla treści
i w tym przypadku też nie wyświetla treści
  1. $query = mysql_query ("SELECT `data`, `zrodlo`, `login`, `image`, `ip`, `temat`, SUBSTRING(0, 100) as `tresc` FROM `sport` ORDER BY `data` DESC" );
Pyton_000
Dodaj W pentli While w której odczytujesz i wyświetlasz dane.

Kod
echo '<pre>'; var_dump($shout); echo'</pre>';die(__FILE__ . ': '.__LINE__);
jaca121212
  1. array(12) {
  2. [0]=>
  3. string(19) "2015-01-08 11:07:16"
  4. ["data"]=>
  5. string(19) "2015-01-08 11:07:16"
  6. [1]=>
  7. string(62) "http://wiadomosci.onet.pl/tylko-w-onecie/je-suis-charlie/zjr5l"
  8. ["zrodlo"]=>
  9. string(62) "http://wiadomosci.onet.pl/tylko-w-onecie/je-suis-charlie/zjr5l"
  10. [2]=>
  11. string(10) "jaca121212"
  12. ["login"]=>
  13. string(10) "jaca121212"
  14. [3]=>
  15. string(171) "http://ocdn.eu/images/pulscms/NGQ7MDQsMmM2LDRmZCxiM2EsNWFlOzA2LDM2NiwxYjg7MGMsMjc0YzFkNjQ2NzA4MmMzZTZkZmU5ZDA5
    ZjRhNmRmNmIsMSwxLDAsMA__/114e12a82c3289fa9daec131539fdb1f.jpg"
  16. ["image"]=>
  17. string(171) "http://ocdn.eu/images/pulscms/NGQ7MDQsMmM2LDRmZCxiM2EsNWFlOzA2LDM2NiwxYjg7MGMsMjc0YzFkNjQ2NzA4MmMzZTZkZmU5ZDA5
    ZjRhNmRmNmIsMSwxLDAsMA__/114e12a82c3289fa9daec131539fdb1f.jpg"
  18. [4]=>
  19. string(15) "Je suis Charlie"
  20. ["temat"]=>
  21. string(15) "Je suis Charlie"
  22. [5]=>
  23. string(0) ""
  24. ["tresc"]=>
  25. string(0) ""
  26. }
  27. C:\xampp\htdocs\test\log_rej\pliki\pliki\sport.php: 47

wynik jaki się wyświetlił
Pyton_000
Pokaż kod jeszcze raz bo nie chce mi się wierzyć że nic ci nie wyświetla...
trueblue
  1. SUBSTRING(`tresc`, 0, 100) AS `tresc`


Wcześniej tak miałeś, a teraz popsułeś.
jaca121212
całość kodu pierwszy plik jest taki :
  1. <form action="sport.php" method="POST">
  2. <input type="url" name="zrodlo" class="wyg_input" autocomplete="off" required placeholder="Podaj link skąd wzięty został artykuł..."/>
  3. <input type="url" name="image" class="wyg_input" autocomplete="off" required placeholder="Podaj link do zdjęcia..."/>
  4. <input type="text" name="login" class="wyg_input" required placeholder="Podaj swój nick..."/>
  5. <input type="text" name="temat" class="wyg_input" required autocomplete="off" placeholder="Podaj treść twojego tematu... "/>
  6. <textarea name="tresc" class="wyg_text" rows="3" required autocomplete="off" placeholder="Treść twojej wiadomości..."></textarea>
  7. <button type="submit" class="btn_wyslij" name="wyslij">Wyślij wiadomość</button>
  8. </form>

natomiast drugi plik jest taki:
  1.  
  2. <?php
  3.  
  4. mysql_connect("localhost","root","ZAQ12WSX") or
  5. die('Nie można się połączyć: ' . mysql_error());
  6. mysql_select_db("log_rej'");
  7. ?>
  8.  
  9.  
  10. <?php
  11.  
  12. if(isset($_POST['wyslij']) && !empty($_POST['zrodlo']) && !empty($_POST['image']) && !empty($_POST['login']) && !empty($_POST['tresc']) && !empty($_POST['temat']))
  13. {
  14.  
  15.  
  16. $zrodlo = mysql_real_escape_string(htmlspecialchars($_POST['zrodlo']));
  17. $image = mysql_real_escape_string(htmlspecialchars($_POST['image']));
  18. $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
  19. $tresc = mysql_real_escape_string(htmlspecialchars($_POST['tresc']));
  20. $temat = mysql_real_escape_string(htmlspecialchars($_POST['temat']));
  21. $data = date('Y-m-d H:i:s');
  22. $ip = $_SERVER['REMOTE_ADDR'];
  23.  
  24.  
  25.  
  26. mysql_query ("INSERT INTO `sport` (`zrodlo`, `image`,`login`, `data`, `ip`, `tresc`, `temat`) VALUES('$zrodlo' ,'$image', '$login', '$data', '$ip', '$tresc', '$temat')");
  27.  
  28.  
  29. header('Location: '.$_SERVER['REQUEST_URI']);
  30. }
  31.  
  32. else {
  33.  
  34.  
  35. $query = mysql_query ("SELECT `data`, `zrodlo`, `login`, `image`, `temat`, SUBSTRING(0, 100) as `tresc` FROM `sport` ORDER BY `data` DESC" );
  36.  
  37.  
  38.  
  39.  
  40. echo '<div id="qt" >';
  41.  
  42.  
  43. while($shout=mysql_fetch_array($query)) {
  44.  
  45. echo '<div id="st" ><div id="pt">';
  46.  
  47. echo"<a href='{$shout['zrodlo']}'</a>";
  48. echo "<img id='img' src='{$shout['image']}'/>"
  49. .'<b id="autor"> '.'Autor: '.$shout['login'].'</b> ' .'</br>'
  50. .'<h1 id="temat">'.$shout['temat'].'</h1> ' .'</br>'
  51. .'<p id="art_tre">'.$shout['tresc'] .'</p>'.'</br>'
  52. .'<br/>'
  53.  
  54. .'Czas Napisania: '.$shout['data'] .'</br>'
  55. .'</div></div>';
  56.  
  57. }
  58.  
  59.  
  60. echo '</div>';
  61.  
  62. }
  63. ?>

a jeśli nie wierzysz to sprawdź na tej stronie http://www.ocena.log.ugu.pl/
Pyton_000
Przecież działa :|
Pomijam fakt że HTML masz skopany...
jaca121212
Cytat(Pyton_000 @ 8.01.2015, 12:02:29 ) *
Przecież działa :|
Pomijam fakt że HTML masz skopany...


http://google.pl http://google.pl 333 2015-01-08 12:01:51 xxx.xx.xxx.175 555 444

i tak zrodlo image login data ip tresc temat

zaznaczyłem co do którego ma się wyświetlać i co ty wpisałeś w tym formularzu i tam nie ma treści pozostałe wszystko jest wyświetlone (pomijam tutaj wyświetlanie ip )
trueblue
Widziałeś mój post wyżej?
jaca121212
Cytat(trueblue @ 8.01.2015, 12:26:52 ) *
Widziałeś mój post wyżej?

jeśli chodzi ci o to
  1. SUBSTRING(`tresc`, 0, 100) AS `tresc`
to jest to zastosowane w tym pliku i dalej nie wyświetla żadnej treści
trueblue
Pokaż jeszcze raz zapytanie.
jaca121212
Cytat(trueblue @ 8.01.2015, 12:48:44 ) *
Pokaż jeszcze raz zapytanie.


takie jest
  1. $query = mysql_query ("SELECT `data`, `zrodlo`, `login`, `image`, `temat`, SUBSTRING(`tresc`, 0, 100) AS `tresc`
  2.  
  3. FROM `tematy` ORDER BY `data` DESC" );
trueblue
A takie zapytanie:
  1. SELECT `data`, `zrodlo`, `login`, `image`, `temat`, `tresc`, SUBSTRING(`tresc`, 0, 100) AS `tmp` FROM `tematy` ORDER BY `data` DESC

i kod od Pyton_000
  1. echo '<pre>'; var_dump($shout); echo'</pre>';die(__FILE__ . ': '.__LINE__);

jaki daje wynik?
jaca121212
dzięki @trueblue działa teraz wyświetlanie treści ale nie działa nadal wyświetlanie ilości słów
trueblue
  1. SUBSTRING(`tresc`, 1, 100) AS `tresc`


Uff.

P.S. To nie jest ilość słów, ale 100 pierwszy znaków.
jaca121212
działa wszystko to co chciałem dzięki wielkie temat do zamknięcia
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-2024 Invision Power Services, Inc.