• Nie Znaleziono Wyników

MySQL - Pobieranie danych

N/A
N/A
Protected

Academic year: 2022

Share "MySQL - Pobieranie danych"

Copied!
5
0
0

Pełen tekst

(1)

MySQL - Pobieranie danych

© Copyright by 3bird Projects 2021, http://edukacja.3bird.pl

Uwagi ogólne

Program wczytuje zawartość bazy danych umieszczonej na hostingu i formatuje ją do postaci tabeli. W wersji podstawowej, wczytywana jest tylko sama tabela (ocena „dobra”), zaś w wersji rozszerzonej mamy możliwość filtrowania bazy danych (ocena „bardzo dobra”).

Uwaga! Kod w PHP kończy się zazwyczaj znakiem średnika (na tej podstawie wiemy, że jest to koniec linii). Działa tylko wtedy, gdy zostanie wysłany na hosting (pliki należy przesłać zazwyczaj do folderu „public_html”).

Uwaga: Nigdy nie wolno kopiować kodu z PDF-a, gdyż zawiera on niewidoczne znaki końca linii i tzw. twarde odstępy. Kod należy przepisać ze zrozumieniem.

Przed sekcją <html>

<?php

session_start();

?>

<!DOCTYPE html>

<html lang="pl">

Sekcja <head>

<head>

<!-- (tutaj możemy umieścić różne opcje strony, kodowanie znaków, tytuł strony, itp.) -->

<style>

table

{border-style: solid;

border-width: 2px;

width: 100%;

border-collapse: collapse;

} th

{border-style: solid;

border-color: #000000;

border-width: 2px;

color: #000000;

background-color: #c6c6c6;

text-align: center;}

td

{border-style: solid;

border-width: 1px;

padding: 5px;}

</style>

</head>

(2)

Sekcja <body> (wersja podstawowa)

<body>

<h1>Pobieranie danych</h1>

<?php

// Połączenie z bazą danych.

$daneDoPolaczenia = mysqli_connect("localhost", "nazwaUżytkownika", "hasło",

"nazwaBazyDanych");

// lub alternatywnie, jeśli chcemy na stałe otworzyć połączenie:

// $daneDoPolaczenia = new mysqli("localhost", "nazwaUżytkownika", "hasło",

"nazwaBazy");

// Sprawdzamy połączenie.

if ($daneDoPolaczenia === false) {

die("Wystąpił problem z połączeniem z bazą danych: " . mysqli_connect_error());

}

// Definiujemy, co chcemy wyszukać w tabeli daneOsobowe:

$definicjaWyszukiwaniaRekordow = "SELECT * FROM daneOsobowe WHERE Plec='K'";

// Kodowanie połączenia:

// mysqli_set_charset ( $daneDoPolaczenia, 'utf8mb4' );

// lub alternatywnie (gdy mamy na stałe otwarte połączenie):

// $nazwaBazy -> query("SET NAMES utf8mb4");

// lub jeszcze inaczej:

mysqli_query($daneDoPolaczenia, "SET NAMES utf8mb4");

mysqli_query($pułapka);

// Umieszczanie danych w postaci tabelki:

if ($rezultatWyszukiwania = mysqli_query($daneDoPolaczenia,

$definicjaWyszukiwaniaRekordow)) {

if (mysqli_num_rows($rezultatWyszukiwania) > 0) { echo "<table>";

echo "<tr>";

echo "<th>Nazwisko</th>";

echo "<th>Imię</th>";

echo "<th>Miasto</th>";

echo "<th>Wiek</th>";

echo "<th>Płeć</th>";

echo "</tr>";

while($wiersz = mysqli_fetch_array($rezultatWyszukiwania)){

echo "<tr>";

echo "<td>" . $wiersz['Nazwisko'] . "</td>";

echo "<td>" . $wiersz['Imie'] . "</td>";

echo "<td>" . $wiersz['Miasto'] . "</td>";

echo "<td>" . $wiersz['Wiek'] . "</td>";

echo "<td>" . $wiersz['Plec'] . "</td>";

echo "</tr>";

}

(3)

mysqli_free_result($rezultatWyszukiwania);

} }

// Zamknięcie połączenia:

mysqli_close($daneDoPolaczenia);

?>

</body>

Sekcja <body> (wersja rozszerzona)

<h2>Tabela z danymi</h2>

<p>Wybierz płeć i/lub miasto (wybór jest koniunkcją):</p>

<p>Nie wolno kopiować kodu z PDF!</p>

<form action="informatyka-mysql-pobieranie-danych.php" method="post" style="margin- bottom: 1cm;">

<input type="radio" id="kobieta" name="plec" value="K" />

<label for="kobieta">Kobieta</label><br>

<input type="radio" id="mezczyzna" name="plec" value="M" />

<label for="mezczyzna">Mężczyzna</label><br><br><br>

<label for="miasto">Miasto: </label><br><br>

<input type="text" id="miasto" name="miasto" /><br><br>

<input type="submit" value="Pobierz dane..." />

</form>

<p>Nie wolno kopiować kodu z PDF!</p>

<?php

// Połączenie z bazą danych.

$daneDoPolaczenia = mysqli_connect("localhost", "nazwaUżytkownika", "hasło",

"nazwaBazyDanych");

// lub alternatywnie, jeśli chcemy na stałe otworzyć połączenie:

// $daneDoPolaczenia = new mysqli("localhost", "rsurma_logger", "Armagedon1",

"rsurma_pobieranie_danych");

// Sprawdzamy połączenie.

if ($daneDoPolaczenia === false) {

die("Wystąpił problem z połączeniem z bazą danych: " . mysqli_connect_error());

}

// Kryteria do wyszukiwania:

if (isset($_POST['plec'])) {

$plecOsoby = $_POST['plec'];

} else {

// Znak % jest w SQL wildcard'em, pełni tę samą funkcję, jaką w systemach pełni *:

$plecOsoby = "%";

}

if ( isset($_POST['miasto']) and !empty($_POST['miasto']) ) {

$miastoZamieszkania = $_POST['miasto'];

}

(4)

else {

$miastoZamieszkania = "%";

}

echo "<p>Nie wolno kopiować kodu z PDF!</p>";

echo "<p>Użytkownik wybrał następujące kryteria pobierania danych:</p>";

echo "<ul>";

echo "<li><span class='underline'>Płeć</span>: ";

if ( $plecOsoby == "%" ) { echo "nie określono";

}

echo " (<b>$plecOsoby</b>).</li>";

echo "<li><span class='underline'>Miasto</span>: ";

if ( $miastoZamieszkania == "%" ) { echo "nie określono";

}

echo " (<b>$miastoZamieszkania</b>).</li>";

echo "</ul>";

// Definiujemy, co chcemy wyszukać w tabeli daneOsobowe:

$definicjaWyszukiwaniaRekordow = "SELECT * FROM daneOsobowe WHERE Plec LIKE '$plecOsoby' AND Miasto LIKE '$miastoZamieszkania'";

// Kodowanie połączenia:

// mysqli_set_charset ( $daneDoPolaczenia, 'utf8mb4' );

// lub alternatywnie (gdy mamy na stałe otwarte połączenie):

// $rsurma_pobieranie_danych -> query("SET NAMES utf8mb4");

// lub jeszcze inaczej:

mysqli_query($daneDoPolaczenia, "SET NAMES utf8mb4");

// Umieszczanie danych w postaci tabelki.

// Jeśli do zmiennej $rezultatWyszukiwania zostało przypisane Połączenie oraz

$definicjaWyszukiwaniaRekordow, wtedy...

if ($rezultatWyszukiwania = mysqli_query($daneDoPolaczenia,

$definicjaWyszukiwaniaRekordow)) {

// Jeśli został znaleziony chociaż jeden rekord spełniający kryteria, to:

if (mysqli_num_rows($rezultatWyszukiwania) > 0) { echo "<table>";

echo "<tr>";

echo "<th>Nazwisko</th>";

echo "<th>Imię</th>";

echo "<th>Miasto</th>";

echo "<th>Wiek</th>";

echo "<th>Płeć</th>";

echo "</tr>";

// Tak długo, jak udaje się wydobyć dane z kolejnych rekordów,

// przypisz je do zmiennej $wiersz, a następnie wypisz każdą komórkę w wierszu:

while($wiersz = mysqli_fetch_array($rezultatWyszukiwania)) { echo "<tr>";

(5)

echo "<td>" . $wiersz['Nazwisko'] . "</td>";

echo "<td>" . $wiersz['Imie'] . "</td>";

echo "<td>" . $wiersz['Miasto'] . "</td>";

echo "<td>" . $wiersz['Wiek'] . "</td>";

echo "<td>" . $wiersz['Plec'] . "</td>";

echo "</tr>";

}

echo "</table>";

// Czyści zmienną $rezultatWyszukiwania:

mysqli_free_result($rezultatWyszukiwania);

} } else {

echo "<p style='color: #ff0000;'>Wystąpił błąd! Możliwe przyczyny:</p> <ul style='color: #ff0000;'><li>tabela lub kolumny o tych nazwach nie istnieją;</li><li>ilość nawiasów klamrowych otwierających różni się od ilości nawiasów zamykających.</li></ul>";

}

// Zamknięcie połączenia

mysqli_close($daneDoPolaczenia);

?>

Ostatnia aktualizacja: 21 października 2021.

Cytaty

Powiązane dokumenty

 uzasadnić znaczenie bezwzględnego stosowania się do zaleceń różnych służb i innych podmiotów;. 

Popełnia liczne błędy podczas obliczenia sum i różnic w zakresie 20 nawet używając liczmanów, nie zawsze prawidłowo posługuje się znakami działań w dodawaniu

– projektuje doświadczenia, w których zbada właściwości tlenu, tlenku węgla(IV), wodoru – zapisuje słownie przebieg różnych rodzajów reakcji chemicznych –

Uczeń nieobecny na zajęciach jest zobowiązany do uzupełnienia wiedzy z zajęć oraz braków w zeszycie przedmiotowym/ćwiczeniówce powstałych w trakcie jego nieobecności –

ocena dopuszczająca ocena dostateczna ocena dobra ocena bardzo dobra ocena celująca2. Organizm człowieka jako funkcjonalna

• uzasadnić znaczenie bezwzględnego stosowania się do zaleceń służb i innych podmiotów;. • uzasadnić

• uzasadnić znaczenie bezwzględnego stosowania się do zaleceń służb i innych podmiotów;. • uzasadnić

gu oraz określić ogólny wzór ciągu na podstawie danego wzoru na sumę n początko- wych wyrazów ciągu. • znaleźć wzór ogólny ciągu określonego rekurencyjnie w