• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

łączenie mysql z php

VPS Starter Arubacloud
0 głosów
1,114 wizyt
pytanie zadane 24 marca 2016 w SQL, bazy danych przez anhydryt Początkujący (290 p.)

Witam, 

Mam problem. Staram sie połaczyc swoja BD z php, podobnie jak Pan Miroslaw Zelent, lecz w ogole nie widze rezultatów w przeglądarce.

oraz kody z folderu htcdocs (XAMPP) 

<?php
    $host="dealer"; // Nazwa hosta
    $user="localhost"; // Nazwa uzytkownika mysql
    $password=""; // Haslo do bazy
    $database="samochody"; // Nazwa bazy
    $table1="auta"; //Nazwa tabeli
    
?> 

// dbconnect.php

<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"pl-PL\">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
    <title>Rezultat zapytania</title>
</head>
    
<body>
    
    <table width="1000" align="center" border="1" bordercolor="#d5d5d5"  cellpadding="0" cellspacing="0">
        <tr>
        <?php
            ini_set("display_errors", 0);
            require_once "dbconnect.php";
            $polaczenie = mysqli_connect($host, $user, $password);
            mysqli_query($polaczenie, "SET CHARSET utf8");
            mysqli_query($polaczenie, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
            mysqli_select_db($polaczenie, $database);
            
            $zapytanietxt = file_get_contents("zapytanie.txt");
            
            $rezultat = mysqli_query($polaczenie, $zapytanietxt);
            $ile = mysqli_num_rows($rezultat);
            
            echo "znaleziono: ".$ile;
if ($ile>=1) 
{
echo<<<END
<td width="50" align="center" bgcolor="e5e5e5">idklienta</td>
<td width="100" align="center" bgcolor="e5e5e5">marka</td>
<td width="100" align="center" bgcolor="e5e5e5">model</td>
<td width="100" align="center" bgcolor="e5e5e5"rocznik</td>
<td width="50" align="center" bgcolor="e5e5e5">kolor</td>

</tr><tr>
END;
}

    for ($i = 1; $i <= $ile; $i++) 
    {
        
        $row = mysqli_fetch_assoc($rezultat);
        $a1 = $row['idauto'];
        $a2 = $row['marka'];
        $a3 = $row['model'];
        $a4 = $row['rocznik'];
        $a5 = $row['kolor'];
        
            
        
echo<<<END
<td width="50" align="center">$a1</td>
<td width="100" align="center">$a2</td>
<td width="100" align="center">$a3</td>
<td width="100" align="center">$a4</td>
<td width="100" align="center">$a5</td>

</tr><tr>
END;
            
    }
    

?>


</tr></table>



</body>
</html>

// index.php

 

oczywiście samochody.sql znajduje sie w tym samym folderze.

Dziekuje za pomoc :)

 

3 odpowiedzi

+3 głosów
odpowiedź 24 marca 2016 przez Boshi VIP (100,240 p.)
zamień hosta z userem...
1
komentarz 24 marca 2016 przez Arkadiusz Waluk Ekspert (288,770 p.)
Heh, skupiłem się na kodzie i nawet tego nie zauważyłem :D Ale rzeczywiście to może być jedyny problem bo reszta kodu wygląda okej. Gdyby jednak kolega wyświetlał sobie błędy to dostał by stosowny komunikat i nie byłoby problemu.
2
komentarz 24 marca 2016 przez Boshi VIP (100,240 p.)
Jak już się połączy i dostanie biała stronę to pewnie  twój post się przyda ;)
komentarz 24 marca 2016 przez anhydryt Początkujący (290 p.)
Działa, ale faux pas! Dziękuje za zwrócenie mi uwagi. :)
+3 głosów
odpowiedź 24 marca 2016 przez Arkadiusz Waluk Ekspert (288,770 p.)

ini_set("display_errors", 0);

Tu jest Twój największy problem... Jesteś w ogóle świadomy co ta linijka robi? Wyłącza pokazywanie wszystkich błędów. Czyli gdy tylko coś pójdzie nie tak, to skrypt po prostu się wysypie, a ty nie dowiesz się co jest nie tak tylko zobaczysz białą stronę. Zmień to szybko na 1 (czyli błędy będą pokazywane) i zobacz co wtedy wyskoczy - skoro coś nie działa (ale nie wiem co dokładnie bo nie napisałeś) to powinno sypnąć jakimś błędem.

Poza tym dwie pierwsze linijki (początek HTMLa) są zbędne, wystarczy po prostu <!DOCTYPE html> i <html>, ewentualnie można jeszcze podać język czy coś tego typu, ale to co jest u Ciebie jest niepotrzebne.

Do tego też zastanawiam się jaki jest sens odczytywania zapytania z pliku? Ani to specjalnie bezpieczne, ani użyteczne, nie wiem jaki to ma cel, wyjaśnisz?

oczywiście samochody.sql znajduje sie w tym samym folderze

To jest plik ze zrzutem całej bazy danych? Jeśli tak to jest nie potrzebny, to jest przecież w bazie danych i z tym się łączy PHP, a to co jest w jakimś pliku go nie interesuje. 

komentarz 24 marca 2016 przez anhydryt Początkujący (290 p.)
Dziekuje, za wyjasnienie mi tego :). Oczywiscie, nie wiedzialem. Powielam na razie przyklady i ucze sie wlasnie w taki sposob, co jak dziala. Oczywiscie masz racje z odczytywaniem z pliku. Cel jest cwiczeniowy. W rzeczywistosci robi sie to przez phpmyadmin cz moze cmd? Wybacz jezeli to slabe pytanie :).
komentarz 24 marca 2016 przez Arkadiusz Waluk Ekspert (288,770 p.)

No trochę słabe, nie wiem jak przez phpmyadmin czy przez cmd. Po prostu wpisuje się zapytanie w kodzie i tyle.

...
$rezultat = mysqli_query($polaczenie, 'SELECT kolumny FROM tabela');
$ile = mysqli_num_rows($rezultat);
...

Dodam jeszcze że warto zainteresować się PDO - jest lepsze od mysqli

komentarz 24 marca 2016 przez anhydryt Początkujący (290 p.)
Dziekuję, poczytam :), kolega niżej już wysłał link.
+2 głosów
odpowiedź 24 marca 2016 przez efiku Szeryf (75,160 p.)
a może mógłbyś użyć PDO?
https://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO
komentarz 24 marca 2016 przez anhydryt Początkujący (290 p.)
Dziękuję, poczytam :).

Podobne pytania

0 głosów
0 odpowiedzi 4,049 wizyt
0 głosów
0 odpowiedzi 149 wizyt
0 głosów
0 odpowiedzi 315 wizyt
pytanie zadane 13 czerwca 2017 w SQL, bazy danych przez Ciapuch Obywatel (1,040 p.)

92,973 zapytań

141,938 odpowiedzi

321,177 komentarzy

62,301 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...