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

łączenie mysql z php

Object Storage Arubacloud
0 głosów
888 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 (287,950 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 (287,950 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 (287,950 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 3,895 wizyt
0 głosów
0 odpowiedzi 136 wizyt
0 głosów
0 odpowiedzi 198 wizyt
pytanie zadane 13 czerwca 2017 w SQL, bazy danych przez Ciapuch Obywatel (1,040 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...