Witam, chciałbym pobrać atrybuty z bazy danych, lecz coś po stronie serwera mi to nie umożliwia.
Serwer Apache jest postawiony na Rasppberry pi 4B.
W consoli nie wyświetlają się żadne błędy.
Kod poniżej:
1)
<DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SKLEP</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<script src=main.js></script>
</head>
<body>
</br>
</br>
<div class="jumbotron jumbotron-fluid" style="background-image: url(image/books-1099067_1920.jpg)">
<div class="container">
<blockquote class="blockquote text-right align-text-bottom">
<p class="mb-0 font-weight-bold text-white">"Pokój bez książek jest jak ciało bez duszy."</p>
<footer class="blockquote-footer font-italic text-white">Cyceron</footer>
</div></blockquote>
</div>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">Sklep</a>
</div>
<ul class="nav navbar-nav navbar">
<li><a href="#"><span class="glyphicon glyphicon-home"></span> Strona główna</a></li>
<li><a href="#"><span class="glyphicon glyphicon-book"></span> Książki</a></li>
<li><a href="#"><span class="glyphicon glyphicon-file"></span> Regulamin</a></li>
<li><a href="#"><span class="glyphicon glyphicon-phone-alt"></span> Kontakt</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-shopping-cart"></span><span class="badge">0</span> Koszyk</a>
<div class="dropdown-menu" style="width:400px">
<div class="panel panel-warning">
<div class="panel-heading">
<div class="row">
<div class="col-md-3">Numer</div>
<div class="col-md-3">Tytuł</div>
<div class="col-md-3">Okładka książki</div>
<div class="col-md-3">Cena w zł</div>
</div>
</div>
<div class="panel-body"></div>
<div id="koszyk_ksiazka">
<!--<div class="row">
<div class="col-md-3">Numer</div>
<div class="col-md-3">Tytuł</div>
<div class="col-md-3">Okładka książki</div>
<div class="col-md-3">Cena w zł</div>
</div>-->
</div>
<div class="panel-footer"></div>
</div>
</div>
</li>
<li><a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-user"></span> Zaloguj się</a>
<ul class="dropdown-menu">
<div style="width:300px;">
<div class="panel-danger">
<div class="panel-heading">Logowanie</div>
<div class="panel-heading">
<form onsubmit="return false" id="login">
<div class="panel-heading">
<label for="email">Email</label>
<input type="email" class="form-control" id="email" required/>
<label for="haslo">Hasło</label>
<input type="haslo" class="form-control" id="haslo" required/>
<p><br/></p>
<a href="#" style="color:white; list-style:none;">Zapomniałeś hasła?</a><input type="submit" class="btn btn-success" style="float:right;">
</form>
</div>
<div class="panel-footer" id="error_msg"></div>
</div>
</div>
</ul>
</li>
<li><a href="#"><span class="glyphicon glyphicon-user"></span> Zarejestruj się</a></li>
</ul>
</div>
<div>
</nav> <!-- Koniec navbar -->
<br/>
<div class="conteiner" style="background:white">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-2 col-sx-12">
<div id="get_wydawnictwo">
</div>
<div id="get_rodzaje">
</div>
<!--<div class="nav nav-pills nav-stacked">
<li class="active"><a href="#">Rodzaje literatury</a></li>
<li class="nav-item"><a class="nav-link" href="#">Proza</a></li>
<li class="nav-item"><a class="nav-link" href="#">Kryminał</a></li>
<li class="nav-item"><a class="nav-link" href="#">Literatura faktu</a></li>
<li class="nav-item"><a class="nav-link" href="#">Biografia</a></li>
<li class="nav-item"><a class="nav-link" href="#">Fantastyka</a></li>
<li class="nav-item"><a class="nav-link" href="#">Literatura młodzieżowa</a></li>
<li class="nav-item"><a class="nav-link" href="#">Proza obca</a></li>
<li class="nav-item"><a class="nav-link" href="#">Literatura obyczajowa</a></li>
<li class="nav-item"><a class="nav-link" href="#">Literatura obca</a></li>
</div> -->
</div> <!-- koniec div col-md-2 -->
<div class="col-md-8 col-sx-12">
<div class="row">
<div class="col-md-12 col-sx-12" id="ksiazka_msg">
</div>
</div>
<div class="panel panel-info">
<div class="panel-heading">Książki</div>
<div class="panel-body">
<div id="get_ksiazka">
<!-- -->
</div>
<!---
<div class="col-md-4">
<div class="panel panel-info">
<div class="panel-heading">Tytuł</div>
<div class="panel-body">
<a href="#" data-toggle="tooltip" title="Opis!"><img src="fotki_ksiazki/hashtag.jpg" style="height:250px"></a>
</div>
<div class="panel-heading">23.23 zł
<button style="float:right;" class="btn btn-success btn-xs">Kup</button>
</div>
</div>
</div> -->
</div>
<div class="panel-footer"> 2021</div>
</div>
</div>
</div> <!-- koniec div row -->
</div>
</body>
</html>
2)
<?php
include "db.php";
if(isset($_POST["wydawnictwo"])){
$wydawnictwo_query = "SELECT * FROM wydawnictwa";
$run_query = mysqli_query($polaczenie, $wydawnictwo_query);
echo "
<div class='nav nav-pills nav-stacked'>
<li class='active'><a href='#'>Wydawnictwo</a></li>
";
if(mysqli_num_rows($run_query) > 0) {
while($row = mysqli_fetch_array($run_query)){
$w_id = $row["wydawnictwo_id"];
$w_nazwa = $row["wydawnictwo_nazwa"];
echo "
<li><a href='#' class='wydawnictwo' w_id='$w_id'>$w_nazwa</a></li>
";
}
echo "
</div>
";
}
}
if(isset($_POST["rodzaje"])){
$rodzaje_query = "SELECT * FROM rodzaj";
$run_query = mysqli_query($polaczenie, $rodzaje_query);
echo "
<div class='nav nav-pills nav-stacked'>
<li class='active'><a href='#'>Rodzaje literackie</a></li>
";
if(mysqli_num_rows($run_query) > 0) {
while($row = mysqli_fetch_array($run_query)){
$r_id = $row['rodzaj_id'];
$r_ksiazki = $row['rodzaj_ksiazki'];
echo "
<li><a href='#'>$r_ksiazki</a></li>
";
}
echo "
</div>
";
}
}
if(isset($_POST["getksiazka"])) {
$ksiazka_query = "SELECT * FROM ksiazki ORDER BY RAND() LIMIT 0,9";
$run_query = mysqli_query($polaczenie, $ksiazka_query);
if(mysqli_num_rows($run_query) > 0){
while($row = mysqli_fetch_array($run_query)){
$k_id = $row['ksiazka_id'];
$k_tytul = $row['ksiazka_tytul'];
$k_autor = $row['ksiazka_autor'];
$k_wydawnictwo = $row['ksiazka_wydawnictwo'];
$k_rodzaj = $row['ksiazka_rodzaj'];
$k_cena = $row['ksiazka_cena'];
$k_opis = $row['ksiazka_opis'];
$k_zdjecie = $row['ksiazka_zdjecie'];
echo
"
<div class='col-md-4'>
<div class='panel panel-info'>
<div class='panel-heading'>$k_tytul, $k_autor</div>
<div class='panel-body'>
<a href='#' data-toggle='tooltip' title='Opis!'><img src='fotki_ksiazki/$k_zdjecie' style='height:250px; height:160px;'></a>
</div>
<div class='panel-heading'>$k_cena zł
<button class='$k_id' style='float:right;' class='btn btn-success btn-xs'>Kup</button>
</div>
</div>
</div>
";
}
}
}
?>
3)
jQuery(function(){
alert("hi");
wyd();
rod();
ksiazka();
function wyd(){
$.ajax({
url: "action.php",
method: "POST",
data: {wydawnictwo:1},
success: function(data){
$("#get_wydawnictwo").html(data);
},
error: function(blad) {
alert ("wystąpił błąd");
console.log(blad);
}
});
return false;
}
function rod(){
$.ajax({
url: "action.php",
method: "POST",
data: {rodzaje:1},
success: function(data){
$("#get_rodzaje").html(data);
}
});
}
function ksiazka(){
$.ajax({
url: "action.php",
method: "POST",
data: {getKsiazka:1},
success: function(data){
$("#get_ksiazka").html(data);
}
});
}
});
4)
<?php
$servername = "localhost";
$username = "mysql_user";
$password = "tajnehaslo";
$db = "sklep";
$polaczenie = mysqli_connect($servername, $username, $password, $db);
if(!polaczenie) {
die("Connection failed: " . mysqli_connect_error());
}
?>
Wszystko pod kątem Ajaxa zostało sprawdzone.
https://forum.pasja-informatyki.pl/525762/pobranie-danych-z-bazy-danych-php-ajax-js?show=526009#c526009
Po napisaniu krótkiego kodu sprawdzającego połączeniewyniki wyszły negatywne.
<?php
include dp.php;
echo("TEST PHP OK - " . date('Y-m-d H:i:s'));
if(mysqli_connect('localhost','mysql_user','tajnehaslo','sklep')){
echo "polaczono";
}else{
echo "niepolaczono";
}
if(mysqli_connect('localhost','mysql_user','tajnehaslo','sklep')){
if(mysqli_select_db('wydawnictwa')){
echo " wybrano baze wydawnictwa, ";
}else{
echo " niewybrano baze wydawnictwa, ";
}
if(mysqli_select_db('rodzaj')){
echo " wybrano baze rodzaj, ";
}else{
echo " niewybrano baze rodzaj, ";
}
if(mysqli_select_db('ksiazka')){
echo " wybrano baze ksiazka, ";
}else{
echo " niewybrano baze ksiazka, ";
}
}
?>
Link do wyników: https://imgur.com/a/fcjWBQ5
Po wprowadzeniu kodu poniżej strona internetowa wyświetla poprawnie zawartość bazy danych.
<?php
$mysqli = new mysqli("localhost", "mysql_user", "tajnehaslo", "sklep");
if($mysqli->connect_error) {
exit('Could not connect');
}
$sql = "SELECT wydawnictwo_id, wydawnictwo_nazwa FROM wydawnictwa";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $_GET['q']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($cid, $cname);
$stmt->fetch();
$stmt->close();
echo "<table>";
echo "<tr>";
echo "<th>WydawnictwoID:</th>";
echo "<td>" . $cid . "</td>";
echo "<th>WydawnictwoNAZWA:</th>";
echo "<td>" . $cname . "</td>";
echo "</table>";
?>
Chciałbym się dowiedzieć jak temu można zaradzić. Czy trzeba coś zmienia w plikach konfiguracyjnych serwera, czy może trzeba zaktualizować jakieś biblioteki?
Wersja Apache: Apache/2.4.38 (Raspbian)
Wersja PHP: 7.3.19-1~deb10u1
Wersja klienta bazy danych: libmysql - mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $
Za odpowiedź z góry dziękuję. :)