Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pobieranie danych z mysql
maf2
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 6.02.2007
Skąd: Katowice

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


Witam,
Mam prostą tablę w mysql. Pobieram z niej dane przy pomocy skryptu php. Problem jest taki, że zamiast pobrać raz tekst z tabeli pobiera go mnóstwo razy i wypisuje. Tak jakby while odtwarzało się wielokrotnie.


  1. CREATE TABLE `news` (
  2. `id` INT NOT NULL AUTO_INCREMENT ,
  3. `tytul` TINYTEXT NOT NULL ,
  4. `tresc` TEXT NOT NULL ,
  5. `data` VARCHAR( 50 ) NOT NULL ,
  6. PRIMARY KEY ( `id` )
  7. );




  1. <?php
  2. $uchwyt=mysql_connect('localhost','root','hasło')
  3. or die('Nieudane połączenie z bazą danych...');
  4. or die('Nie udało się wybrać bazy danych...');
  5.  
  6. $link=mysql_query("SELECT * FROM news ORDER BY id desc");
  7.  
  8.  
  9. while($wiersz=mysql_fetch_array($link))
  10. {
  11.  
  12. echo $wiersz['tresc'];
  13.  
  14. }
  15.  
  16. mysql_close($uchwyt);
  17.  
  18. ?>
  19.  
  20. <?php include('newsy.php'); ?>


Ten post edytował maf2 31.07.2010, 09:47:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
wookieb
post
Post #2





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




No bo tyle rekordów pobrałes w zapytaniu.
google -> mysql LIMIT


--------------------
Go to the top of the page
+Quote Post
maf2
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 6.02.2007
Skąd: Katowice

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


Hmm zmieniłem na:
  1. $link=mysql_query("SELECT * FROM news ORDER BY id desc LIMIT 0,1");


I dalej to samo sad.gif
Go to the top of the page
+Quote Post
piku235
post
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 4
Dołączył: 3.11.2008
Skąd: Rzeszów

Ostrzeżenie: (10%)
X----


Zamiast tej całej pętli while w skrypcie mógłbyś ją usunąć i dać tylko
  1. $wiersz=mysql_fetch_array($link)
Zapytanie byłoby podobne do tego z limit 1, bo pobiera tylko 1 rekord z bazy według zapytania sql.

Ten post edytował piku235 31.07.2010, 10:12:32
Go to the top of the page
+Quote Post
wookieb
post
Post #5





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




Wiec blad na pewno mnie lezy w tej petli while.


--------------------
Go to the top of the page
+Quote Post
maf2
post
Post #6





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 6.02.2007
Skąd: Katowice

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


Pozbyłem się pętli i efekt jest taki, że nic nie wyświetla sad.gif
  1. <?php
  2. $uchwyt=mysql_connect('localhost','root','dodidodi')
  3. or die('Nieudane połączenie z bazą danych...');
  4. or die('Nie udało się wybrać bazy danych...');
  5.  
  6. $link=mysql_query("SELECT * FROM news ORDER BY id DESC ");
  7.  
  8.  
  9. $wiersz=mysql_fetch_array($link)
  10.  
  11.  
  12. echo $wiersz['tresc'];
  13.  
  14. mysql_close($uchwyt);
  15.  
  16. ?>
  17.  
  18. <?php include('newsy.php'); ?>
  19.  
  20.  
Go to the top of the page
+Quote Post
wookieb
post
Post #7





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




To wejdź do bazy danych i sprawdź jakie rekordy masz w tej tabeli. Istnieje możliwośc, że są np bez treści.
Zresztą kurde to są podstawy.
Temat: Jak poprawnie zadac pytanie
Badaj co zawierają zmienne


--------------------
Go to the top of the page
+Quote Post
maf2
post
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 6.02.2007
Skąd: Katowice

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


Nie są bez treści w wierszu jest po prostu napis treść. Wywaliłem tytuł i data z tabeli zostało tylko id i wiersz. I niestety dalej to samo nie wiem na razie co może być przyczyną. :/
Go to the top of the page
+Quote Post
wookieb
post
Post #9





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




Cytat(wookieb @ 31.07.2010, 11:21:11 ) *
Badaj co zawierają zmienne


var_dump
print_r


--------------------
Go to the top of the page
+Quote Post
Lilo
post
Post #10





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 22.03.2010

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


  1. $uchwyt=mysql_connect('localhost','root','dodidodi') or die('Nieudane połączenie z bazą danych...');
  2. $nazwa_bazy = mysql_select_db('newsy','$uchwyt') or exit("Nie udało się wybrać bazy danych.." . mysql_error());
  3.  
  4.  
  5. $zapytanie = "SELECT * FROM news ORDER BY id desc" ;
  6. $link= mysql_query($zapytanie, $uchwyt) or die ('Bł?d: ' . mysql_error());
  7. while ($wiersz = mysql_fetch_assoc($link)){
  8.  
  9. echo $wiersz['tresc'];
  10. }
  11.  



Odnoście typów danych w tabeli news, należałoby je odpowiednio zmienić na BLOB, DATE. To tylko sugestia, być może tak ma być jak jest.


--------------------
" The ELDERS of the Internet know who I am" from The IT Crowd

Pomogłam? Kliknij Pomógł :)
Go to the top of the page
+Quote Post
maf2
post
Post #11





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 6.02.2007
Skąd: Katowice

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


Ok już sobie poradziłem smile.gif Dzięki za pomoc. Teraz mam inny problem który opiszę w innym poście biggrin.gif
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 - 07:31