Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP,SQL] jak rozdzielić połączenie od zapytania
lagos
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 7.06.2009

Ostrzeżenie: (0%)
-----


Potrzebuje rozdzielić poniższy skrypt na (mysql.inc)
i osobno zapytanie .
W taki sposób by był bezpieczny.
Prosiłbym o pomoc
  1. <?php
  2. // nawiazujemy polaczenie
  3. $connection = @mysql_connect('localhost', 'nazwa_bazy', 'haslo')
  4. // w przypadku niepowodznie wyświetlamy komunikat
  5. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  6. // połączenie nawiązane ;-)
  7. echo "Udało się połączyć z serwerem!<br />";
  8. // nawiązujemy połączenie z bazą danych
  9. $db = @mysql_select_db('nazwa_bazy', $connection)
  10. // w przypadku niepowodzenia wyświetlamy komunikat
  11. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  12. // połączenie nawiązane ;-)
  13. echo "Udało się połączyć z bazą danych!";
  14. /* zapytanie do konkretnej tabeli */
  15. $wynik = mysql_query("SELECT oferty.miasto  , oferty.id_uzytkownika  , uzytkownicy.login , oferty.id
  16. , uzytkownicy.email , oferty.telefon , oferty.nazwa_obiektu
  17. FROM oferty , uzytkownicy
  18. WHERE oferty.id_uzytkownika = uzytkownicy.id AND promowana = 1 AND miasto = 'kraków' " )
  19. or die('Błąd zapytania');
  20. // zamykamy połączenie
  21. mysql_close($connection);
  22. /*wyświetlamy wyniki, sprawdzamy,
  23. czy zapytanie zwróciło wartość większą od 0
  24. */
  25. if(mysql_num_rows($wynik) > 0) {
  26.   /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  27.   echo "<table cellpadding=\"2\" border=1>";
  28.   while($r = mysql_fetch_assoc($wynik)) {
  29.       echo "<tr>";
  30.       echo "<td>".$r['nazwa_obiektu']."<br/><b>".$r['miasto']."</b></td>";
  31.       echo "<td>".$r['email']."</td>";
  32.       echo "<td>
  33.      <a href=\"{$r['id']}/noclegi\">Wejdz</a>
  34.    <img src=/uzytkownicy\"{$r['login']}/mini2_0.jpg\"></a>
  35.      </td>";
  36.       echo "</tr>";
  37.   }
  38.   echo "</table>";
  39. }
  40. ?>


Ten post edytował lagos 11.06.2009, 08:28:56
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




No dobra, a jak próbowałeś? Nie wygląda to raczej na ciężkie zadanie...
Go to the top of the page
+Quote Post
lagos
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 7.06.2009

Ostrzeżenie: (0%)
-----


Tak to zrobiłem
plik.inc.php" title="Zobacz w manualu PHP" target="_manual
  1. <?php
  2.  
  3. function connection() {
  4.    // serwer
  5.    $mysql_server = "localhost";
  6.    // admin
  7.    $mysql_admin = "nazwa_bazy";
  8.    // hasło
  9.    $mysql_pass = "hasło";
  10.    // nazwa baza
  11.    $mysql_db = "nazwa_bazy";
  12.    // nawiązujemy połączenie z serwerem MySQL
  13.    @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  14.    or die('Brak połączenia z serwerem MySQL.');
  15.    // łączymy się z bazą danych
  16.    @mysql_select_db($mysql_db)
  17.    or die('Błąd wyboru bazy danych.');
  18.    
  19. }
  20.  
  21. ?>

============
  1. <?php
  2. // podłączamy plik  mysql.inc.php
  3. require "mysql.inc.php";
  4. // wywołujemy funkcję connection()
  5. connection();
  6. $wynik = mysql_query("SELECT oferty.miasto  , oferty.id_uzytkownika  , uzytkownicy.login , oferty.id
  7. , uzytkownicy.email , oferty.telefon , oferty.nazwa_obiektu , obiekty_lista.rodzaj
  8. FROM oferty , uzytkownicy , obiekty_lista
  9. WHERE oferty.id_uzytkownika = uzytkownicy.id AND oferty.typ_dzialalnosci = obiekty_lista.id  AND promowana = 1  AND rodzaj = 'agroturystyczny' LIMIT 5 " )
  10. or die('Błąd zapytania');
  11. // zamykamy połączenie
  12. mysql_close($connection);
  13. /*wyświetlamy wyniki, sprawdzamy,
  14. czy zapytanie zwróciło wartość większą od 0
  15. */
  16. if(mysql_num_rows($wynik) > 0) {
  17.    /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  18.    echo "<table align=center cellpadding=\"2\" border=0>";
  19.    while($r = mysql_fetch_assoc($wynik)) {
  20.        echo "<tr>";
  21.        echo "<td><img src=http://www.nyny.pl/uzytkownicy/".$r[login]."/mini2_0.jpg class=ofertaZdjecie ></a><br/><b>".$r['nazwa_obiektu']."</b> <br/><br/><b style=color:red>".$r['miasto']."</b> </a></td>";
  22.        echo "<td><i style=color:green>".$r['rodzaj']."</i><br/><br/><a href=http://www.nyny.pl/".$r[id]."/noclegi/><img src=images/wiecej.gif ></td>";
  23.        echo "<td><img src=images/show.gif /></a>
  24.  
  25.    
  26.       </td>";
  27.        echo "</tr>";
  28.    }
  29.    echo "</table>";
  30. }
  31.  
  32.  
  33. ?>


Wyskakuje błąd zamykania bazy
czy* close* jest potrzebne .
Czy po prostu go wywalić.

Ten post edytował lagos 11.06.2009, 13:30:21
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




mysql_close nie jest konieczne co tez jest napisane na http://pl2.php.net/mysql_CLOSE


W dodatku widnieje tam informacje o tym jaki argument przekazac do mysql_close.
A skad ten argument wziac to znajdziesz na http://php.net/mysql_connect (podpowiedź: Zobacz co zwraca)

Ten post edytował wookieb 11.06.2009, 13:33:44
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 13:30