Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pobieranie danych z mysql
Forum PHP.pl > Forum > Przedszkole
maf2
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'); ?>
wookieb
No bo tyle rekordów pobrałes w zapytaniu.
google -> mysql LIMIT
maf2
Hmm zmieniłem na:
  1. $link=mysql_query("SELECT * FROM news ORDER BY id desc LIMIT 0,1");


I dalej to samo sad.gif
piku235
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.
wookieb
Wiec blad na pewno mnie lezy w tej petli while.
maf2
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.  
wookieb
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
maf2
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ą. :/
wookieb
Cytat(wookieb @ 31.07.2010, 11:21:11 ) *
Badaj co zawierają zmienne


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