• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Początki php - własne nie ctrl_c

klekSu

Stroke my ego.
Joined
Nov 4, 2008
Messages
1,285
Reaction score
18
No dobra więc zaczynam swoją zabawe z php i potrzebuje pomocy na samym wstępie, mógłby ktoś wyjaśnić jak wyświetlić wyniki z zapytania sql?

Powiedzmy takiego:

PHP:
$zapytanie = "SELECT `players`.`name`, `players`.`level` FROM `players` WHERE `name` LIKE '%gm%' ";

Zapisałem je poprawnie czy nie? No i jak to wszystko wyświetlić w tej tabelce?

PHP:
<table>
	<tr>
		<td>Name</td>
		<td>Level</td>
	</tr>
	
	<tr>
		<td>zapytanie o name</td>
		<td>zapytanie o level</td>
	</tr>
</table>

W temacie napisałem własne nie ctrl_c co oznacza proszę o pomoc z lekkim objaśnieniem :) dzięki!
 
Np.

w <td>Name</td> dajesz <td>".$zapytanie['name']."</td>
 
A nie musze wtedy w zapytaniu zapisać `players`.`name` AS name ?

EDIT1: Wyrzuca mi coś takiego gdy wpisałem ".$zapytanie['name']."
PHP:
Fatal error: Cannot use object of type PDOStatement as array
Zapytanie zmieniłem na:
PHP:
$zapytanie = $SQL->query("SELECT `players`.`name`, `players`.`level` FROM `players` WHERE `name` LIKE '%gm%';");

EDIT2: Ha dobra śmiga musiałem zrobić coś takiego :p
PHP:
foreach( $zapytanie as $query )
{
$main_content .= '<tr class="'.$bgcolor.'"><td>'.$query['name'].'</td><td align="right">'.$query['level'].'</td></tr>';
}
 
Last edited:
No ale jak nie robie fetch i tak mi wyświetla gdy zrobiłem te foreach, to co źle jest?

A teraz jak przemienić ID miasta w nazwę? Przykład:
PHP:
`houses`.`town` AS `htown`
<TD ALIGN="right">'.$k['htown'].'</TD>
 
<?php
$towns = array(0, "Jeden", "Dwa", "Trzy");

echo $towns[1]; // $towns[$k['htown']];
?>
 
No ale jak nie robie fetch i tak mi wyświetla gdy zrobiłem te foreach, to co źle jest?

A teraz jak przemienić ID miasta w nazwę? Przykład:
PHP:
`houses`.`town` AS `htown`
<TD ALIGN="right">'.$k['htown'].'</TD>

Wydaje mi sie ze ta metoda automatycznie robi fetch.
 
Dzięki Panowie każdy dostaje rep :) tematu nie zamykam bo pewnie jeszcze będę miał jakieś pytania :p dzięki wam stworzyłem pierwszy pewnie banalnie prosty dla was skrypt :D ale nie jest tak źle, hehe. Wydaje się długi bo starałem się utrzymać formatowanie :p oceńcie i poprawcie plx :p

Hello otlanders!

I've just started my adventure with php and here's a first script made 100% by me (thank to little "how to" from polish board buddies).

This script is showing houses of owners who didn't login for X weeks (you can set the time in config). I thought it would be useful so here you are.

Screenshot:
housesd.png


Config:
PHP:
/////////////////////////////////////config/////////////////////////////////////
$level = 1000; //house of owners above this level won't be shown
$days = 28; //how many days player must be offline to show his house
$weeks = $days/7; //days/7 = weeks
$towns = array('No Town', 'Town 1', 'Town 2', 'Town 3');
//////////////////////////////////end of config/////////////////////////////////

Code of cleanhouses.php:
PHP:
<?PHP
////////////////////////////////////////////////////////////////////////////////
//Houses that owners didn't login for x days should be cleaned by a Gamemaster//
///////////////////////////////////by klekSu////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////config/////////////////////////////////////
$level = 1000; //house of owners above this level won't be shown
$days = 28; //how many days player must be offline to show his house
$weeks = $days/7; //days/7 = weeks
$towns = array('No Town', 'Town 1', 'Town 2', 'Town 3';
//////////////////////////////////end of config/////////////////////////////////

//////////////////////////////////////query/////////////////////////////////////
$qe = $SQL->query('SELECT `players`.`account_id`,`players`.`id`,`players`.`name` as `name`,`players`.`level` as `level`, `players`.`lastlogin` AS `lastlogin`, `houses`.`owner`,`houses`.`id` AS `hid`, `houses`.`name` AS `hname`, `houses`.`town` AS `htown`, `accounts`.`id` FROM `players`,`houses`,`accounts` WHERE `accounts`.`id` = `players`.`account_id` AND `houses`.`owner` = `players`.`id` AND `players`.`level` < '.(int) $level.' AND `players`.`lastlogin` < UNIX_TIMESTAMP() - '.(int) $days.'*24*60*60 ORDER BY `htown` ASC, `lastlogin`;');
//////////////////////////////////end of query//////////////////////////////////

$main_content .= '
<H2>
	<CENTER>
		Houses on '.$config['site']['worlds'][(int) $_GET['world']].' that owners didn\'t login for  '.(int) $weeks.' weeks
	</CENTER>
</H2>';

$main_content .= '
<CENTER>
<TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%>
	<TR bgcolor="'.$config['site']['vdarkborder'].'">
		<TD><FONT COLOR="white"><B>Character Name</B></FONT></TD>
		<TD ALIGN="center"><FONT COLOR="white"><B>Last Login</B></FONT></TD>
		<TD ALIGN="center"><FONT COLOR="white"><B>House</B></FONT></TD>
		<TD ALIGN="right"><FONT COLOR="white"><B>Town</B></FONT></TD>
';

foreach( $qe as $k )
{
	if(is_int($number_of_rows / 2))
	{
		$bgcolor = $config['site']['darkborder'];
	}
	else
	{
		$bgcolor = $config['site']['lightborder'];
	}
	$number_of_rows++;

$main_content .= '
	<TR BGCOLOR="'.$bgcolor.'">
		<TD><A HREF="?subtopic=characters&name='.$k['name'].'">'.$k['name'].'</A> (Level: '.$k['level'].')</TD>
		<TD ALIGN="center">'.date("j F Y", $k['lastlogin']).'</TD>';
	if(!empty($k['hname']))
	{
		$main_content .= '
		<TD ALIGN="center">'.$k['hname'].'</TD>
		';
	}
	else
	{
		$main_content .= '
		<TD ALIGN="center">No Name</TD>
		';
	}
		$main_content .= '
		<TD ALIGN="right">'.$towns[$k['htown']].'</TD>
	</TR>';
}

$main_content .= '
</TABLE>
</CENTER>
';

?>

Add to index.php
PHP:
	case "cleanhouses";
		$topic = "Clean Houses";
		$subtopic = "cleanhouses";
		include("cleanhouses.php");
	break;
 
A jest sens czyszczenie domków na stronie kiedy ots włączony gdy zaraz będzie /save i domki zapiszą się ponownie? ;)
 
Back
Top