Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] problem z pobraniem danych.
Rico_ds
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 21.03.2007

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


Witam,
mam coś takiego
  1. <?php
  2. $connect = mysql_connect("", "", "") or
  3. die ("Sprawdź połączenie z bazą danych.");
  4. mysql_select_db ("serwis");
  5. mysql_query ('SET NAMES latin2');
  6. $wynik = mysql_query("SELECT * FROM news Order by nr DESC LIMIT 0.4");
  7. while($wiersz = mysql_fetch_assoc($wynik))
  8.  
  9.  {//początek pętli
  10.  
  11.  //wyświetl wynik
  12.  
  13.  echo "<b>Tytuł: ";
  14.  
  15.  echo $wiersz['tytul'];
  16.  
  17.  echo "</b><br>On: <i>";
  18.  
  19.  echo $wiersz['data'];
  20.  
  21.  echo "</i><hr align=left width=160>";
  22.  
  23.  echo $wiersz['tresc'];
  24.  
  25.  }//koniec pętli
  26.  
  27. ?>

i zamiast tekstu wyświetla mi "Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files\VertrigoServ\www\strona\index.php on line 90"
czyli na
  1. <?php
  2. while($wiersz = mysql_fetch_assoc($wynik))
  3. ?>

a w innym skrypcie mam tak samo napisaną tą funkcje i działa. o co chodzi??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Masz kropkę zamiast przecinka w zapytaniu
  1. ...BY nr DESC LIMIT 0, 4


To powinno rozwiązać problem.
Go to the top of the page
+Quote Post
Rico_ds
post
Post #3





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 21.03.2007

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


zmieniłem
  1. <?php
  2. $wynik = mysql_query("SELECT * FROM news");
  3. ?>

i to dopiero pomogło, ale teraz nie będzie mi wyświetlać 4 ostatnich newsów. Czy możecie napisać mi jak zrobić, aby tekst był wyświetlany tylko do pewnej ilości znaków. I jak zrobić link do pełnej wersji tekstu??
p.s a jak zrobić datę w tej samej linii co tytuł(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował Rico_ds 28.05.2007, 13:15:59
Go to the top of the page
+Quote Post
Cienki1980
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


  1. <?php
  2. $query="select * from news order ny nr desc limit 0,4";
  3. ?>

Powyższe zapytanie wyciągnie Ci ostatnie 4ry rekordy. Co do wyświetlania części tekstu to możesz obrobić to w php substr" title="Zobacz w manualu PHP" target="_manual lub odpowiednio sformatować zapytanie SQL.

Pokazywanie większej ilości tekstu ( całości ) to nic innego jak przekazanie np w linku id ( w Twoim przypadku to chyba nr ) danego news'a i wyciągnięcie danych raz jeszcze i wyświetlenie całości.
Można zrobić to w jednym skrypcie coś na podobnej zasadzie :
  1. <?php
  2. if(isset($_GET['nr']) && is_numeric($_GET['nr'])) // przyszedł numer newsa z linku 
  3. {
  4.  $query="select * from news where nr=".$_GET['nr']."";
  5.  //dalszy kod wyświetlania
  6. }
  7. else // nie ma podanego numeru czyli pokazuje wszystkie skroty
  8. {
  9.  $query="select * from news";
  10.  //dalszy kod wyswietlania i formatowania
  11. }
  12. ?>


EDIT: pokazanie daty w tej samej linii co tytuł to tylko usunięcie odpowiedniego <BR>
Go to the top of the page
+Quote Post
Rico_ds
post
Post #5





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 21.03.2007

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


dzięki (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) mam jeszcze jedno pytanko.
  1. <?php
  2. $connect = mysql_connect("", "", "") or
  3. die ("Sprawdź połączenie z bazą danych.");
  4.  mysql_select_db ("serwis");
  5.  mysql_query ('SET NAMES latin2');
  6.  $wynik = mysql_query("SELECT * FROM oferta ");
  7.  
  8. while($wiersz = mysql_fetch_assoc($wynik))
  9.  
  10.  {
  11.  
  12.  echo '<Table>';
  13.  echo '<tr>';
  14.  echo '<td>';
  15.  echo '<div class="p2">';
  16.  echo '<img src="img/f.gif"> &nbsp;';
  17.  echo $wiersz['tytul'];
  18.  echo '</div>';
  19.  echo '</td>';
  20.  echo '</tr>'; 
  21.  echo '<tr>';
  22.  echo '<td>';
  23.  echo '<div class="p9">';
  24.  echo $wiersz['tresc'];
  25.  echo '</div>';
  26.  echo '</td>';
  27.  echo '</tr>'; 
  28.  echo '</Table> ';
  29.  
  30. }
  31.  
  32. $connect = mysql_connect("", "", "") or
  33. die ("Sprawdź połączenie z bazą danych.");
  34.  mysql_select_db ("serwis");
  35.  mysql_query ('SET NAMES latin2');
  36.  $wynik = mysql_query("SELECT * FROM platnosci ");
  37.  
  38. while($wiersz = mysql_fetch_assoc($wynik))
  39.  
  40.  {
  41.  
  42.  echo '<Table>';
  43.  echo '<tr>';
  44.  echo '<td>';
  45.  echo '<div class="p2">';
  46.  echo '<img src="img/f.gif"> &nbsp;';
  47.  echo 'Płatności';
  48.  echo '</div>';
  49.  echo '</td>';
  50.  echo '</tr>'; 
  51.  echo '<tr>';
  52.  echo '<td>';
  53.  echo '<li style="list-style-type: circle;">';
  54.  echo '<div class="p9">';
  55.  echo $wiersz['forma'];
  56.  echo '</div>';
  57.  echo '</li>';
  58.  echo '</td>';
  59.  echo '</tr>'; 
  60.  echo '</Table> ';
  61.  
  62. }
  63. ?>

czy uzasadnione jest to łączenie z bazą dwa razy, czy wystarczy dać samo
  1. <?php
  2. $wynik = mysql_query("SELECT * FROM platnosci ");
  3. ?>


i drugie pytanie ponieważ wstawiłem tam komórce nazwę płatności. Jak zrobić, żeby jej nie dublowało??
Go to the top of the page
+Quote Post
Cienki1980
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Nie musisz łączyć się dwa razy, wystarczy raz na początku skryptu.

Co do kolumny płatności to nie wiem za bardzo OCB .. więc opisz trochę dokładniej problem.
Go to the top of the page
+Quote Post
Rico_ds
post
Post #7





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 21.03.2007

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


chodzi o to, że pokazuje raz nazwę Płatność. Pobiera jedną wartość z tabeli i wstawia ją. Następnie znowu wstawia nazwę Płatność i pobiera kolejną wartość z bazy i wstawia ją.
Go to the top of the page
+Quote Post
Cienki1980
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Cytat(Rico_ds @ 28.05.2007, 18:34:29 ) *
chodzi o to, że pokazuje raz nazwę Płatność. Pobiera jedną wartość z tabeli i wstawia ją. Następnie znowu wstawia nazwę Płatność i pobiera kolejną wartość z bazy i wstawia ją.

W takim przypadku po prostu "wystaw" echo "Platnosci"; poza pętle. Czyli najpierw napis Płatności, a dopiero potem pętlę z wyświetlaniem rekordów.
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: 23.12.2025 - 11:37