Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] generowanie treści
Forum PHP.pl > Forum > PHP
qoqo
Witam.

Posiadam bazę słów posegregowaną na kategorie. Każda kategoria ma ok. 10k wpisów.

Zarys bazy:

baza1_kategoria1
baza1_kategoria2
baza1_kategoria3

i wszędzie struktura bazy:

ID | TREŚĆ

Mam teraz pytanie: jak wylosować z każdej bazy po jednym zdaniu kilkanaście razy wg. mojego schematu.

chcę uzyskać taki efekt:


Zdanie z kategorii 1. Zdanie z Kategorii 2. Zdanie z kategorii 1. Zdanie z kategorii 3. - chcę w ten sposób mieszać słowa i układać artykuły.

Ważne, aby przy wylosowaniu np. z kategorii 1 nie powtórzyło się to później w tym samym texcie.


Ktoś pomoże jak to zrobić?
Forti
Pobierasz losowe wpisy. Następnie każdy rozbij do tablic po znakach typu kropka, wykrzyknik itp.i z kazdej wylosuj jeden rekord. Powinno działać a logiki dużo nie będzie.
qoqo
a coś więcej?
Forti
a z czym konkretnie masz problem? Czego nie wiesz? Gotowych rozwiązań nie dajemy - uczymy wink.gif
qoqo
A więc dokładnie robię to tak:;

  1.  
  2.  
  3. $obiects = mysql_query("SELECT * FROM opisy_baza1 ORDER BY crc32(concat(current_timestamp, id)) LIMIT 10"); // pobieram 10 textów. one kończą się kropką
  4. // wrzucam tu w pętle:
  5. while ($wiersz = mysql_fetch_array($obiects))
  6. {
  7. $opis1=$wiersz['tresc']; // przypisuje
  8.  
  9. $zmienne = explode('.', $opis1); // "rozbijam"
  10.  
  11. echo $zmienne[0];
  12.  
  13. }
  14.  



otrzymuję wynik taki: że wyśwetla mi zdania bez kropki. a ja chcę uzyskać efekt taki
że każde zdanie np.

Zdanie 1. Zdanie 2. Zdanie 3.
przypisane będzie do $zmienne
$zmienne[0] - wyświetla zdanie 1, $zmienne[1] - zdanie 2 itd..
Forti
No to dodaj kropke?
qoqo
przecież jest kropka
Forti
Pobierasz zdanie z każdego rekordu z bazy poprzez explode. Zapisujesz je do nowej tablicy i robisz implode lub dodajesz korpke sam.

Napisałeś ze dostajesz zdania bez kropki.
qoqo
Może źle się wyraziłem więc raz jeszcze:

Chcę pobrać 10 zdań.

Powyższym zapytaniem w pętli pokazuje mi wszystkie zdania razem - bo tak je wyświetlam. A teraz chcę zrobić tak: każde zdanie kończące się kropką rozbić
i wyświetlić załóżmy tak: $zdanie[1], $zdanie[2].

Więc jak to zrobić? aby rozbić i przypisać każde zdanie abym móbł sobie załóżmy 10 zdań w różnej kolejności wyświetlić i pomieszać ze zdaniami z innej bazy?
Forti
Explode po kropkę. Otrzymasz tablice ze zdaniami bez kropki wiec do każdego rekordu dodajesz przy wyświetlaniu.
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.