Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z formatowaniem wyników SELECTa z tabeli
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
GeedieZ
Hej, jestem nowy początkujący, świeży itp - to tak tytułem usprawiedliwienia swojej niewiedzy, która mnie bardzo denerwuje. Przejdźmy do problemu:

Baza:

postawiona na SQL Serwer 2000 + jakieś tam łatki.

Diagram bazy

Rozchodzi się o tabelę NASZE_ZAWODY. Plik php wygląda tak:


<?php

mssql_connect ("localhost", "user", "haslo") or die ("Nie można polaczyc się z mssql");
mssql_select_db ("[Zawody lekkoatletyczne]") or die ("Nie można polaczyc się z baza");

$wynik = "SELECT termin, nazwa FROM dbo.NASZE_ZAWODY";

echo "<table border = 1>
<tr>
<th>Termin zawodow</th>
<th>Nazwa zawodow</th>
</tr>";

while ($row = mssql_fetch_array($wynik)) {
$terminz = $row["termin"];
$nazwazaw = $row["nazwa"];
echo "<tr>
<td>$terminz</td>
<td>$nazwazaw</td>
</tr>";
}
echo "</TABLE>";

?>

Niby wszystko jest ok (wg książki, na przykładzie której dostosowałem kod do swojej bazy) gdyby nie fakt, że nie działa:

ukazuje mi się błąd o treści:

"Warning: mssql_fetch_array(): supplied argument is not a valid MS SQL-result resource in c:\usr\krasnal\www\szkola\calendar.php on line 18"

Line 18 to oczywiście owa funkcja odpowiadająca za wyłapanie wyników selecta. Nie wiem co mam z tym zrobić, czy mógłby mi ktoś pomóc? Będę bardzo związany i dźwięczny winksmiley.jpg Pozdrawiam.

ps. Zgaduję tylko ale czy nie chodzi przypadkiem o nieodpowiedni typ pola, w którym są owe wyniki? "nazwa" jest typu text a "termin" typu datetime
nospor
Lączysz sie do bazy zawody cos tam:
mssql_select_db ("[Zawody lekkoatletyczne]") or die ("Nie można polaczyc się z baza");

a odwolujesz sie do bazy dbo w zapytaniu
$wynik = "SELECT termin, nazwa FROM dbo.NASZE_ZAWODY";

powinno byc juz bez bazy:
$wynik = "SELECT termin, nazwa FROM NASZE_ZAWODY";
GeedieZ
E-e. Niestety to nie to. Nadal ten sam błąd.
nospor
jesli poprawiles jak prosilem to zapytanie jest ok . nie widze innego bledu. A nie wywala ci ze nie moze sie z baza polaczyć?

pokaz jeszcze raz poprawiony kod, tylko tym razem uzyj bbcode
GeedieZ
  1. <?php
  2.  
  3.  
  4. mssql_connect (&#092;"localhost\", \"user\", \"haslo\") or die (\"Nie można polaczyc się z mssql\");
  5. mssql_select_db (&#092;"[Zawody lekkoatletyczne]\") or die (\"Nie można polaczyc się z baza\");
  6.  
  7. $wynik = &#092;"SELECT termin, nazwa FROM NASZE_ZAWODY\";
  8.  
  9. echo &#092;"<table border = 1>
  10. <tr>
  11. <th>Termin zawodow</th>
  12. <th>Nazwa zawodow</th>
  13. </tr>&#092;";
  14.  
  15. while ($row = mssql_fetch_array($wynik)) {
  16.     $terminz = $row[&#092;"termin\"];
  17.     $nazwazaw = $row[&#092;"nazwa\"];
  18.     echo &#092;"<tr>
  19.     <td>$terminz</td>
  20.     <td>$nazwazaw</td>
  21.     </tr>&#092;";
  22.     }
  23.     echo &#092;"</TABLE>\";
  24.  
  25. ?>
SongoQ
Ok, takie pytanie czy zapytanie aby na pewno zwraca rekordy?

--
Dodane
Jak ma Ci dzialac jak nie widze wykonania zapytania.
GeedieZ
Zapytanie do bazy? 10 linia kodu... Chyba, że chodzi o coś innego?
nospor
@SongoQ ma racje (rutyna mnie zabila)

powinno byc
  1. <?php
  2.  
  3. $sql = &#092;"SELECT termin, nazwa FROM NASZE_ZAWODY\";
  4. $wynik = mssql_query($sql) or die ('zleeee');
  5.  
  6. ?>
GeedieZ
Oh, słodki Boże to działa!! winksmiley.jpg Dziękuję wielce Panowie smile.gif Śmiejcie się, jeśli chcecie ale siedziałem nad tym cały dzień snitch.gif

W każdym bądź razie: dziękuję ślicznie, temat można zamknąć. Możecie dodać do licznika kolejnego zadowolonego z tego forum użytkownika winksmiley.jpg
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.