mysql while vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer C#

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken Als C# .NET Developer wordt je verantwoordelijk voor het ontwikkelen van applicaties voor belangrijkste product van deze organisatie. Dit product is een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Er

Bekijk vacature »

PHP back-end developer gezocht!

Functie Werk je liever zonder druk en keiharde deadlines maar met de focus op kwaliteit? Dan kom je hier op de juiste plek terecht! In Het team bestaat momenteel uit 12 developers, hiernaast werken er collega’s van front-end, UX maar ook marketing/sales en support. In iedere sprint ontwikkel je samen functionaliteiten met als uitdaging om de klanten de beste gebruikerservaring te bieden. Ze bieden een werkplek waar je jezelf kunt blijven ontwikkelen, en mee te werken aan zowel bestaande als nieuwe mogelijkheden. Eisen • HBO werk- en denkniveau (ze kijken niet naar een papiertje) • Je denkt graag mee over

Bekijk vacature »

Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Opleveren van mooie eindproducten, middels de Agile methodiek; Samenwerken in een team van 10 collega's; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven. De

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

Senior Front-end Developer

Dit ga je doen Met behulp van diverse programmeertalen ontwikkelen van Front-end software; Het begeleiden van het front-end team; Het oplossen van incidenten; Het bijhouden van een backlog; Je hebt een actieve bijdrage in de wekelijkse overleggen met de omliggende teams; Je houdt trends bij en adviseert het management hierover waar nodig; Helder communiceren met de stakeholders om hen zo mee te nemen in projecten en laten inzien wat de duur en toegevoegde waarde van bepaalde projecten is. Hier ga je werken Deze organisatie heeft circa 40 miljoen bezoekers per maand en heeft innovatie hoog in het vaandel staan. Het

Bekijk vacature »

SQL Database developer

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Software developer

Functie Momenteel zijn ze op zoek naar een Software developer die, veelal fullstack, mee gaat werken aan de ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP),

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

.NET Developer Microservices

Dit ga je doen Je taken zullen voornamelijk bestaan uit: Het ontwikkelen van software, inclusief vormgeving, implementaties, integraties en (automatisch) testen (.NET, C#, Azure, Docker, Microservices, Angular); Het in kaart brengen van software requirements; Zorgen dat jouw code kwalitatief hoogstaand is; Het uitvoeren van risico analyses; Een bijdrage leveren aan het continuous quality improvement process. Hier ga je werken Dat kanker een verschrikkelijke ziekte is die de wereld uit geholpen moet worden, is duidelijk. Binnen deze Gelderse organisatie die duizenden ziekenhuizen van producten voorziet, proberen ze daar via technische innovaties aan bij te dragen. Samen met 10 collega .NET developers

Bekijk vacature »

Traineeship ICT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

Back-end PHP Software Developer - Juniorfunctie

Functieomschrijving Wij zijn op zoek naar een PHP Software Developer om ons team te versterken en mee te werken aan de ontwikkeling van eigen IOT-oplossingen. In deze functie ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor het uitlezen en managen van sensoren in machines. Je werkt nauw samen met een team van ontwikkelaars en engineers om de beste software-oplossingen te creëren. Jouw werkzaamheden zien er als volgt uit: Je bent in deze rol verantwoordelijk voor het ontwerpen, ontwikkelen en onderhouden van webapplicaties en softwaretoepassingen voor in-house ontwikkelde IOT oplossingen. Je werkt aan complexe databases en back-end

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

22/11/2024 10:51:40
 
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.