2016-05-17 3 views
0

The PHP код:Получить все строки из MySQL Query

<?php 
//Server Information 
$servername = "localhost"; 
$dbusername = "USERNAME"; 
$password = "TOTALLYSECUREPASSWORD"; 
$dbname = "DEFINITELYADATABASE"; 

//Query Information 
$guid = $_POST['GUID']; 
$username = $_POST['USERNAME']; 
$admin_username = $_POST['ADMIN_USERNAME']; 
$ban_reason = $_POST['BAN_REASON']; 
$ip = $_POST['IP']; 

//Create Connection 
$connection = mysqli_connect($servername, $dbusername, $password, $dbname); 

//Check the Connection 
if ($connection->connect_error){ 
    die("Connection failed: " . $connection->connect_error); 
} 

//$sql = "SELECT DATE, DBUSERNAME, GUID, IP, USERNAME, BAN_REASON FROM bans"; 
//$result = $connection->query($sql); 

$sql = "SELECT * FROM bans WHERE"; 

$types = json_decode($_POST['QUERY_TYPE'], true); 

if (in_array("query_admin_username", $types)) { 
    $sql = $sql . " DBUSERNAME = " . "\"" . $admin_username . "\"" . " &&"; 
} 

if (in_array("query_guid", $types)) { 
    $sql = $sql . " GUID = " . "\"". $guid . "\"" . " &&"; 
} 

if (in_array("query_ip", $types)) { 
    $sql = $sql . " IP = " . "\"" . $ip . "\"" . " &&"; 
} 

if (in_array("query_username", $types)) { 
    $sql = $sql . " USERNAME = " . "\"" . $username . "\"" . " &&"; 
} 

if (in_array("query_ban_reason", $types)) { 
    $sql = $sql . " BAN_REASON = " . "\"" . $ban_reason . "\"" . " &&"; 
} 

$sql_query = substr($sql, 0, -3); 

echo ($sql_query); 

$result = $connection->query($sql_query); 

while ($connection->query($sql_query)) { 

} 

if (!$result) { 
    die("Invalid Query: " . mysqli_error()); 
} 

$row = $result->fetch_array(MYSQLI_NUM); 

while ($row = mysqli_fetch_assoc($result)) { 
    echo ($row); 
} 

mysqli_close($connection); 
?> 

Как странно, как все это выглядит, это работает только, как я хочу его (я думаю).

МОЕГО вопрос:

Я хочу, чтобы иметь возможность получить данные из каждой строки и экспортировать его в один большой String, то вдоль линий:

[DATE] DBUSERNAME banned USERNAME (GUID/IP) for BAN_REASON. 

Я просто совершенно не знаю, как это сделать. Я протестировал Query, и он возвращает все, что нужно, однако я использовал «echo ($ row [0])» и т. Д., Чтобы отобразить их, что довольно непрактично, если оно вернет большое количество строк.

Извините, если что-то не имеет смысла, мой мозг жарится в данный момент. Пожалуйста, дайте мне знать, если я что-то забыл.

+0

Возможный дубликат [Перебор массива в PHP вернулся из MySQL Query] (http://stackoverflow.com/questions/7035135/looping-through-array-in-php-returned-from-mysql-query) –

ответ

1

Вы можете объединить столбцы так, если остальная часть вашего сценария работы:

SELECT CONCAT('[',DATE,'] ',DBUSERNAME,' banned ',USERNAME,'(',COALESCE(GUID, IP),),') for ', BAN_REASON) AS your_columns_in_one_line FROM your_table WHERE .....; 

Смотрите эту ссылку для ссылки на CONCAT

+0

Точно, что я искал, спасибо! – Daedalus

Смежные вопросы