Łączenie z bazą danych. Którego sposobu używać?

0

Część. Proszę Was o wyjaśnienie, dopiero się uczę mysql i php.
Którego dzisiaj połączenia z bazą mySQL używać. Nie wiem czy dobrze wyczytałem iż to drugie nie jest już rozwijane lecz oba działają z tond moje zapytanie

Pierwszy sposób:

$mysqli = new mysqli('localhost', 'root', '', 'baza_testowa');

if ($mysqli->connect_errno) {
   printf("Connect failed: %s\n", $mysqli->connect_error);
   exit();
}

Drugi sposób:

$mysqil=mysqli_connect('localhost','root', ' ', baza_testowa');

 if (mysqli_connect_errno($connect))
 {
	echo ''Connect failed. '.mysqli_connect_error();
}
0

Źle wyczytałeś. mysql_ nie jest używane. Oba podane sposoby korzystaja z mysqli_. Jeden obiektowo drugi nie.

0

Jak już zaczynasz od podstaw podstaw, to proponuję od razu podłączyć się pod PDO http://forum.php.pl/Obsluga_baz_danych_z_PDO_t221023.html

Bardzo dużo frameworków, CMSów i ogólnie narzędzi do generowania kodu w PHP korzysta z tej biblioteki, dobrze więc od razu się z nią zapoznać, szczególnie przy programowaniu obiektowym.

0

Dzięki Chłopaki za podpowiedzi ale im bardziej próbuję to zrozumieć tym więcej mam pytań a mniej odpowiedzi. Multum jest tego w necie ale jak wyzej okazuje się ze przykład który wyżej podałem to mySQLi a nie mySQL to z nowu PDO. Jednym słowem mam banie 10 na 10 :) ale nikt nie mówił że będzie łatwo, ale dzięki Wam ruszyłem z miejsca.

Połączenie z PDO ogarnąłem tak tu proszę o uwagi i rady jeśli zauważycie coś co mogło być lub powinno inaczej:

<?php
$hostname='localhost';
$username='root';
$password='';

try {
    $dbh = new PDO("mysql:host=$hostname;dbname=paging",$username,$password);

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo 'Connected to Database<br/>';

    $sql = "SELECT * FROM paging";
foreach ($dbh->query($sql) as $row)
    {
    echo $row["id"] ." - ". $row["name"] ."<br/>";
    }

    $dbh = null;
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?> 

Kiedyś zadałem tu pytanie jak ogarnąć i zrobić tabele wyników sportowych, doradziliście mi by zacząć od html-a i taką już spokojnie ogarniam. Właśnie chce się rozwijać i budować statystyki sportowe na razie na podstawie jednego klubu. Tylko tak patrze po innych stronach czy to klubowych czy to po serwisach np: 90 minut i co mnie zaskakuje dużo takich tabel wraz z danymi jest w gołym html-u, to po co mi tu bazy do tego? Pogubiłem się w tym wszystkim Jak znacie jakieś tutoriale z tematyką baz w tym kierunku to poproszę o link . Wszelkie rady czego szukać na co zwrócić uwagę(biblioteki, cokolwiek, etc.) Za wszystko dziękuję.

0

co mnie zaskakuje dużo takich tabel wraz z danymi jest w gołym html-u, to po co mi tu bazy do tego?

Oj stary, stary.. a te dane to skąd sobie biorą... z kosmosu? :) Dane są składowane w bazie danych, pobierane i odpowiednio wyświetlane. Innymi słowy, jak rozważysz swój kod, to w najprostszej postaci masz coś takiego:

$sql = "SELECT * FROM paging";
echo '<table>';
foreach ($dbh->query($sql) as $row)
    {
echo '<tr>';
echo '<td>....'; // dane
echo '</tr>';
}

i już masz pobrane dane z bazy i wyświetloną tabelkę w HTMLu. Oczywiście w przypadku stron WWW czy serwisów, wygląda to inaczej, dochodzi MVC czy jakiejś inne struktury, które ładnie pobierają i ogarniają dane na stronie. Bez baz ani rusz.

PS: Masz tu http://www.kode-blog.com/php-database-tutorial taki bardzo prosty kod łączący bazy z htmlem (powiedzmy backend z frontem). Może trochę zajarzysz co z czym się je :)

0

Oj ja głupi, faktycznie dane są pobierane dlatego je widzę w podglądzie HTML. Tutorial świetny tego mi było trzeba mógłbyś jeszcze podpowiedzieć Ty lub ktoś inny jak teraz używać css-a? Chodzi mi o to ze teraz nie mamy całej struktury tabeli w html, a np chce w 16 wierszu zrobić border i wiele innych . z tym borderem to tylko przykład np jak nadać id na ten wiersz

0

Po wielu próbach i radach wyszło mi coś takiego:
(tutaj też prośba: co powinno być inaczej, lepiej, czego mi brakuje a powinno być...)

conect.php

<?php

$db_server = "localhost";
$db_username = "root";
$db_password = "";
$db_database = "bazatestowa";
 
$conn = new PDO("mysql:host=$db_server;dbname=$db_database", $db_username, $db_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
 //Tylko do testu, by sprawdzić połączenie
    echo 'BINGO !!!<br/>';
?>

index.php

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>

<body>
<table border="1" cellspacing="5" cellpadding="5" width="100%">
	<thead>
		<tr>
			<th>No.</th>
			<th>Name</th>
		</tr>
	</thead>
	<tbody>
	<?php
		require_once('conect.php');
		$result = $conn->prepare("SELECT * FROM tabelatestowa");
		$result->execute();
		for($i=0; $row = $result->fetch(); $i++){
	?>
		<tr>
			<td><?php echo $row['id']; ?></td>
			<td><?php echo $row['name']; ?></td>
		</tr>
		<?php } ?>
	</tbody>
</table>

</body>
</html>

No i właśnie jak nadać styl w css na konkretny wiersz np: na 16-ty wiersz dodać kolor border: border-bottom:1pt solid #e8491d ; Jak to zrobić gdy tu nie mam całej struktury tabeli by nadać na ten wiersz id.

Nie doszedł bym do tego bez Was i Wielkie Dziękuję za pomoc i cierpliwość @hapertown :)

0

Masz mecz się http://miroslawzelent.pl/kurs-css/ ;) najpierw przeoraj podstawy a potem będziemy rozważać konkretne przypadki :)

0

Ale ja to przerobiłem i nie problemów z css-em. Oczywiście nie pozjadałem wszystkich rozumów ale to już ogarniam. Problem pojawia się jak wyżej ze wiersze dodaje w pętli i jak tu mam dodać na konkretny wiersz id. Nie mam całej struktury tabeli. Jak mam całą tabelkę wiersz po wierszu rozpisaną w htmlu nie mam z css problemów. Problemem jest dla mnie jak dodać id w pętli na konkretny wiersz.tu jest mój problem

0

Jeżeli weźmiesz pod uwagę np tabelę piłkarską gdzie masz listę drużyn i chciałbyś kolorami oznaczyć tych najlepszych, np pięć pierwszych rezultatów i tych najgorszych to mógłbyś dodać w pętli jakiś iterator który określałby Ci aktualny numer wiersza. Następnie ten iterator można wykorzystać do nadania odpowiednich klas które potem wykorzystasz do określenia koloru np.

$iterator=1;
foreach ($results as $result)
{
echo '<td '.($iterator<5?'class="team-on-top"':'').'>'; // itd.
$iterator++;
}

To oczywiście prosty pseudokod. Można go zoptymalizować, albo wpisać do bazy odpowiednie oznaczenia, flagi i zamiast iteratora wykorzystać wartość z bazy.
Takie rozwiązanie w większych projektach pozwala użyć jednej klasy do określenia konkretnej właściwości.

Można też dodać do CSSa właściwość ```
tr:nth-child(16)

0

Iterator jeszcze tego zbytnio nie kumam ale poczytam i właśnie o to mi chodziło by ktoś podpowiedział jak to się zwie, jakiej techniki szukać tak samo z css który podpowiedziałeś mianowicie tr:nth-child(16). Dzięki Tobie wiem czego szukać w necie. Mam jeszcze jedno pytanie jak takie tabele są aktualizowane na stronach bo nie wierze że każdy punkt każda bramka jest dodawana ręcznie, Człowiek jest omylną osobą i tu nie jedne kwiatki by wyszły. Jeśli to są dwie linijki kodu to bym o to prosił bym to sobie mógł przeanalizować, ale sądzę że to grubsza afera. Wiem że się miotam tu proszę o css, tu chce update danych, to nie do końca tak,chce się dowiedzieć jak to jest realizowane, tak to nawet nie wiem czego szukać

0

Tzn z tym iteratorem to jest prymitywne rozwiązanie, zazwyczaj są inne techniki renderowania danych, długo by gadać.. w Twoim przypadku tyle ile wiesz na razie Ci wystarczy.

Jeśli chodzi o techniki aktualizacji to naprawdę trudno powiedzieć jak to jest realizowane. Na pewno dane musi wpisywać w cokolwiek człowiek, bo maszyna raczej nie ogarnie tego co się dzieje na boisku ;) Zresztą nie wiem - podejrzewam że z każdego meczu ludzie robią jakieś sprawozdanie, te są łączone w jakaś większą strukturę (np. dla ligi) a te z kolei w jeszcze inne struktury bazodanowe (import danych). Potem pewnie można to sobie zaciągnąć z jakiegoś API poprzez XMLa albo JSONa.

To trochę jak z pogodą... Jedna osoba nie ogarnia całej pogody na świecie. To wszystko jest integrowane w jakaś strukturę a potem można dane sobie pobrać i obrobić, obczaj taki projekt: https://github.com/cmfcmf/OpenWeatherMap-PHP-Api/blob/master/Examples/CurrentWeather.php

Jak sama bibliotekę to parsowania danych sobie napiszesz to potem dane same się odświeżają, bo importujesz dane zewnętrzne i tylko wyswietlasz na stronie to co Ci zwracają

0

wybacz że tak pytam, i miągwie, dlaczego bez baz baz danych ani rusz? Jak jest różnica czy ja dane w prowadzę w my admin czy bazie na hostingu czy na goło w htmlu w tabeli. I tak trzeba dodać dwa do dwóch i tak Coś czuję że rzuciłem się z patykiem na księżyc. Ale im dłuzej analizuje takie strony, np: 90 minut to aktualizowana jest tylko tabela, wynik w terminarzu i podany skład w newsie, a reszta? wystarczy szablon zrobić i w kleić kod, dla mnie jest to szybsze niż zabawa z bazami, o wszem z baz wyciągniemy każdy wiersz każdą komórkę z osobna ale przeglądając serwisy takie dane poza tabelą i terminarzem są aktualizowane raz góra, dwa na sezon a jednak zastanawia mnie fakt skąd serwisy bukmacherskie w naszej drugiej nawet lidze biorą statystyki posiadania piłki nikt nie siedzi ze stoperem

0

Możesz zrobić to samym css-em:

tr:nth-child(16) {background:green;}

16 wiersz będzie zielony

tr:nth-child(16) td:nth-child(2) {background:green;}

druga komórka w 16 wierszu bedzie zielona

0
Świetny Krawiec napisał(a):

przeglądając serwisy takie dane poza tabelą i terminarzem są aktualizowane raz góra, dwa na sezon a jednak zastanawia mnie fakt skąd serwisy bukmacherskie w naszej drugiej nawet lidze biorą statystyki posiadania piłki nikt nie siedzi ze stoperem

Pytaj serwisów bukmacherskich.

Świetny Krawiec napisał(a):

wybacz że tak pytam, i miągwie, dlaczego bez baz baz danych ani rusz? Jak jest różnica czy ja dane w prowadzę w my admin czy bazie na hostingu czy na goło w htmlu w tabeli. I tak trzeba dodać dwa do dwóch i tak Coś czuję że rzuciłem się z patykiem na księżyc.

Możesz mieć wszystko w pliku TXT, możesz i nawet na sztywno walnąć kod w HTMLu. Nie widzę problemu.
Problem natomiast powstaje, gdy chcesz rozszerzyć funkcjonalność strony - załóżmy, że masz profil zawodnika. Takich zawodników masz 100. Możesz zrobić 100 stron na sztywno wpisując interesujące Cię dane. Załóżmy teraz, że chcesz dodać jakąś statystykę - np. ilość bramek na mecz. Możesz ręcznie przeliczać za każdym razem wszystkie mecze zawodnika i aktualizować jego dane, aktualizując potem na sztywno stronę.
Tylko, że jak masz bazę, w której masz wszystkie aktualne rozgrywki, mecze, bramki i inne statystyki, to fakt takie rzeczy (tzw. rozwijanie funkcjonalności) dodasz 100x szybciej niż ręczna aktualizacja danych + twoja praca, aby to przeliczyć.
Będziesz chciał dodać tabelę najskuteczniejszych zawodników - proszę bardzo. Jedno, dwa zapytania, prosty szablon, render i jest. Każdy mecz, który potem wpadnie do bazy, automatycznie zostanie przeliczony przez skrypt. Nie trzeba nic ręcznie aktualizować.
Będziesz chciał zrobić statystykę, jaka jest średnia dla zawodnika w każdym miesiącu - proszę bardzo. Kolejne 2-3 zapytania i statystyka jest.

Innymi słowy - nie musisz nic opierać na bazach danych. Możesz klepać w czystym kodzie. Ale jak chcesz potem zrobić coś naprawdę automatycznego, co nie wymaga od Ciebie aktualizacji 100 plików ręcznie i coś co fajnie, skutecznie i dobrze działa + nie napracować się jak osioł - naprawdę polecam zaprzyjaźnić się z bazami i tego rodzaju mechanizmami przechowywania danych.

Stary - to jest forum programistyczne. Mu tu nie rozważamy jak pracuje technologia w piłce nożnej. My się skupiamy na programowaniu. Jak masz pytanie dotyczące funkcjonowania przeliczeń statystycznych w piłce nożnej, poszperaj sobie w google, na pewno coś znajdziesz. Jak masz pytania stricte programistyczne - pisz tutaj i konkretyzuj przypadki. Bo tak, to rozwalamy ten temat w sposób zupełnie nie związany z tematem...

0

za nim zapytam o kod muszę wiedzieć jak to ugryźć mogę prosić o linijkę kodu ale nie o cały, zobacz ile mi zajęło motoanie sie z samym połączeniem z bazą które do teraz nie jest opcjonalne bo należy z bazą się rozłączyć i wiem że mi tam trochę w kodzie brakuję ale ważniejsze było dla mnie cokolwiek wyświetlić najpierw, zobacz ile szukam informacji jak css nadać na konkretny wiersz w pętli dopiero Ty i @Marcin.Miga dajecie mi punkt zaczepienia,, kazdy kurs na początku wygląda tak : połączenia nie będę przedstawiał bo szkoda czasu itd itd itp. Albo to tr:nth-child(16) {background:green;} rozumiem, ale domyśliłbyś się zapisu w nawiasie ? bo ja nie

1 użytkowników online, w tym zalogowanych: 0, gości: 1