Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: losowanie rekordu w zaleznosci od innego
Forum PHP.pl > Forum > PHP
krzysiek1
witam, mam problem poniewaz probuje zrobic cos takiego ze: $ID = id
ale id bedzie odczytywac losowo co jakis czas z tabeli ktora wyglada tak:

|id | cos |
|1 | 0 |
|2 | 1 |
|3 | 1 |

ale bedize odczytywac tylko te id ktore "cos" maja rowna 1.
Nie mam pojecia jak to sie za to zabrac, prosze o pomoc.
blooregard
  1. SELECT id FROM tabela WHERE cos = '1' ORDER BY RAND()
krzysiek1
nie wiem czy dobrze wstawilem bo zrobilem tak:

  1. $ID = ( SELECT id FROM tab WHERE aaa= '1' ORDER BY RAND() );


i error

  1. Parse error: syntax error, unexpected T_STRING
Blame
O.o
Po rozwiązanie odsyłam cię do PODSTAWOWEGO kursu mysql do rozdziału Wybieranie Rekordów.
Odsyłam, Odsyłam!
Tak w ogóle to sobie cały przejrzyj, przyda ci się smile.gif
krzysiek1
hmm... chyba wszystko dobrze jest bo bledow nie wywala:

  1. $ID = "SELECT 'id' FROM 'list_ots' WHERE 'feat'='1' ORDER BY RAND() LIMIT 1" ;


tylko ze tez nie pokazuje rekordu, pusto jest
blooregard
A co ma wywalać?

Napisz, proszę, co chcesz osiągnąc tym zapisem:
  1. $ID = "SELECT 'id' FROM 'list_ots' WHERE 'feat'='1' ORDER BY RAND() LIMIT 1" ;

bo chyba nie nadążam.


krzysiek1
poprostu ma wylosowac te id, cyfre.

bo potem wykorzystuje w dalszej czesci skryptu ta zmienna $ID. gdy wpisze samo np. $ID = 1 to reszta zaczyna dzialac, ale z tym losowym rekordem nie dziala.
TheSnake
Musisz wykonać to zapytanie do bazy.. potem zwróci wyniki itp itd..
krzysiek1
hmm, no nie wiem czego brakuje, calosc wyglada tak:

  1. $ID = "SELECT 'id' FROM 'list_ots' WHERE 'feat'='1' ORDER BY RAND() LIMIT 1" ;
  2.  
  3. $SearchQuery = $mysqli -> query ( 'SELECT * FROM `list_ots` WHERE `id` = "' .$ID. '"' );
  4.  
  5. if ( $SearchQuery -> num_rows == 1)
  6. {
  7. $Row = $SearchQuery -> fetch_assoc();
  8. $ColorStatus = 'red';
  9. $Status = '<font color="red"><b>Offline</b></font>';
  10.  
  11. if ( $Row['status'] == 1)
  12. {
  13. $ColorStatus = 'green';
  14. $Status = '<font color="green"><b>Online</b></font>';
  15. }
  16.  
  17. if ( $Row['status'] == 0 )
  18. {
  19. $PlayersCount = '<font color="red"><b>Offline</b></font>';
  20. } else {
  21. $PlayersCount = $Row['players']. '/' .$Row['maxplayers'];
  22. }
  23. echo '<br/><font size="4"><font color="' .$ColorStatus. '">' .$Row['name']. '</font></font><br/>
  24. <tr>
  25. <td><font color="white">Status: ' .$Status. '</font></td>
  26.  
  27. </tr>
  28.  
  29. <tr>
  30. <td><font color="white">IP:&nbsp;' .$Row['ip']. '</font></td>
  31.  
  32. </tr>
  33.  
  34. <tr>
  35. <td><font color="white">Port:&nbsp;' .$Row['port']. '</font></td>
  36.  
  37. </tr>
  38.  
  39. <tr>
  40. <td><font color="white">Players:&nbsp;&nbsp;' .$PlayersCount. '</font></td>
  41.  
  42. </tr>
  43.  
  44. <tr>
  45. <td><font color="white">Exp:&nbsp;&nbsp;x' .$Row['exp']. '&nbsp;&nbsp;&nbsp;&nbsp;</font></td>
  46.  
  47. </tr>
  48.  
  49. <tr>
  50. <td><font color="white">Client:&nbsp;&nbsp;' .$Row['client']. '</font></td>
  51.  
  52. </tr>
  53.  
  54. <tr>
  55. <td><font color="white">Country:&nbsp;&nbsp;' .$Row['country']. '</font></td>
  56.  
  57. </tr>
  58.  
  59.  
  60. </table>';
  61. }
  62. ?>
  63.  
  64. </ul>
  65.  
  66.  
  67. </div>
  68. <div class="right">
  69.  
  70. <div class="tekst">
  71. <?php
  72. if ( isset ( $_GET['page'] ) )
  73. {
  74. $Page = addslashes ( $_GET['page'] );
  75. } else {
  76. $Page = 'news';
  77. }
  78.  
  79.  
  80. if ( is_file ( 'pages/' .$Page. '.php' ) )
  81. {
  82. include ( 'pages/' .$Page. '.php');
  83. } else {
  84. include ( 'pages/news.php' );
  85. }
blooregard
Cytat
hmm, no nie wiem czego brakuje, calosc wyglada tak:

To POMYŚL:
  1. $ID = "SELECT 'id' FROM 'list_ots' WHERE 'feat'='1' ORDER BY RAND() LIMIT 1" ;
  2.  
  3. $SearchQuery = $mysqli -> query ( 'SELECT * FROM `list_ots` WHERE `id` = "' .$ID. '"' );
  4.  
  5. if ( $SearchQuery -> num_rows == 1)
  6. {
  7. $Row = $SearchQuery -> fetch_assoc();

Czego brakuje w linijce pierwszej, a czego nie brakuje dalej?

//wskazówka: co trzeba zrobić, by zapytanie się wykonało
krzysiek1
sorry ale maly tempak jestem i nie widze tu bledu ;/
blooregard
Wykonaj tę kwerendę... (tę zapisaną w zmiennej $ID).
Sama się nie wykona.

Cytat
sorry ale maly tempak jestem i nie widze tu bledu ;/

tĘpak, jeśli już ;D
krzysiek1
dobra dziala. zrobilem tak:
  1. $ID = "SELECT id FROM list_ots WHERE feat=1 ORDER BY RAND() LIMIT 1" ;
  2. $SearchQuery = $mysqli -> query ( 'SELECT * FROM list_ots WHERE id =(select id from list_ots where feat=1 ORDER BY RAND() LIMIT 1)' );
  3.  


tylko ze czasami jest pusto a czasami dobrze pokazuje, nie wiem czemu tak ohmy.gif

http://sagara.pl/d/?page=otlist - tutaj z lewej jest featured serwers i tam powinno pokazywac losowe serwery a tylko czasami je pokazuje
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.