Ocena wątku:
- 0 głosów - średnia: 0
- 1
- 2
- 3
- 4
- 5
[SOLVED]Kodowanie znaków w bazie
|
Liczba postów: 12
Liczba wątków: 3
Dołączył: 04-10-2009
Reputacja:
0
17-10-2009, 07:23
(Ten post był ostatnio modyfikowany: 17-10-2009, 08:21 przez gskola.)
Pany... poczytajta chwile...
Jest baza danych. Są w niej newsy i takie tam duperele.
Cała baza danych ma ustawione kodowanie utf8_unicode_ci
Oprócz tego pole, w którym znajduje się treść newsa, oraz pole mające tytuł newsa mają ustawiony system porównywania utf8_unicode_ci
informacja naglowkowa to:
Kod: <meta http-equiv="content-type" content="text/html; charset=utf-8" />
wiec dlaczego kurde blaszka w miejscu polskich znaków są tylko śmieszne znaczki zapytania w takich kwadracikach ;|
ok już mi się udało, wystarczyło dodać:
$zmienna = mysql_query('SET NAMES utf8');
przed zapytaniem do bazy.
A nie wie ktoś może, dlaczego jeśli jest najprostsze zapytanie: SELECT * FROM news to wybiera mi wszystko, orpócz pierwszego wiersza ? i jak tamu zaradzić w wypadku wypisywania danych za pomocą pętli while ?
Liczba postów: 341
Liczba wątków: 4
Dołączył: 15-10-2009
Reputacja:
23
17-10-2009, 23:55
(Ten post był ostatnio modyfikowany: 17-10-2009, 23:56 przez kancik.)
no a jak wyswietlasz to z bazy ?
ja to robie tak np i hula
Kod PHP: <? $artykuly = mysql_query("SELECT * FROM artykuly ORDER BY id ASC"); $ilosc = mysql_num_rows($artykuly); if ( $ilosc == 0 ) { echo "Brak artów w serwisie !<br />"; } else { while ($licznik = mysql_fetch_array($artykuly)) { //wyswietlanie pierdół ;) } ?>
Cytat:Wyrazić to co czuję , zabrakło by tyle słów....
Liczba postów: 12
Liczba wątków: 3
Dołączył: 04-10-2009
Reputacja:
0
no a ja to robie dokladnie tak samo, i wyswietla wszystko lasnie, ale bez pierwszego wiersza z bazy. dziwne... wiem ;p no ale zawsze moge mieć po prostu jakiś niepotrzebny wpis na początku bazy i wsio
Liczba postów: 341
Liczba wątków: 4
Dołączył: 15-10-2009
Reputacja:
23
a pokaz kod jak wyswietlasz
Cytat:Wyrazić to co czuję , zabrakło by tyle słów....
Liczba postów: 12
Liczba wątków: 3
Dołączył: 04-10-2009
Reputacja:
0
20-10-2009, 00:58
(Ten post był ostatnio modyfikowany: 20-10-2009, 00:59 przez gskola.)
Kod: $zapytanie = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 5");
$wiersz = mysql_fetch_assoc($zapytanie);
while ($wiersz = mysql_fetch_array($zapytanie)){
echo "<div id='jedennews'>";
echo "<div id='newsheader'>" . $wiersz['tytul'] . "</div>" ;
echo "<div id='data'>" . $wiersz['data'] . "</div>";
echo "<div id='txt'>" . $wiersz['tresc'] . "</div>";
echo "<div id='rybki'></div>";
echo "</div>";
}
kurde... jednak to nie tak jak do konca myslalem...
przy wysietlaniu ZAWSZE brakuje najnowszego wiersza (najpóźniej dodanego). jakby to byl najstarszy wiersz to pol biedy, ale z tym musze sobie poradzic. Wie ktos moze dlaczego ?
I przy okazji, moze to cos da, jesli daje LIMIT 5, tak jak np. w tym wypadku wyżej, to zawsze wyświetla tylko 4. Nigdy nie ma tego najnowszego (bo sortowanie jest wedlug daty, ktora ustawiona jest na CURRENT_TIMESTAMP)
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
Może
Kod: "SELECT * FROM news ORDER BY id DESC LIMIT 0, 5"
Liczba postów: 341
Liczba wątków: 4
Dołączył: 15-10-2009
Reputacja:
23
ja to sobie stronicuje newsy pokażę ci cały mój plik bo nie mam czasu wyodrębnić ( szkoła ;/ )
Kod PHP: function wyswietl() {
$page = $_GET['page']; $na_stronie = 2; //ilosc newsów na stronie :) if (!isset($page)) { $page = 0; } $newsy = mysql_query("SELECT * FROM news"); $ile = mysql_num_rows($newsy); $newsy2 = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT ".$page.",".$na_stronie."");
if ( $ile == 0) { echo "Brak newsów w serwisie"; } else { include_once 'dodatki.php'; while($licznik = mysql_fetch_array($newsy2)) { echo '<div class="nowosc">'; echo '<div class="nagloweknewsa">'; echo emotki("<strong>".$licznik['tytul']."</strong>"); echo "</div>"; echo "<p>"; echo emotki($licznik['tresc']); echo "</p>"; echo "<div>"; if ($licznik['dlugatresc']) { echo "<small><a href='../?strona=czytajwiecej&id=".$licznik['id']."'>czytaj więcej</a>(".$licznik['czytan'].")</small>"; } echo $licznik['data']; echo "</div>"; echo "</div>"; } if($ile>$na_stronie) { echo '<div class="stronicowanie"><p>'; echo '<b>Strona:</b> '; for($licz=0; $licz<ceil($ile/$na_stronie); $licz++) if ($licz*$na_stronie == $page) { echo '<b>[ '.($licz+1).' ]</b>| '; } else { echo '<a href="news,strona,'.($licz*$na_stronie).'">'.($licz+1).'</a> | '; } echo "</p></div>"; } } }
no to ja robie tak
Cytat:Wyrazić to co czuję , zabrakło by tyle słów....
Liczba postów: 12
Liczba wątków: 3
Dołączył: 04-10-2009
Reputacja:
0
20-10-2009, 02:41
(Ten post był ostatnio modyfikowany: 20-10-2009, 03:01 przez gskola.)
Już próbowałem wcześniej ustalać na LIMIT 0 , 5 i nie działa dalej.
No pojęcia żadnego nie mam czemu tak...
kancik też średnio mam czas na robienie takich rzeczy aktualnie przez szkołe ;>
ehh... poniżej screen z phpmyadmin
![[Obrazek: newsh.jpg]](http://img188.imageshack.us/img188/7485/newsh.jpg)
tak wygląda struktura bazy - specjalnie nowa utworzona... nic nie pomogło
przy zapytaniu:
SELECT * FROM newsy
wyswietla jeden wpis na dwa. wiec nie wiem gdzie moze lezec przyczyna
No masakra, zredukowałem co mogłem. Stworzyłem specjalnie nową stronę, a oto jej treść:
Kod: <?php
require_once("naglowek.php");
include("polaczenie.php");
$zapytanie = mysql_query("SELECT * FROM newsy");
$wiersz = mysql_fetch_assoc($zapytanie);
while ($wiersz = mysql_fetch_array($zapytanie)){
echo $wiersz['tytul'];
echo $wiersz['data'];
echo $wiersz['tresc'];
}
require_once("stopka.php");
?>
totalne minimum i wyświetla tylko jednego newsa tego pierwszego dodanego
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
20-10-2009, 03:27
(Ten post był ostatnio modyfikowany: 20-10-2009, 03:27 przez Labsta.com.)
Kod: <?php
require_once("naglowek.php");
include("polaczenie.php");
$zapytanie ="SELECT * FROM `news` ORDER BY `id` ASC LIMIT 0, 5";
$wpisy = mysql_query($zapytanie);
while($wiersz = mysql_fetch_array($wpisy)) {
echo $wiersz['tytul'];
echo $wiersz['data'];
echo $wiersz['tresc'];
}
require_once("stopka.php");
?>
Z góry mówię, że piszę z pamięci i zwykle działam obiektowo. Mam nadzieję że nic nie pomyliłem.
Liczba postów: 12
Liczba wątków: 3
Dołączył: 04-10-2009
Reputacja:
0
20-10-2009, 03:43
(Ten post był ostatnio modyfikowany: 20-10-2009, 22:43 przez gskola.)
Poprawiłem i na taki sposób, choć to praktycznie to samo, dodałem linijkę, którą pominąłeś ($wiersz = mysql_fetch_assoc($wpisy));
i uwaga uwaga... NIE DZIAŁA
no kurdeee
dodam tylko cenną wskazówkę: ciągle dzieje się to samo.
Porobiłem nawet najprostsze bazy ktore maja tylko pole id tytul i tresc i nawet kiedy chce sie odwolac zapytaniem: SELECT * FROM newsy WHERE id='X'
to i tak mi to nie działa. Znaczy się wówczas nic się nie wyświtla.
linijka o ktorej mowilem jest wlasnie nieprawidlowa, sprawia cale zamieszanie ($wiersz = mysql_fetch_assoc($wpisy))
po usunieciu jej juz wszystko dziala jak nalezy !
dzieki wielkie chlopaki
|
Podobne wątki… |
Wątek: |
Autor |
Odpowiedzi: |
Wyświetleń: |
Ostatni post |
|
Jak sprawdzić czy adres www znajduje sie w bazie mysql? |
jarekcda |
8 |
9,040 |
13-05-2017, 01:02
Ostatni post: miketodson255
|
|
Złe kodowanie po imporcie bazy |
lomek |
5 |
4,593 |
16-10-2012, 16:58
Ostatni post: tomekk
|
|
Edycja rekordów w bazie MYSQL |
Smarth |
4 |
3,883 |
20-02-2012, 02:26
Ostatni post: Pedro84
|
|
Problem z ciągiem znaków |
zoom24 |
1 |
2,016 |
23-01-2012, 18:52
Ostatni post: uriziel01
|
|
Rola w bazie danych |
Smarth |
1 |
1,623 |
21-01-2012, 04:51
Ostatni post: Pedro84
|
Użytkownicy przeglądający ten wątek: 1 gości
|
|
Sponsorzy i przyjaciele
|
|
|