mysql while vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/senior Python developer

Functie Bedrijven komen bij deze organisatie om technische vraagstukken op te lossen en hierin ook tot oplossingen te komen waar ze zelf misschien niet aan gedacht hadden. Jij gaat vanuit je ervaring dus niet alleen hands-on aan de slag met het ontwikkelen, maar zult ook zeker adviseren en proactief meedenken met de klant. Er zijn meerdere lange en/of korte projecten en het type klanten is heel uiteenlopend. Zo kun je terecht komen in een multidisciplinair scrumteam waarin je als Python developer meewerkt, of juist voor een kleiner (Greenfield) project aan de slag gaan waarin je veel breder bezig bent. Door

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Java developer - procesoptimalisatie (Inhouse)

Functie Wat ga je doen als Java developer? Jij als back end developer hebt al enige ervaring opgedaan in jouw vakgebied. Voornamelijk het werken met Java en Spring spreekt jou aan. Jij wordt samen met je collega developers in het team verantwoordelijk voor de gehele back end van de applicatie. Hierdoor heb jij veel zelfstandigheid in je rol en zul je ook zelf beslissingen samen met de PO maken. Er wordt gewerkt volgens de SCRUM methodiek, om zo structuur te creëren in de werkzaamheden. Binnen de 2-wekelijkse sprints pak jij je taken op die samen met de PO afgestemd zijn.

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Ervaren PHP Developer

Functie omschrijving Jelling IT zoekt ervaren PHP developer! Voor een organisatie in de regio Rhenen zijn wij op zoek naar een ervaren PHP developer die gaat functioneren als een verlengstuk van de klant. Jij bent iemand die technisch complexe zaken met enthousiasme aanvliegt. Je bent in staat om aan meerdere projecten te werken en werkt graag met de nieuwste technieken. In deze functie werk je veel samen met front-end developers en stel je alles in het werk om grote verschillen voor de klanten teweeg te brengen. Verder ben jij iemand die graag zichzelf uitdaagt en die altijd de beste wilt

Bekijk vacature »

Full stack Javascript ontwikkelaar

Functie Benieuwd hoe jouw dag eruit ziet? Je komt binnen rond een uur of 10 en dat start je met de morning call. Dit doen we vanaf het hoofdkantoor of op het lab, ligt eraan welk project je mee bezig bent. Na de call en het verdelen van de tickets ga je met je team aan de slag. Rond een uur of 12 is er een goede lunch en ga je smiddags weer lekker door met je werk. De ene keer maak jij een game voor een groot merk om de interactie tussen product en eindgebruiker te vergroten. De andere

Bekijk vacature »

.NET Developer C# VB

Samengevat: Deze werkgever is actief in software voor het matchen van vraag en aanbod van gebruikte auto-onderdelen. Ben jij een .NET Developer? Heb je ervaring met het ontwikkelen (REST) en integreren van webservices? Vaste baan: C# .NET Developer C# VB HBO €2.600 - €6.200 Wij ontwikkelen software om vraag en aanbod van onderdelen van personenauto's bij elkaar te brengen. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. De branche van dit bedrijf is Automotive. Functie: Voor de vacature als .NET Developer Dordrecht HBO ga je

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

Starter/junior Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als starter/junior developer zul je direct begeleid worden door een senior uit het team. Het is van belang dat

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed

Bekijk vacature »

Developer Full Stack

Functie omschrijving Developer gezocht! Ben jij een enthousiaste developer die graag wil bijdragen aan ontwikkelingen binnen een mooie organisatie? Solliciteer dan snel. Wij zijn op zoek naar een Full Stack Developer uit de regio Nijkerk die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een SaaS applicatie. Je moet beschikken over beheersing van zowel de Nederlandse als Engelse taal aangezien je samen met de klant gaat werken. Bedrijfsprofiel Je komt te werken binnen een echt familiebedrijf dat al sinds 1925 actief is binnen de FMCG branche. Het bedrijf heeft 40 medewerkers en er heerst een platte communicatiestructuur waarbij

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Front-end Developer

Dit ga je doen Je komt in een DevOps-cultuur te werken waarbij je met je team werkt aan de front-end van diverse brand websites; Het ontwerpen van functionele en grafische ontwerpen die worden geïmplementeerd; Draagt zorg voor het maken van analyses; Je werkt nauw met je collega’s samen en geeft elkaar feedback en suggesties waar nodig; Het uitwerken van vraagstukken die afkomstig zijn van verschillende klanten; Hier ga je werken Deze marktleider op gebied van fietsen en fietservaring is gevestigd in twee provincies, verspreid over meerdere locaties. Jij zult voornamelijk in regio Joure aan de slag gaan. De organisatie doelt

Bekijk vacature »

Pagina: 1 2 volgende »

Eeyk Vd noot

Eeyk Vd noot

14/03/2015 16:05:33
Quote Anchor link
goede middag, kan iemand mij uitleggen hoe dit werkt?

ik heb hier een script :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$sql_sql
= mysqli_query($dbcreat,
"SELECT * FROM `vriendenlijst` WHERE
`naam_1`='"
.mysqli_real_escape_string($dbcreat,$data->login)."' or
`naam_2`='"
.mysqli_real_escape_string($dbcreat,$data->login)."' AND `bevestigd`='1'") or die(mysqli_error($dbcreat));
 
$sqll     = mysqli_fetch_object($sql_sql);
$sqll_gevonden  = mysqli_num_rows($sql_sql);

 $berichten = mysqli_query($dbcreat,"SELECT * FROM berichten_muur
  WHERE
  `gebruikersnaam`='"
.mysqli_real_escape_string($dbcreat,$data->login)."' or
  `gebruikersnaam`='"
.mysqli_real_escape_string($dbcreat,$sqll->naam_1)."' or
  `gebruikersnaam`='"
.mysqli_real_escape_string($dbcreat,$sqll->naam_2)."'");

while($object = mysqli_fetch_object($berichten)){
 
?>

het probleem is dat als je 3 vrienden hebt je maar 3 berichten te zien krijgt.
maar als er 10 berichten zijn en je hebt maar 3 vrienden blijven er maar 3 berichten staan.
hoe krijg ik dit dat als er 10 berichten zijn dat je ze ook alle 10 te zien krijgt en niet maar 3?

kan iemand mij helpen? ik ben al paar dagen bezig met deze fout, ik heb al van alles geprobeert van Inner en cross join en nog veel meer.
 
PHP hulp

PHP hulp

26/11/2024 00:55:02
 
Thomas van den Heuvel

Thomas van den Heuvel

14/03/2015 16:42:51
Quote Anchor link
(A OR B) AND C
is iets compleet anders dan
A OR (B AND C)

Het lijkt mij altijd beter om expliciet te zijn in wat je bedoelt. Volgens mij was zo'n AND/OR vraag al eerder aan de orde geweest?

Daarnaast: gebruik (ook hier :)) user ID's in plaats van user namen...

Tevens: misschien kun je dit splitsen in VERZONDEN en ONTVANGEN berichten?
 
Eeyk Vd noot

Eeyk Vd noot

14/03/2015 17:01:48
Quote Anchor link
Je verzend niks en ontvangt niks.
het is een soort gastenboek waar je kan lezen wat je vrienden typen.
ook als ik dit veranderd in user->id werkt er niks.

er blijven maar 3 berichten staan.


alleen als ik

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php  $berichten = mysqli_query($dbcreat,"SELECT * FROM berichten_muur"); ?>


gebruik en in de while

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
 if($vrienden->naam_1 == $gebruikersnaam or $vrienden->naam_2 == $gebruikersnaam or $data->login == $gebruikersnaam
?>


werkt het prima. alleen het probleem is dat ik dan geen pagina 1 2 3 4 5 ect kunt toevoegen omdat als ik dat wil toevoegen de pagina nummer werken op het aantal vrienden dat je hebt.

weet iemand het antwoord?
Gewijzigd op 14/03/2015 17:02:36 door Eeyk Vd noot
 
Thomas van den Heuvel

Thomas van den Heuvel

14/03/2015 17:14:48
Quote Anchor link
Ik zou eerst je vriendelijst eens fixen. Zowel naam1 als naam2 kun je zelf zijn.

Daarnaast zou ik user id's gebruiken.

Hieruit bouw je dan uiteindelijk een lijst van vrienden-id's.

Dan kun je een query bouwen waarbij je bericht opvraagt die ofwel van jou zijn, ofwel van een (bevestigde) vriend.

Of je bouwt een lijst van gebruiker-id's, waarbij je bestaande gebruiker-ids (jezelf) steeds overschrijft zodat je een lijst van unieke gebruikers overhoudt. Die je weer voor de berichtenmuur-query kunt gebruiken.

EDIT: het probleem is ook dat je van je eerste query maar één resultaat ophaalt...
Gewijzigd op 14/03/2015 17:16:17 door Thomas van den Heuvel
 
Eeyk Vd noot

Eeyk Vd noot

14/03/2015 17:20:34
Quote Anchor link
Hoe zorg ik er voor dat de query meerderemaals word opgehaald?
 
Thomas van den Heuvel

Thomas van den Heuvel

14/03/2015 17:24:06
Quote Anchor link
Lees die vraag nog eens hardop voor :).

Het is niet geheel ondenkbaar dat dit meerdere resultaten oplevert:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$sql_sql
= mysqli_query($dbcreat,
"SELECT * FROM `vriendenlijst` WHERE
`naam_1`='"
.mysqli_real_escape_string($dbcreat,$data->login)."' or
`naam_2`='"
.mysqli_real_escape_string($dbcreat,$data->login)."' AND `bevestigd`='1'") or die(mysqli_error($dbcreat));
?>


Hoe haal je normaal meerdere resultaten op? Met een while-loop wellicht?
 
Eeyk Vd noot

Eeyk Vd noot

14/03/2015 17:30:32
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$sql_sql
= mysqli_query($dbcreat,
"SELECT * FROM `vriendenlijst` WHERE
(`naam_1`='"
.mysqli_real_escape_string($dbcreat,$data->login)."' or
`naam_2`='"
.mysqli_real_escape_string($dbcreat,$data->login)."') AND `bevestigd`='1'") or die(mysqli_error($dbcreat));
 
$sqll_gevonden  = mysqli_num_rows($sql_sql);
while($sqll = mysqli_fetch_object($sql_sql)){
 $berichten = mysqli_query($dbcreat,"SELECT * FROM berichten_muur
  WHERE
  gebruikersnaam='"
.mysqli_real_escape_string($dbcreat,$data->login)."' or
  gebruikersnaam='"
.mysqli_real_escape_string($dbcreat,$sqll->naam_1)."' or
  gebruikersnaam='"
.mysqli_real_escape_string($dbcreat,$sqll->naam_2)."'
  ORDER BY datum DESC
  "
);
}


while($object = mysqli_fetch_object($berichten)){ ?>


ik probeer nu dit maar dit geeft nog steeds niet het juiste resultaat.

Toevoeging op 14/03/2015 17:48:23:

ik heb gedaan wat je ze en alles op id gezet maar dit lost niks op helaas.
 
Thomas van den Heuvel

Thomas van den Heuvel

14/03/2015 17:51:11
Quote Anchor link
1. Bouw een vriendelijst en sla (bij voorkeur) id's of wat dan ook op in bijvoorbeeld een array.

2. Haal, mits je vriendenlijst niet leeg is, alle berichten op die afkomstig zijn van deze personen. Gebruik hierbij bijvoorbeeld de IN (...) constructie van MySQL:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$query
=
    'SELECT *
    FROM berichten_muur
    WHERE poster_id = '
.$jouwUserId.'
    OR poster_id IN ('
.implode(',', $nietLegeLijstVanVriendenIds).')';
?>


En for the love of all that is good and holy: refereer aan users via hun ID, niet via hun naam.
 
Eeyk Vd noot

Eeyk Vd noot

14/03/2015 17:54:28
Quote Anchor link
Dus dit moet ik invullen als :

$query =
'SELECT *
FROM berichten_muur
WHERE poster_id = '.$data->id.'
OR poster_id IN ('.implode(',', $sqll->id_gebruiker_2 or $sqll->id_gebruiker_2).')';

?
 
Thomas van den Heuvel

Thomas van den Heuvel

14/03/2015 17:57:57
Quote Anchor link
Nee, je moet, zoals in stap 1 staat, eerst een lijst bouwen - dit is een aparte query. De resultaten hiervan zet je in een array. Dit array gebruik je vervolgens weer in een andere query.

Lees eens goed wat ik schrijf, ik heb niet het idee dat ik onduidelijk ben.
 
Ivo P

Ivo P

14/03/2015 18:05:15
Quote Anchor link
ik heb de afgelopen week volgens mij vrijwel dezelfde vraag gezien waaruit toen een oplossing kwam met 1 query.

Was dat ook een vraag van jou, of zijn meer mensen met hetzelfde probleem bezig?
 
Eeyk Vd noot

Eeyk Vd noot

14/03/2015 18:08:43
Quote Anchor link
dat was de zelfde vraag inderdaad, het probleem echter met de oplossing van toen is dat je alle berichten 2x te zien kreeg.

en je eigen bericht 3x. ik heb nu in me database naam_1 en naam_2 vervangen door id_1 en id_2. en de gebruikersnaam in berichten muur door gebruikers_id.


als je bij de vorige oplossing 3 vrienden had kreeg je je eigen berichten 3x te zien had je 5 vrienden kreeg je je eigenberichten 5x te zien.
Gewijzigd op 14/03/2015 18:11:14 door Eeyk Vd noot
 
Dos Moonen

Dos Moonen

14/03/2015 18:38:45
Quote Anchor link
Het kan en hoort in één query.

Hier is wat pseudo SQL van hoe het zou kunnen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT kolommen FROM berichten INNER JOIN (<die query met meerdere resultaten, maar dan alleen het id> GROUP BY <id veld van het bericht>) AS ids ON ids.id = bericht.id
 
Eeyk Vd noot

Eeyk Vd noot

14/03/2015 18:57:23
Quote Anchor link
SELECT * FROM berichten_muur AS BB
INNER JOIN
(SELECT * FROM vriendenlijst AS TT
WHERE TT.naam_1='".mysqli_real_escape_string($dbcreat,$data->login)."'
OR TT.naam_2='".mysqli_real_escape_string($dbcreat,$data->login)."') AS TTT
ON BB.gebruikersnaam= TTT.naam_2 or BB.gebruikersnaam= TTT.naam_1 AND BB.pagina='overzicht'


dat heb ik al eens geprobeerd alleen dan krijg ik maar 3 berichten te zien.
en als je 4 vrienden hebt krijg je 4 berichten te zien terwijl er bijvoorbeeld 20 berichten staan.



Toevoeging op 14/03/2015 19:01:01:

ik heb er id van gemaakt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

$berichten
= mysqli_query($dbcreat,"SELECT * FROM berichten_muur AS BB
INNER JOIN
(SELECT * FROM vriendenlijst AS TT
WHERE TT.id_1='"
.mysqli_real_escape_string($dbcreat,$data->id)."'
OR TT.id_2='"
.mysqli_real_escape_string($dbcreat,$data->id)."') AS TTT
ON
(BB.gebruiker_id = TTT.id_1 OR
 BB.gebruiker_id = TTT.id_2) AND
 BB.pagina='overzicht'
 "
) or die(mysqli_error($dbcreat));
 

?>


vrienden aanvragen en berichten plaatsen werkt nu ook op id.



Toevoeging op 14/03/2015 19:09:59:

maar nog steeds werkt het niet.
Gewijzigd op 14/03/2015 19:12:55 door Eeyk Vd noot
 
Thomas van den Heuvel

Thomas van den Heuvel

14/03/2015 19:39:01
Quote Anchor link
Door de manier waarom de vriendelijst-tabel in elkaar zit leent een oplossing met 1 query zich hier niet direct voor. Ook zou je je niet in allerlei moeilijke/onmogelijk bochten moeten wringen om het met 1 query op te lossen. Daarnaast heb je een ("jouw") vriendenlijst wellicht vaker nodig dus valt er best iets te zeggen om dat elke page-access opnieuw te berekenen en in een user-object op te slaan ofzo.

Tevens is er niets mis met de "verdeel en heers" strategie: deel je probleem op in deelproblemen die je afzonderlijk oplost. Ik snap de aversie voor meerdere queries niet.

Begin dus gewoon eerst eens met het opstellen van een array in PHP, waarin de gebruiker-id's van jouw vrienden zitten.

Deze bouwsteen kun je vervolgens toepassen in andere onderdelen, bijvoorbeeld queries.
 
Eeyk Vd noot

Eeyk Vd noot

14/03/2015 19:45:59
Quote Anchor link
Het vreemde is dat alles op andere pagina's wel werken.
bijvoorbeeld de vrienden pagina is ook opgebouwd met de zelfde soort constructie.

Afbeelding

Toevoeging op 14/03/2015 19:50:11:

Hoe bedoel je eigenlijk met array's? of zit ik nou totaal ergens anders aan te denken?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$hot
= array("ik", "jij", "tot ziens");
echo "hallo ".$hot[0].", ben eeyk en  ".$hot[1]." leuk je te ontmoeten ".$hot[2];
?>


zo iets?

Toevoeging op 14/03/2015 20:00:54:

ik gebruik nu

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$berichten
= mysqli_query($dbcreat,"SELECT * FROM berichten_muur");
$toegestaan = 1;
while($object = mysqli_fetch_object($berichten){
$gebruikersnaam = $object->gebruikers_id;
 if($vrienden->id_1 == $gebruikersnaam or $vrienden->id_2 == $gebruikersnaam or $data->id == $gebruikersnaam AND $toegestaan = 40){


$toegestaan++;
}
else{}

}

?>


als tijdelijke oplossing en kom ik er ooit achter zou het mooi zijn.
Gewijzigd op 14/03/2015 20:10:26 door Eeyk Vd noot
 
Thomas van den Heuvel

Thomas van den Heuvel

14/03/2015 20:58:56
Quote Anchor link
Bloody hell.

De lijst van jouw vrienden.

Ik type toch geen Chinees?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$mijnVrienden
= array();

$res = mysqli_query(
    $dbcreat,
    'SELECT user_id_1, user_id_2
    FROM vriendenlijst
    WHERE (user_id_1 = '
.$mijnUserId.' OR user_id_2 = '.$mijnUserId.')
    AND bevestigd = 1'

);
// bouw die lijst nou eens
while ($row = mysqli_fetch_assoc($dbcreat, $res)) {
    // overschrijf gewoon alle keys, zodat je een array met unieke gebruiker id's overhoud
    $mijnVrienden[$row['user_id_1']] = true;
    $mijnVrienden[$row['user_id_2']] = true;
}

// geef resultaat vrij
mysqli_free_result($res);
// verwijder jezelf als vriend van jezelf
unset($mijnVrienden[$mijnUserId]);
?>

Vervolgens kun je met array_keys($mijnVrienden) je queries opbouwen.

Zorg wel dat $mijnVrienden niet leeg is voordat je deze in constructies als "... IN (...)" gebruikt. Zoals hier boven al is beschreven.

Wel ff $mijnUserId en user_id_1 en user_id_2 aanpassen aan whatever jij gebruikt in je code uiteraard...

Om eerlijk te zijn, als je dit niet volgt vraag ik mij eigenlijk hardop af waarom je dan wel aan een klus als het bouwen van een soort van community bezig bent.
Gewijzigd op 14/03/2015 21:04:26 door Thomas van den Heuvel
 
Eeyk Vd noot

Eeyk Vd noot

14/03/2015 21:25:49
Quote Anchor link
Bedankt voor de moeite!

ik ga er mee aan de slag! ik hoop dat het werkt.
Nogmaals bedankt.
ik ben bezig met een soort van 'community' voor Nederlanders en belgen.
Waar men foto's, video's kan delen en met elkaar contact kan opnemen, ect.
 
Dos Moonen

Dos Moonen

14/03/2015 22:00:43
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
SELECT B.*
FROM berichten_muur AS B
INNER JOIN (
  SELECT IB.id
  FROM berichten_muur AS IB
  WHERE IB.gebruikersnaam = ?

  U N I O N ALL // zonder die spaties... phphulp lijkt een stomme anti sql-injection blacklist te hebben -.-

  SELECT IB.id
  FROM berichten_muur AS IB
  INNER JOIN vriendenlijst AS V
  ON V.naam1 = IB.gebruikersnaam
  WHERE V.gebruikersnaam = ?

  U N I O N ALL

  SELECT IB.id
  FROM berichten_muur AS IB
  INNER JOIN vriendenlijst AS V
  ON V.naam2 = IB.gebruikersnaam
  WHERE V.gebruikersnaam = ?
) AS IDS
ON IDS.id = B.id
ORDER BY een_datum_lijkt_me_handig


probeer dit eens...

Joinen op integers (altijd 4 bytes) is fijner voor een database dan joinen op strings (varchars zijn variabel in lengte, hoeveel bytes per teken hangt af van de encoding. het kan zijn dat 'dos' als 12 bytes kost om op te slaan.)
vervang het veld gebruikersnaam is tabel berichten_muur dus aub door een id en haal de gebruikers naam op via een join...
Hoe langer je wacht hoe moeilijker het wordt die fout te verbeteren.

PS. het GROUP BY gedeelte van mijn pseudo code was erg belangrijk...
PPS. PosqlgreSQL > MySQL
Gewijzigd op 14/03/2015 22:02:48 door Dos Moonen
 
Eeyk Vd noot

Eeyk Vd noot

14/03/2015 22:34:26
Quote Anchor link
@dos moonen Thanks het werkt alleen ik blijf deze fout houden.
met alles wat ik doe, iedere manier.

alles komt dubbel vrienden aantal = jou bericht dubbel.
dus 4 vrienden = 4x jou bericht zichtbaar.

Afbeelding


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$vrienden_bericht
= mysqli_query($dbcreat,
"SELECT * FROM `vriendenlijst` WHERE (`naam_1`='".mysqli_real_escape_string($dbcreat,$data->login)."' or `naam_2`='".mysqli_real_escape_string($dbcreat,$data->login)."') AND `bevestigd`='1' LIMIT 0,2500") or die(mysqli_error($dbcreat));
while($ovj     = mysqli_fetch_object($vrienden_bericht)){
$berichten = mysqli_query($dbcreat,"
SELECT B.*
FROM berichten_muur AS B
INNER JOIN (
  SELECT IB.id
  FROM berichten_muur AS IB
  WHERE IB.gebruiker_id = '"
.mysqli_real_escape_string($dbcreat,$ovj->id_1)."' or IB.gebruiker_id = '".mysqli_real_escape_string($dbcreat,$ovj->id_2)."'
  
  U NION ALL
  
  SELECT IB.id
  FROM berichten_muur AS IB
  INNER JOIN vriendenlijst AS V
  ON V.id_1 = IB.gebruiker_id
  WHERE V.id_1 = '"
.mysqli_real_escape_string($dbcreat,$ovj->id_1)."'
  
  U NION ALL
  
  SELECT IB.id
  FROM berichten_muur AS IB
  INNER JOIN vriendenlijst AS V
  ON V.id_2 = IB.gebruiker_id
  WHERE V.id_2 = '"
.mysqli_real_escape_string($dbcreat,$ovj->id_2)."'
) AS IDS

ON IDS.id = B.id
ORDER BY B.datum DESC"
) or die(mysqli_error($dbcreat));
}

?>
Gewijzigd op 14/03/2015 22:47:45 door Eeyk Vd noot
 
Dos Moonen

Dos Moonen

15/03/2015 11:41:21
Quote Anchor link
Woops, de twee selects met joins hebben een group by clause nodig, of haal het 'ALL' weg.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.