• 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

Przed sekcją <html>

<?php

session_start();

?>

<!DOCTYPE html>

<html lang="pl">

...

Sekcja <head>

<head>

<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>

Sekcja <body> (wersja podstawowa)

<body>

...

<?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");

(2)

// 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>";

}

echo "</table>";

mysqli_free_result($rezultatWyszukiwania);

} }

// Zamknięcie połączenia:

mysqli_close($daneDoPolaczenia);

?>

</body>

(3)

Sekcja <body> (wersja rozszerzona)

<h2>Tabela z danymi</h2>

<p>Wybierz płeć i/lub miasto (wybór jest koniunkcją):</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>

<?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'];

} else {

$miastoZamieszkania = "%";

}

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

echo "<ul>";

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

if ( $plecOsoby == "%" ) {

(4)

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>";

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>";

(5)

// 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: 23 lutego 2021.

Cytaty

Powiązane dokumenty

CREATE TABLE Student(nrindeksu smallint unsigned primary key auto_increment, imie varchar(20) not null, nazwisko varchar(20) not null, adres varchar(50), data_ur date,

DWICZENIE: Wyszukaj dane kotów (id_k, imie, wiek) oraz ich band (id_b, nazwa), ale uwzględniając tylko te koty, które są starsze niż 5 lat.. DWICZENIE: Wyszukaj dane band (id_b,

Dwiczenie: Wypisz imie i wiek kotów, których wiek jest wyższy niż średni wiek kotów z bandy nr 2 (podzapytanie w sekcji WHERE).?. SELECT imie, wiek

dy nasza wersja PHP ma już odpowiednie biblioteki do współpracy z serwerem MySQL pierwszym krokiem, jaki będziemy chcieli wykonać jest połączenie z

Bez wzglêdu jednak na metodê mo¿na stwierdziæ, ¿e marka stanowi istot- ny element wartoœci niematerialnych i prawnych i z pewnoœci¹ przyczynia siê do generowania

Gdybyśmy dodali indeks do kolumny daty w tej tabeli, podczas wyszukiwania czerwca serwer MySQL sprawdziłby indeks i stwierdził, że tabela jest posortowana i zdaje sobie sprawę,

INTO OUTFILE oraz LOAD DATA INFILE INDEX MożliwośćwykonywaniaCREATE INDEX oraz DROP INDEX INSERT MożliwośćwykonywaniaINSERT LOCK TABLES MożliwośćwykonywaniaLOCK TABLES na

Głównym jego załoŜeniem była szybkość działania, toteŜ aŜ do wersji 5 nie miał zaimplementowanych wielu mechanizmów występujących w innego tego typu systemach