• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kodowanie div'ów w php, brak polskich znaków w rekordach wyciągniętych z bazy danych

Object Storage Arubacloud
0 głosów
481 wizyt
pytanie zadane 9 października 2016 w PHP przez tasiorek27 Początkujący (300 p.)
edycja 9 października 2016 przez Arkadiusz Waluk

Siema, napisałem taka wyszukiwarke w php, ktorej zadaniem jest polaczenie sie z baza i wyciagniecie szukanej przez uzytkownika frazy. No i nawet to działa (jakoś), ale mam kilka pytan:
1. odnośnie używania div'ow w php. Czy robie to w prawidłowy sposob?
2. czytałem cos, gdzieś, kiedyś ze nie powinno sie w 1 pliku mieszac html i php, to prawda?
3. dlaczego wyciagniete z bazy rekordy nie zawieraja znakow polskich? I ewentualnie jak to zmienic, skoro dokument jest zakodowany lang=pl.
To moj debiut z php/mysql, a zainteresowalem sie tematem bo mam strone w html/css ktora chcialbym "przenieść" do php i ładować treści z bazy mysql.


http://imgur.com/a/TvSGi

Tak to wyglada, a ponizej kod: 

<!DOCTYPE HTML>

<html lang="pl">

	<head>
	<meta charset="utf-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>

	<style>
	
	#test
	{
		margin: 0 auto;
		background-color: red;
		width: 200px;
		
	}
		#test2
	{
		margin: 0 auto;
		background-color: green;
		text-align: center;
		width:500px;
	}
		#test3
	{
		margin: 0 auto;
		a
		width: 200px;
		
	}
	</style>
	
	
	</head>

	
	</html>
<?php

require_once('connect.php');


$polaczenie= @new mysqli ($host, $db_user, $db_password, $db_name);

if ($polaczenie->connect_errno!=0)
{
	echo "Polaczenie z baza nieudane"."opis bledu: ".$polaczenie->connect_error;
	
}
else
{
	$szukaj=$_POST['haslo'];

	
	$sql = "SELECT * FROM pytania where kategoria like '%$szukaj%'";
	
	$sql_szukaj= $polaczenie->query($sql);
	
	$ile=$sql_szukaj->num_rows;



	
echo<<<END
<span style="color:red">Znaleziono $ile  pytan pasujących do szukanego hasła: </span>
<br/>



END;
	
	for ($x=0;$x<$ile;$x++)
	{
		$wiersz=$sql_szukaj->fetch_assoc();
		
	echo '<div id="test2"><table border=1 cellpadding=10>';
	echo "<tr><td>Pytanie</td><td>".$wiersz['tresc']."</td></tr>";
	echo "<tr><td>Odp a)</td><td>".$wiersz['odpa'] ."</td></tr>";
	echo "<tr><td>Odp b)</td><td>".$wiersz['odpb'] ."</td></tr>";
	echo "<tr><td>Odp c)</td><td>".$wiersz['odpc'] ."</td></tr>";
	echo "<tr><td>Odp d)</td><td>".$wiersz['odpd'] ."</td></tr>";
	echo "<br/>";
	echo "</table></div>";
	
echo<<<END



END;
		
	}		

}
	echo '<div id="test3"><a href="index.php"><span style="color:blue"> Powrot do strony głównej</span> </a></div>';
	$sql_szukaj->free_result();
	
	$polaczenie->close();
?>
komentarz 9 października 2016 przez efiku Szeryf (75,160 p.)

2. czytałem cos, gdzieś, kiedyś ze nie powinno sie w 1 pliku mieszac html i php, to prawda?

No zapewne czytałeś pod każdym tutaj postem w kategorii PHP gdzie ludzie wrzucają kody pełne PHP'a i HTML'a. 

 

4 odpowiedzi

+1 głos
odpowiedź 9 października 2016 przez tasiorek27 Początkujący (300 p.)
edycja 9 października 2016 przez tasiorek27

Dodałem do kodu:

mysqli_set_charset($polaczenie, "UTF8");

i już polskie znaki ładnie sie wyświetlają ;]

 

==================================================

Jak wspomniałem powyżej mam strone w html/css która chciałbym przeniesc do php+mysql.

Pytanie, czy mój tok rozumowanie jest prawidłowy :

1.W pliku ze skryptem php, robie polaczenie z baza i wyciągam treści, które chce wyświetlić w pliku z kodem html.

2. W pliku z kodem html tworze divy itp, w css je obrabiam. A jak dorzucić "content" ? Istnieje jakaś funkcja czy coś co wyciągnie z kodu php informacje i załaduje je do kodu html.

Proszę o porady, pozdr :]

 

 

 

komentarz 12 października 2016 przez tasiorek27 Początkujący (300 p.)
Podbijam.
0 głosów
odpowiedź 9 października 2016 przez tasiorek27 Początkujący (300 p.)
@edit problem z brakiem polskich znaków rozwiazany, takze prosze o odp na pyt. nr 1

 

Pozdr.
0 głosów
odpowiedź 9 października 2016 przez kosaa Stary wyjadacz (14,130 p.)
2. Tak jest to nieprawidłowe. Trudno utrzymywać taką aplikację, a gdy przyjdzie taka sytuacja, że będziesz chciał zmienić szatę graficzną to będziesz musiał to robić we wszystkich skryptach.

3. Jako pierwsze zapytanie jakie wykonujesz daj $DB->query("SET NAMES 'utf8';");, a drugie co mi przychodzi do głowy to poza html lang ustawiony na pl to dodaj znacznik meta <META charset="UTF-8"> w sekcji head
0 głosów
odpowiedź 13 października 2016 przez solski Użytkownik (720 p.)

Musisz "wymieszać" html z php, jeżeli chcesz wyświetlać content pobierany z bazy danych. Nie wiem do końca co chcesz zrobić, ale najprostszy przykład jaki mi przychodzi do głowy to wyświetlanie np. wpisów zalogowanego użytkownika na podstawie jego id. W tym przypadku:

  1. Tworzysz sobie plik php z polaczeniem z baza danych i funkcjami, które potrzebujesz do wyciągania odpowiednich danych, najlepiej jakiś crud (a jeszcze lepiej 2 osobne pliki - jeden z klasą odpowiedzialną za połączenie z db, a drugą odpowiedzialną za crud)
  2. includujesz ten plik/pliki w kodzie, w którym chcesz wyświetlić content
  3. Odpalasz sobie odpowiednie funkcje w odpowiednim miejscu za pomocą wciskania <?php ?> w odpowiednich miejscach w kodzie html, np. tak: <div class="content"><?php Post::loadByID($userID) ?></div>.

Szata graficzna nie ma z tym nic wspólnego, bo wystarczy zedytować podpiętego css'a i problem z głowy.

Podobne pytania

0 głosów
1 odpowiedź 424 wizyt
0 głosów
4 odpowiedzi 2,434 wizyt
pytanie zadane 14 lipca 2015 w SQL, bazy danych przez Jagoda__ Nowicjusz (150 p.)
0 głosów
1 odpowiedź 2,059 wizyt
pytanie zadane 6 listopada 2016 w HTML i CSS przez Mateusz Bogumił Obywatel (1,380 p.)

92,568 zapytań

141,420 odpowiedzi

319,624 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...