Hi, could someone explain to me the difference between mysqli_fetch_array and mysqli_num_rows please ?
//INDEX
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Úvodní strana</title>
</head>
<body>
<header>
<h1>Grindewald</h1>
<h2>Autor: Brumbál</h2>
</header>
<nav>
<ul>
<li>Počítadlo přístupů</li>
<li><a href="./kniha_navstev.php">Kniha návštěv</a></li>
<li class="subButton">Práce s databází
<ul class="submenu">
<li><a href="./vloz.php">Vkládání</a></li>
<li><a href="./zobraz.php">Zobrazení</a></li>
<li><a href="./seskup.php">Seskupování</a></li>
<li><a href="./smaz.php">Smazání</a></li>
<li><a href="./vyhledej.php">Vyhledávání</a></li>
</ul>
</li>
</ul>
</nav>
<article>
<?php
include("pripoj.php");
$ip_address = $_SERVER['REMOTE_ADDR'];
$query = "INSERT INTO pocitadlo(ip_adresa) VALUES ('$ip_address')";
$response = mysqli_query($connection, $query);
if ($response !=1) echo "Nepodařilo se kontaktovat databázi";
//prvni zpusob
$query = "SELECT poradi_navstevy FROM pocitadlo";
$response = mysqli_query($connection, $query);
if(mysqli_num_rows($response)>0)
{
$pocitadlo1 = mysqli_num_rows($response);
}
else
{
$pocitadlo1 = "Chyba!";
}
//druhy zpusob
$query = "SELECT poradi_navstevy FROM pocitadlo ORDER BY poradi_navstevy DESC LIMIT 1";
$response = mysqli_query($connection, $query);
if(mysqli_num_rows($response)>0)
{
$pocitadlo2 = mysqli_fetch_row($response)[0];
}
else{
$pocitadlo2 = "Chyba!";
}
echo "<h3>Jste $pocitadlo1 této stránky</h3>";
echo "<h3>Jste $pocitadlo2 této stránky</h3>";
?>
</article>
</body>
</html>
//VLOZIT
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vkládání</title>
</head>
<body>
<header>
<h1>Vložení do databáze</h1>
<a href="./index.php">Zpět na hlavní stránku</a>
</header>
<form method="POST">
<fieldset>
<legend>Základní informace</legend><br>
<label for="jm">Jméno:</label><input type="text" name="jmeno" id="jm" placeholder="Zadejte jméno" required><br><br>
<label for="pr">Příjmení:</label><input type="text" name="prijmeni" id="pr" placeholder="Zadejte příjmení" required><br><br>
Pohlaví: <br>
<label for="m">Muž</label><input type="radio" name="pohlavi" id="m" checked>
<label for="z">Žena</label><input type="radio" name="pohlavi" id="m" checked>
</fieldset>
<br>
<fieldset>
<legend>Skupina/Vzdělání</legend>
<label for="skup">Skupina:</label>
<select name="skupina" id="skup" required>
<option value="zaměstnanec">Zaměstnanec</option>
<option value="nezaměstnaný">Nezaměstnaný</option>
<option value="OSVČ">OSVČ</option>
<option value="žák/student">Žák/Student</option>
<option value="důchodce">Důchodce</option>
</select>
<br><br>
<label for="vzdel">Vzdělání:</label>
<select name="vzdelani" id="vzdel" required>
<option value="ZŠ">ZŠ</option>
<option value="SŠ">SŠ</option>
<option value="VŠ">VŠ</option>
</select>
<br>
</fieldset>
<br>
<fieldset>
<legend>Místo bydliště</legend>
<label for="obec">Obec:</label><input type="text" name="obec" id="obec" required> <br><br>
<label for="kraj">Kraj:</label>
<select name="kraj" id="kraj" required>
<option value="Praha">Hlavní město Praha</option>
<option value="Středočeský kraj">Středočeský kraj</option>
<option value="Jihočeský kraj">Jihočeský kraj</option>
<option value="Plzeňský kraj">Plzeňský kraj</option>
<option value="Karlovarský kraj">Karovarský kraj</option>
<option value="Ústecký kraj">Ústecký kraj</option>
<option value="Liberecký kraj">Liberecký kraj</option>
<option value="Královehradecký kraj">Královehradecký kraj</option>
<option value="Pardubický kraj">Pardubický kraj</option>
<option value="Olomoucký kraj">Olomoucký kraj</option>
<option value="Moravskoslezský kraj">Moravskoslezský kraj</option>
<option value="Jihomoravský kraj">Jihomoravský kraj</option>
<option value="Zlínský kraj">Zlínský kraj</option>
<option value="Vysočina">Kraj Vysočina</option>
</select> <br><br>
</fieldset>
<br>
<input type="submit" value="Vložit">
</form>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
include("pripoj.php");
function testData($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$jmeno = testData($_POST["jmeno"]);
$prijmeni = testData($_POST["prijmeni"]);
$pohlavi = testData($_POST["pohlavi"]);
$skupina = testData($_POST["skupina"]);
$vzdelani = testData($_POST["vzdelani"]);
$obec = testData($_POST["obec"]);
$kraj = testData($_POST["kraj"]);
$query = "INSERT INTO data3(prijmeni, jmeno, pohlavi, skupina, vzdelani, obec, kraj) VALUES ('$prijmeni', '$jmeno', '$pohlavi', '$skupina', '$vzdelani', '$obec', '$kraj')";
$response = mysqli_query($connection, $query);
if($response == 1)
{
echo "<div class='tabulka'> Následující záznam byl přidán<br><br>";
echo "<table border=1>";
echo "<tr><th>Příjmení</th><th>Jméno</th><th>Pohlaví</th><th>Skupina</th><th>Vzdělání</th><th></th><th>Obec</th><th>Kraj</th></tr>";
echo "<tr><th>$prijmeni</th><th>$jmeno</th><th>$pohlavi</th><th>$skupina</th><th>$vzdelani</th><th></th><th>$obec</th><th>$kraj</th></tr>";
echo "</table> </div>";
}
else echo "Došlo k chybě při vkládání";
mysqli_close($connection);
}
?>
</body>
</html>
//CONNECTION
<?php
$server = "localhost";
$user = "root";
$pass = "";
$database =
$connection = mysqli_connect($server, $user, $pass, $database);
if(!$connection) die("Nepodařilo se připojit k databázi.");
else mysqli_set_charset($connection, "utf8");
?>
//THE BIBLE
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Kniha návštěv</title>
</head>
<body>
<header>
<h1>Kniha návštěv</h1>
<a href="./index.php">Zpět na hlavní stránku</a><br><br>
</header>
<form method="POST" class="zpravy">
<fieldset>
<legend>Zanechte zprávu:</legend>
<br>
<label for="jm">Jméno: </label><input type="text" name="jmeno" id="jm" required><br><br>
<label for="zp">Zpráva: </label><br><textarea name="zprava" id="zp" cols="30" rows="10" maxlength="255" placeholder="Sem napište zprávu" required></textarea><br><br><br>
<label for="gdpr">Souhlasím se zpracováním údajů: </label><input type="checkbox" id="gdpr" required><br><br>
<input type="submit" value="Odeslat">
</fieldset>
</form>
<div class="zpravy">
<?php
//Tohle je cast, ktera slouzi jenom k vypisovani zprav
//pripojeni k dtb
include("connect.php");
//select dotaz a nasledna odpoved - LIMIT 10 mi limituje pouze poslednich 10 zprav
$query = "SELECT * FROM kniha_navstev ORDER BY id_prispevku DESC LIMIT 10";
$response = mysqli_query($connection, $query);
//vypisovani dat z odpovedi do tabulky
while($row = mysqli_fetch_array($response))
{
echo "<br><div class='zprava'>";
echo "<span>Datum a čas zprávy:</span> $row[cas]<br>";
echo "<span>Jméno:</span> $row[jmeno]<br>";
echo "<span>Zpráva:</span><br> $row[zprava] <br>";
echo "</div>";
}
//ukonceni pripojeni
mysqli_close($connection);
?>
</div>
</body>
</html>
<?php
//Tohle je cast slouzici jenom k pridavani zprav do dtb
if($_SERVER["REQUEST_METHOD"] == "POST")
{
include("connect.php");
//kontrola vstupu
function chcekInputData($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$jmeno = chcekInputData($_POST["jmeno"]);
$zprava = chcekInputData($_POST["zprava"]);
//nastaveni casoveho pasma a formatu casu
date_default_timezone_set("Europe/Prague");
$datum = date('d.m.Y H:i:s');
//dotaz a odopved
$query = "INSERT INTO kniha_navstev(jmeno, zprava, cas) VALUES ('$jmeno', '$zprava', '$datum')";
$response = mysqli_query($connection, $query);
//kontrola spravneho odeslani
if($response != 1)
{
echo "Chyba komunikace s databází!";
}
else
{
//ukonceni pripojeni a nasledny refresh stranky, aby se zobrazili nejnovejsi zpravy
mysqli_close($connection);
header("Refresh:0");
}
}
?>
//SESKUP
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Seskupování dat</title>
</head>
<body>
<header>
<h1>Seskupení dat z databáze</h1>
<a href="./index.php">Zpět na hlavní stránku</a><br><br>
</header>
<form method="POST">
<fieldset>
<legend>Vyber parametry pro seskupení</legend><br>
<label for="param">Sloupec pro seskupení: </label>
<select name="parametr" id="param" required>
<option value="prijmeni">Příjmení</option>
<option value="jmeno">Jméno</option>
<option value="pohlavi">Pohlaví</option>
<option value="skupina">Skupina</option>
<option value="vzdelani">Vzdělání</option>
<option value="obec">Obec</option>
<option value="kraj">Kraj</option>
</select><br><br>
Řazení výsledků: <br>
<input type="radio" name="razeni" value="DESC" id="sest" checked> <label for="sest">Sestupně</label>
<input type="radio" name="razeni" value="ASC" id="vzest"> <label for="vzest">Vzestupně</label>
<br><br>
<input type="submit" value="Zobrazit">
</fieldset>
</form><br>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
//pripojeni k dtb
include('pripoj.php');
//kontrola vstupnich dat
function testData($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$parametr = testData($_POST["parametr"]);
$razeni = testData($_POST["razeni"]);
//dotaz a odpoved - mam count(prijmeni), protoze v tabulce neni urcen primarni klic
$query = "SELECT $parametr, count(prijmeni) FROM data3 GROUP BY $parametr ORDER BY count(prijmeni) $razeni";
$response = mysqli_query($connection, $query);
//vypis dat z odpovedi do tabulky
echo "<div class='tabulka'><table border=1>";
echo "<tr><th>$parametr</th><th>Počet výskytů</th></tr>";
while ($row = mysqli_fetch_array($response))
{
echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>";
}
echo "</table></div>";
//ukonceni pripojeni
mysqli_close($connection);
}
else echo "<div class='tabulka'>Vyber sloupec.</div>";
?>
</body>
</html>
//SEARCH
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Vyhledávání dat</title>
</head>
<body>
<header>
<h1>Vyhledávání dat v databázi</h1>
<a href="./index.php">Zpět na hlavní stránku</a><br><br>
</header>
<form method="POST">
<fieldset>
<legend>Zadejte parametry k vyhledávání</legend><br>
<label for="jm">Jméno: </label> <input type="text" name="jmeno" id="jm" placeholder="Zadejte jméno"><br><br>
<label for="pr">Příjmení: </label> <input type="text" name="prijmeni" id="pr" placeholder="Zadejte příjmení"><br><br>
<input type="submit" value="Vyhledat">
</fieldset>
</form> <br>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
//Tento kod je prakticky zrecyklovany kod ze smaz.php, akorat bez delete dotazu
function dataCheck($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if($_POST["jmeno"] == "" && $_POST["prijmeni"] == "")
{
echo "<div class='tabulka'>Zadejte alespoň jeden údaj.</div>";
}
else
{
if ($_POST["jmeno"] != "")
{
$jmeno = dataCheck($_POST["jmeno"]);
}
else $jmeno = '%';
if ($_POST["prijmeni"] != "")
{
$prijmeni = dataCheck($_POST["prijmeni"]);
}
else $prijmeni = '%';
include("pripoj.php");
$query = "SELECT * FROM data3 WHERE jmeno like '$jmeno' AND prijmeni like '$prijmeni'";
$response = mysqli_query($connection, $query);
if(mysqli_num_rows($response) > 0)
{
if (mysqli_num_rows($response) == 1)
{
echo "<div class='tabulka'>Byl nalezen 1 záznam. <br><br>";
}
else if (mysqli_num_rows($response) == 2)
{
echo "<div class='tabulka'>Byly nalezeny 2 záznamy. <br><br>";
}
else echo "<div class='tabulka'>Bylo nalezeno ".mysqli_num_rows($response) ." záznamů. <br><br>";
echo "<table border=1>";
echo "<tr><th>Příjmení</th><th>Jméno</th><th>Pohlaví</th><th>Skupina</th><th>Vzdělání</th><th>Obec</th><th>Kraj</th></tr>";
while ($row = mysqli_fetch_array($response))
{
echo "<tr><td>$row[prijmeni]</td><td>$row[jmeno]</td><td>$row[pohlavi]</td><td>$row[skupina]</td><td>$row[vzdelani]</td><td>$row[obec]</td><td>$row[kraj]</td></tr>";
}
echo "</table></div>";
}
else echo "<div class='tabulka'>Záznam nebyl nalezen.</div>";
mysqli_close($connection);
}
}
?>
</body>
</html>
//DELETE
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Smazání dat</title>
</head>
<body>
<header>
<h1>Mazání dat z databáze</h1>
<a href="./index.php">Zpět na hlavní stránku</a><br><br>
</header>
<form method="POST">
<fieldset>
<legend>Vyber záznam pro smazání</legend><br>
<label for="jm">Jméno: </label> <input type="text" name="jmeno" id="jm" placeholder="Zadejte jméno"><br><br>
<label for="pr">Příjmení: </label> <input type="text" name="prijmeni" id="pr" placeholder="Zadejte příjmení"><br><br>
<input type="submit" value="Smazat">
</fieldset>
</form> <br><br>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
//kontrola vstupnich dat
function dataCheck($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
//kontrola, jestli uzivatel nevyplnil ani jedno z poli
if($_POST["jmeno"] == "" && $_POST["prijmeni"] == "")
{
echo "<div class='tabulka'>Zadejte alespoň jeden údaj.</div>";
}
else
{
//doplneni zastupneho znaku, kdyz neni vlozena moznost
if ($_POST["jmeno"] != "")
{
$jmeno = dataCheck($_POST["jmeno"]);
}
else $jmeno = '%';
if ($_POST["prijmeni"] != "")
{
$prijmeni = dataCheck($_POST["prijmeni"]);
}
else $prijmeni = '%';
//pripojeni k databazi
include("pripoj.php");
//dotaz a odpoved
//je to select, aby bylo videt co se maze
$query = "SELECT * FROM data3 WHERE jmeno like '$jmeno' AND prijmeni like '$prijmeni'";
$response = mysqli_query($connection, $query);
//kontrola, zda byl nalezen zaznam
if(mysqli_num_rows($response) > 0)
{
//vypisovani poctu smazanych udaju s rozlisenim pro 1,2,x udaju
if (mysqli_num_rows($response) == 1)
{
echo "<div class='tabulka'>Byl smazán 1 záznam. <br><br>";
}
else if (mysqli_num_rows($response) == 2)
{
echo "<div class='tabulka'>Byly smazány 2 záznamy. <br><br>";
}
else echo "<div class='tabulka'>Bylo smazáno ".mysqli_num_rows($response) ." záznamů. <br><br>";
//vypis tabulky udaju ktere budou smazany
echo "<table border=1>";
echo "<tr><th>Příjmení</th><th>Jméno</th><th>Pohlaví</th><th>Skupina</th><th>Vzdělání</th><th>Obec</th><th>Kraj</th></tr>";
while ($row = mysqli_fetch_array($response))
{
echo "<tr><td>$row[prijmeni]</td><td>$row[jmeno]</td><td>$row[pohlavi]</td><td>$row[skupina]</td><td>$row[vzdelani]</td><td>$row[obec]</td><td>$row[kraj]</td></tr>";
}
echo "</table></div>";
//mazaci dotaz
$query = "DELETE FROM data3 WHERE jmeno like '$jmeno' AND prijmeni like '$prijmeni'";
$response = mysqli_query($connection, $query);
//odpojeni od dtb
mysqli_close($connection);
}
else echo "<div class='tabulka'>Záznam nebyl nalezen.</div>";
}
}
?>
</body>
</html>
//SHOW
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Zobrazení dat</title>
</head>
<body>
<header>
<h1>Zobrazení dat z databáze</h1>
<a href="./index.php">Zpět na hlavní stránku</a><br><br>
</header>
<form method="POST">
<fieldset>
<legend>Vyber parametry pro zobrazenmí</legend><br>
<label for="param">Sloupec pro seřazení: </label>
<select name="parametr" id="param" required>
<option value="prijmeni">Příjmení</option>
<option value="jmeno">Jméno</option>
<option value="pohlavi">Pohlaví</option>
<option value="skupina">Skupina</option>
<option value="vzdelani">Vzdělání</option>
<option value="obec">Obec</option>
<option value="kraj">Kraj</option>
</select><br><br>
Způsob řazení výsledků: <br>
<input type="radio" name="razeni" value="DESC" id="sest" checked> <label for="sest">Sestupně</label>
<input type="radio" name="razeni" value="ASC" id="vzest"> <label for="vzest">Vzestupně</label>
<br><br>
<input type="submit" value="Zobrazit">
</fieldset>
</form><br>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
//pripojeni k dtb
include('pripoj.php');
//kontrola vstupnich udaju
function testData($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$parametr = testData($_POST["parametr"]);
$razeni = testData($_POST["razeni"]);
//dotaz, odpoved
$query = "SELECT * FROM data3 ORDER BY $parametr $razeni";
$response = mysqli_query($connection, $query);
//vypis vyslednych udaju do tabulky
echo "<div class='tabulka'><table border=1>";
echo "<tr><th>Příjmení</th><th>Jméno</th><th>Pohlaví</th><th>Skupina</th><th>Vzdělání</th><th>Obec</th><th>Kraj</th></tr>";
while ($row = mysqli_fetch_array($response))
{
echo "<tr><td>$row[prijmeni]</td><td>$row[jmeno]</td><td>$row[pohlavi]</td><td>$row[skupina]</td><td>$row[vzdelani]</td><td>$row[obec]</td><td>$row[kraj]</td></tr>";
}
echo "</table></div>";
//odpojeni od dtb
mysqli_close($connection);
}
else echo "<div class='tabulka'>Vyber způsob řazení.</div>";
?>
</body>
</html>