Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wywołanie więcej niż 1 rekordu
Forum PHP.pl > Forum > PHP
Pcbecaw
  1. <?php
  2. /*
  3. # Arquivo: Lista de Notícias vinda da Nuvem de TAGs: Palavras aumentando de tamanho conforme a qtde de cliques.
  4. # Autor: Fabiano Souza
  5. # Contato: fsouzaweb@hotmail.com
  6. # Data: 28/02/2010
  7. */
  8.  
  9. // Ao clicar na notícia da TAG Cloud ela será atualizada sua quantidade de cliques
  10. if( isset($_GET['id_noticia']) and $_GET['id_noticia'] != '' ){
  11.  
  12. $id_noticia = intval($_GET['id_noticia']);
  13. require_once("conexao.php");
  14. $sql_noticia = "SELECT noticias.id_noticia, noticias.cliques
  15. FROM noticias
  16. WHERE liberacao='sim' AND id_noticia='$id_noticia'";
  17. $rs_sql = mysql_query($sql_noticia);
  18.  
  19. while( $linha = mysql_fetch_array($rs_sql) ){
  20. $id_noticia = $linha['id_noticia'];
  21. $cliques = $linha['cliques'];
  22. }
  23.  
  24. $edita = "UPDATE noticias SET cliques='$cliques'+1 WHERE id_noticia = '$id_noticia' ";
  25. $rs_edita = mysql_query($edita);
  26.  
  27. }
  28. ?>
  29. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  30. <html xmlns="http://www.w3.org/1999/xhtml">
  31. <head>
  32. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  33.  
  34. <link href="css/estilo.css" rel="stylesheet" type="text/css" />
  35.  
  36. <title>Notícias - Tag Cloud</title>
  37. </head>
  38.  
  39. <body>
  40.  
  41. <?php
  42.  
  43. // Mostrando na página a notícia clicada na Nuvem de TAGs
  44. if( isset($_GET['id_noticia']) and $_GET['id_noticia'] != '' ){
  45.  
  46. $id_noticia = intval($_GET['id_noticia']);
  47. require_once("conexao.php");
  48. $sql_noticia = mysql_query("SELECT * FROM noticias WHERE id_noticia = '$id_noticia'");
  49.  
  50. while( $linha = mysql_fetch_array($sql_noticia) ){
  51. echo $linha['materia'];
  52. //echo $linha['foto'];
  53. }
  54.  
  55. echo '<br /><br /><span style="color:#FF6600"><a href="tag_cloud.php">Voltar para Tag Cloud</a></span><br /><br />';
  56.  
  57. }
  58. ?>
  59.  
  60. </body>
  61. </html>

Powyższy kod odpowiada za wyświetlanie rekordów o danym tagu. Jak zmodyfikować to (zapewne chodzi o select), żeby wyświetlało wszystkie rekordy z danym tagiem? Jeśli np. w dwóch artach jest taki sam tag, to zostaje wyświetlony TYLKO 1 artykuł (ten z większą ilością kliknięć). Jak zrobić, by były wyświetlane wszystkie artykuły z danym tagiem? Kolumna odpowiedzialna za tagi to: palavra_chave
toaspzoo
dal w pętli(for)
Pcbecaw
Próbowałem coś zrozumieć z tego: http://webmade.org/kursy-online/petla-for-kurs-php.php ale bez skutku. Niby wiem na jakiej zasadzie działa for, jednak nie potrafię dodać tego do skryptu wyświetlania tagów. Mógłby ktoś pomóc? Albo choć troszkę bardziej sprecyzować?
jackraymund
for( $x = 1; $x <= 10; $x++ )
echo "$x";

wyjdzie z tego 12345678910
a id się robi automatycznie więc jeżeli zrobiłbyś
  1. for( $x = 1; $x <= 10; $x++ ){
  2. $temp = mysql_query("SELECT bleble
  3. FROM `nazwa`
  4. WHERE id = '$x'") or die(mysql_error());
  5. $temp=mysql_fetch_array($temp);
  6. echo "$temp['bleble']";
  7. }

to ci poda według id (pokolei) wartość z bleble

(mogę się mylić patrz sygnatura)
Pcbecaw
Dół zmodyfikowałem w ten sposób:
  1. $id_noticia = intval($_GET['id_noticia']);
  2. require_once("conexao.php");
  3. for( $x = 1; $x <= 10; $x++ ){
  4. $sql_noticia = mysql_query("SELECT * FROM noticias WHERE id_noticia = '$id_noticia'");
  5.  
  6. while( $linha = mysql_fetch_array($sql_noticia) ){
  7. echo $linha['materia'];
  8. //echo $linha['foto'];
  9. }}

i to po prostu kilkukrotnie mnoży mi ten sam rekord. Coś źle zrobiłem? Bardzo prosiłbym o zmodyfikowanie kodu podanego w pierwszym poście, nie mam na to już sił... co_jest.gif
jackraymund
  1. $id_noticia = intval($_GET['id_noticia']);
  2. require_once("conexao.php");
  3. for( $x = 1; $x <= 10; $x++ ){
  4. $sql_noticia = mysql_query("SELECT * FROM noticias WHERE id_noticia = '$x'");
  5. $linha = mysql_fetch_array($sql_noticia)
  6. echo $linha['materia'];
  7. }


spróbuj tak
@edit
jak nie działa to zrób screena w phpmyadmin tej bazy bo ja jeszcze nie rozkminiam co jak się nazywa haha.gif
jakieś rekordy itp.
Pcbecaw
Cytat
Parse error: syntax error, unexpected T_ECHO in C:\xampp\htdocs\noticias.php on line 51

Linia 51:
  1. echo $linha['materia'];
jackraymund
zamień to na
  1. $id=$linha['materia'];
  2. echo "$id";
Pcbecaw
Teraz błąd:
Cytat
Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\noticias.php on line 51

pojawia się tutaj:
  1. $id=$linha['materia'];

Zamieszczam fotkę z bazy danych, żeby zobrazować jak to mniej więcej wygląda:

kamil_lk
zrób tak:
$id=$linha['2'];
Pcbecaw
Ten sam błąd sad.gif
kamil_lk
$linha = mysql_fetch_array($sql_noticia)
nie masz tam średnika na końcu linii, ma być tak:
$linha = mysql_fetch_array($sql_noticia);

po za tym jesli chcesz wyciągnąć 10 pierwszych wpisów to wsadź to do pętli while bo wcale nie jest powiedziane że id w bazie jest po kolei (moze wpis nr 7 został usunięty)
Pcbecaw
Teraz błędu nie ma, lecz gdy klikam niezaleznie na jaki tag, to wyświetla się określona liczba i określone rekordy. Nie wiem dlaczego, cały czas wyświetla się to samo, a miało przeciez TYLKO te arty, w których palavra_chave=$palavra_chave.
Utrzymuję, że w dalszym ciągu SELECT jest źle. Wg mnie to trzeba zmodyfikować, tylko jest problem... - nie wiem jak.

Zainwestowałem w inny skrypt. Pobrałem ten skrypt - http://www.itnewb.com/v/Comprehensive-Guid...udes-Demo/page2 i za nic nie wiem, jak wywołać chmurę tagów w danym miejscu na stronie. Mógłby mi ktoś pomóc? Próbowałem na różne sposoby i zawsze jakiś błąd wyskakuje.

Główny problem tkwi w exit;
Jeśli to usuwam, to pojawia się:
  1. General Error
  2. The tag you entered was invalid

Nie mam pojęcia jak wsadzić tą chmurę do diva, który jest pod skryptem. To chyba nierealne...
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.