Hallo iedereen.

Wie ow wie kan me even helpen met dit stukje script ?



Hier boven ziet u whatsapp screen.
hier onder de prive van mijn site




Ik wil graag onder de naam de laatste bericht krijgen.
Ik krijg de tabel --> private --> message niet in de $private.

Het script gaat dan de gesprek niet meer bundelen onder 1 knop maar onder elkaar


$private = $mysqli->query("SELECT DISTINCT `status`, `hunter`, `avatar`  FROM `private` WHERE `target` = '$me' AND `status` < 3  AND `hunter` != '$me' ORDER BY `status` ASC");

	if ($private->num_rows > 0)
	{
		$pname = "zzzzttt";
			while ($my_private= $private->fetch_assoc())
			{



SQl
 
`id` int(10) NOT NULL,
  `time` int(13) NOT NULL DEFAULT '0',
  `message` varchar(1000) NOT NULL DEFAULT '',
  `hunter` varchar(60) NOT NULL DEFAULT '',
  `target` varchar(60) NOT NULL DEFAULT '',
  `status` int(1) NOT NULL DEFAULT '0',
  `target_color` varchar(20) NOT NULL DEFAULT '',
  `hunter_color` varchar(20) NOT NULL DEFAULT '',
  `view` int(1) NOT NULL DEFAULT '0',
  `avatar` varchar(40) NOT NULL DEFAULT '',
  `hunter_guest` int(1) NOT NULL DEFAULT '0',
  `file` int(10) NOT NULL DEFAULT '0',
  `user_ip` varchar(15) NOT NULL,
  `sex` int(1) DEFAULT '0'


php

 
$load_data = 'setting.timezone, setting.allow_theme, setting.default_theme, setting.language, users.user_name, users.user_theme, users.user_access, users.user_ignore';
require_once("config1.php");


if($data["user_access"] == 4){
	$me = $data['user_name'];
	
	
	
	$private = $mysqli->query("SELECT DISTINCT `status`, `hunter`, `avatar`  FROM `private` WHERE `target` = '$me' AND `status` < 3  AND `hunter` != '$me' ORDER BY `status` ASC");

	if ($private->num_rows > 0)
	{
		$pname = "zzzzttt";
			while ($my_private= $private->fetch_assoc())
			{
				
				if(!strpos(strtolower($data['user_ignore']), strtolower($my_private['hunter']))){
					if($my_private['status'] == 0){
						echo "<div value=\"{$my_private['status']}\" class=\"element sub_element selected_element\">
								<div class=\"element_name private_view\" value=\"{$my_private["hunter"]}\">
									<p>{$my_private["hunter"]}</p>
								</div>
								<div class=\"delete_element clear_private\" value=\"{$my_private["hunter"]}\">
									<button type=\"button\"><i class=\"remove_element remove_private fa fa-2x fa-close\"></i></button>
								</div>
							</div>";
					}
					else {
						echo "<div value=\"{$my_private['status']}\" class=\"element sub_element hover_element\">
								<div class=\"element_name private_view\" value=\"{$my_private["hunter"]}\">
									<p>{$my_private["hunter"]}</p>
								</div>
								<div class=\"delete_element clear_private\" value=\"{$my_private["hunter"]}\">
									<button type=\"button\"><i class=\"remove_element remove_private fa fa-2x fa-close\"></i></button>
								</div>
							</div>";						
					}
				}		
				$pname = "$pname {$my_private['hunter']} ";
			}
	}
	else {
		echo '<p class="centered_element">' . $noprivate . '</p>';
	}
}
else {
	exit();
}




Alvast bedankt
mvg marcel venneman
Gelieve [code][/code] tags te gebruiken in plaats van [quote][/quote] tags. Thx.
Wat is de kolom 'time' ? 'time' is een gereserveerd woord binnen SQL. waarom is die van het type int? Dat zou beter een timestamp of een DATETIME kunnen zijn lijkt mij. Maar anyway uitgaande van het feit dat de kolom 'time' een TIMESTAMP opslaat en je ook een tabel 'users' hebt zou je een JOIN kunnen maken van deze twee tabellen en de resultaten kunnen groeperen (GROUP BY) aan de hand van het user_id en vervolgens per user de hoogste waarde (MAX) tonen van de login tijden.

Je query zou er dan ongeveer zo uit komen te zien:

SELECT
	u.id, 
	u.name, 
	MAX(l.lastlogin) AS lastlogin
FROM 
	users u 
JOIN 
	logins l 
ON 
	u.id=l.user_id 
GROUP BY 
	u.id
Als iemand 'time' of 'date' als eigen gemaakt kolom wilt gebruiken (wat normaliter niet kan), vraag ik me af of het de juiste benaming is. Tijd en datum zijn binnen een applicatie een ruim begrip. Want is het de tijd van het aanmaken van het record? De tijd van het verwijderen van het record? De laatste inlogtijd?

Nu weet je het misschien nog, maar na een paar maanden kan het opeens verwarrend worden. Dus noem geeft ook aan in de veldnaam waarvoor het gebruikt wordt. En het neemt ook het probleem weg waarbij je opeens merkt dat het veld een gereserveerde naam is. En ik geef dan toe: MySQL geeft dit wel erg slecht aan ;-).


Reageren