Zwrócenie kilka rekordów SQL.

Założony przez  maxerxxl.

wersja skryptu MyBB: 1.8.x
adres forum: localhost
na czym polega problem (screen, opis, komunikaty):
Witam, mam pewien problem, otóż stworzyłem sobie podstrone, wszystko działa, jupi la ale pewien problem, chciałbym żeby pokazało wszystkie rekordy bo domyślnie pokazuje tylko jeden.

Kod panel_gracza.php
<?php
// definujemy zmienne
define('IN_MYBB', 1); 
require "./global.php"; 

// sprawdzamy dane do mysql
$panel_base_config = array (
'hostname' => 'bla bla',
'username' => 'bla bla',
'password' => 'bla bla,
'database' => 'bla bla',
'type' => 'mysqli');

$panel_base = new DB_MySQLi;
$panel_base->connect($panel_base_config);
$panel_base->type = $panel_base_config['type']; 

// wykonujemy zapytanie do testowej tabeli
$query = $panel_base->query("SELECT * FROM og_test");
while($result = $panel_base->fetch_array($query))
{
    $panel_xd1 = $result['xd1'];
    $panel_xd2 = $result['xd2'];



// dodajemy rzeczy z mybb
add_breadcrumb("Panel gracza", "panel_gracza.php");
eval("\$podstr = \"".$templates->get("panel_gracza")."\";");
output_page($podstr); 
?>


A tutaj ze szablonów globalnych:
<html>
<head>
{$headerinclude}
<title>Panel gracza</title>
</head>
<body>
{$header}

<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="clear: both; border-bottom-width: 0;">
<tr>
<td class="thead" colspan="2">Panel gracza</td>
</tr>
<tr>
<td class="trow2 post_content ">
{$panel_xd1}
{$panel_xd2}
</td>
</tr>
</table>

{$footer}

</body>
</html>


Co muszę zrobić aby zwracało wszystkie rekordy, bo jak pisałem zwraca ostatni.

Dziękuje :)
to
while($result $panel_base->fetch_array($query))
{
    
$panel_xd1 $result['xd1'];
    
$panel_xd2 $result['xd2'];

Powinno wyglądać mniej wiecej tak jeżeli używasz szablonów mybb
while($result $panel_base->fetch_array($query))
{
    
$panel_xd1 $result['xd1'];
    
$panel_xd2 $result['xd2'];

    eval(
"\$players .= \"".$templates->get("panel_gracza_row")."\";");

Zamiast
{$panel_xd1}
{
$panel_xd2
Dodajesz
{$players

Tworzysz nowy szablon w globalnych o nazwie panel_gracza_row
i wklejasz do niego np.
nick {$panel_xd1coś innego {$panel_xd2
czyli to co ma wyświetlać w jednym wierszu
Dziękuje, wiem że jeden wątek = jeden problem ale nie chce zaśmiecać forum a to taka drobnostka.

Jak można sprawdzić czy ta osoba jest zalogowana? jeżeli nie jest nie może wejść do panelu.
if($mybb->user['uid'] == 0)
{
    error_no_permission();
}

gdzies na początek
dziękuje, temat do zamknięcia.
Matslom napisał 25.11.2015, 17:27:
Nie zamykamy wątków
Mam jeszcze pewien problem otóż jak podany użytkownik nie istnieje to wyskakuje błąd, da się to jakoś naprawić?

$query = $panel_base->query("select * from baza_users where username='".$mybb->user['username']."'");
while($result = $panel_base->fetch_array($query))
{
    $panel_id = $result['id'];
    $panel_username = $result['username'];
    $panel_added = $result['added'];
    
    eval("\$players .= \"".$templates->get("panel_gracza_row1")."\";");
}
Jaki błąd? W jaki sposób użytkownik nie istnieje? Opisz to trochę bardziej.

BTW: Nie musisz robić czegoś takiego
$panel_added = $result['added'];
Możesz od razu w szablonie użyć {$result['added']}
Otóż jak nie ma gracza dodanego w bazie danych to wywala błąd w mybb.
Jak zrobić zabezpieczenie jeżeli nie ma gracza wyskakuje informacja brak informacji?
$query $panel_base->query("select * from baza_users where username='".$mybb->user['username']."'");
if(
$panel_base->num_rows($query))
{
while(
$result $panel_base->fetch_array($query))
{
    
$panel_id $result['id'];
    
$panel_username $result['username'];
    
$panel_added $result['added'];
    
    eval(
"\$players .= \"".$templates->get("panel_gracza_row1")."\";");
}
}
else
{
error("Nie znaleziono gracza");

dziękuje :)



Użytkownicy przeglądający ten wątek:

1 gości