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.


--------------------
404
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ł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>


--------------------
404
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 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.


--------------------
404
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.


--------------------
404
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 12:07