Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP,SQL] jak rozdzielić połączenie od zapytania
Forum PHP.pl > Forum > PHP
lagos
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. ?>
phpion
No dobra, a jak próbowałeś? Nie wygląda to raczej na ciężkie zadanie...
lagos
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ć.
wookieb
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)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.