Best,

Ben al een tijdje bezig, maar kom er echt niet uit.

Ik probeer uit de lijst van websites de website te pakken en dan moet die in users kijken of die account wel credits heeft om de website te laten zien.


$query = mysql_query("Select * from users WHERE user = '".$_SESSION['user']."' AND credits != '0'");
$res = mysql_fetch_array($query);



$bottom = mysql_fetch_assoc(mysql_query("SELECT * FROM `websites` WHERE credits != '".$res['credits']."' AND active = '1' ORDER BY RAND() LIMIT 1"));



maar dan kijkt die heletijd alleen of de website active is.
heb al een paar methodes geprobeerd, daarom vraag ik nu of iemand me kan helpen.

het gaat om een traffic exchange

Groeten,
Robin
Dit klinkt alsof je een JOIN moet gebruiken. Hoe ziet je data-structuur eruit?
Welke velden wil je precies ophalen? Je haalt nu alles op (*), maar dat lijkt mij zwaar overkill!

Verder wil ik je er op wijzen dat je nu nog de oude mysql_.....() functies gebruikt. Deze zijn in PHP 7 verdwenen. Daarom is mijn advies om dit te herschrijven naar mysqli_....() functies. Nu heb je kans dat je site elk moment kan 'breken' als je hosting overschakelt op PHP 7, en dan is het een kwestie van ombouwen tot je site weer werkt.
Heb een table voor de websites en voor de users.
Nu wil ik dat die uit users de credits van de site haald die geopend gaat worden, in de table van websites staat ook de username van de gene die de site heeft toegevoegd.

Hij draait op vps, dus kan zelf bepalen waneer update naar php 7 dus dat komt later nog wel.
Ik zou er niet te lang mee wachten, en al met de ombouw naar mysqli gaan beginnen.
PHP 5.5 t/m 7.0 is momenteel al End Of Life en krijgen geen security-patches meer.

Maar laat je databasestructuur van die twee tabellen eens zien, en welke velden je wilt tonen?

Ik hoop eigenlijk dat je een uniek ID-nummer hebt voor de koppelingen, en niet op de naam data aan elkaar koppelt. Want als de naam aangepast moet worden (privacy, mogelijk zelfs AVG), dan wordt het een complex verhaal.
Dit is waar de websites worden opgeslagen

CREATE TABLE `website` (
  `id` int(11) NOT NULL,
  `link` varchar(150) NOT NULL,
  `kliks` int(15) NOT NULL DEFAULT '0',
  `gebruiker` varchar(150) NOT NULL DEFAULT '',
  `gehad` int(15) NOT NULL DEFAULT '0',
  `active` varchar(255) NOT NULL DEFAULT 'Yes'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;



Dit is van de users
CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `user` varchar(32) NOT NULL,
  `pass` varchar(32) NOT NULL,
  `vip` varchar(4) NOT NULL DEFAULT 'no',
  `credits` decimal(10,1) NOT NULL DEFAULT '0.0',
  `ip` varchar(15) NOT NULL,
  `referral` varchar(32) DEFAULT NULL,
  `slot` int(15) NOT NULL DEFAULT '3',
  `totalhits` int(15) NOT NULL DEFAULT '0',
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


[size=xsmall]Toevoeging op 15/03/2019 17:42:41:[/size]

heb nu zo iets maar nu pakt die geen website. uit de database
$bottom = mysqli_query ( "SELECT * FROM `website` WHERE `active` = '1' AND (SELECT `kliks` FROM `users` WHERE `user` = `website`.`gebruiker` ) ORDER BY RAND() LIMIT 1" );
Dan hoort de koppeling bij gebruiker uit de tabel website te liggen? Klopt dat?
Laat eens wat data zien zodat we weten hoe de koppeling hoort.
Wat wilt u nog meer zien dan?

ja in tabel website heet de user gebruiker
Dus er de koppeling ligt op users.username en website.gebruiker?
Die velden komen qua data dus overeen met elkaar?

Is een ID-nummer eigenlijk niet verstandiger?
De rest loopt allemaal op de username dus als dit dan id wordt moet ik te veel aanpassen daarvoor.
dus hou het liever op username.

users.user dat is de username.
en dat wordt in websites toegevoegd aan website.gebruiker
SELECT u.id,u.user,u.pass,u.credits,w.link,w.kliks
FROM users u
LEFT JOIN websites w ON u.user = w.gebruiker


Dit moet als query werken.
dankje voor u hulp ga hier weer even mee aan de slag, kijken of het hier mee lukt

Reageren