login  Naam:   Wachtwoord: 
Registreer je!
 Forum

De juiste avatar selecteren?

Offline Chupskie - 27/03/2006 20:35 (laatste wijziging 27/03/2006 20:37)
Avatar van ChupskieMySQL beginner
  1. <?php
  2. $res = mysql_query("SELECT k2gastenboek.name AS name, tblgebruikers.gebruikersnaam AS gebrnaam, tblgebruikers.user_avatar AS user_avatar FROM k2gastenboek LEFT JOIN tblgebruikers ON k2gastenboek.name = tblgebruikers.gebruikersnaam = tblgebruikers.user_avatar");
  3. while ($arre = mysql_fetch_array($res))
  4. {
  5. echo '<img alt="" src="avatars/' . $arre["user_avatar"] . '" /><br>';
  6. }
  7. ?>


Hoe kan ik nu zorgen dat hij alleen de avatar laat zien van de gene van die post.. na laat hij alle avatars van de mensen die gepost hebben zien!
Dus kbedoel zoiets $arre["$name->user_avatar"]

Weet iemand de oplossing??

26 antwoorden

Gesponsorde links
Offline marten - 27/03/2006 20:41
Avatar van marten Beheerder in je query een where clause inbouwen
Offline Chupskie - 27/03/2006 20:47
Avatar van Chupskie MySQL beginner Maar wat moet ik dan invullen WHERE name = user_avatar ofzow??
Kweet het echt niet sorry..?
Offline marten - 27/03/2006 20:49
Avatar van marten Beheerder WHERE name = $var

$var is je gebruikersnaam die post
Offline Chupskie - 27/03/2006 20:57 (laatste wijziging 27/03/2006 21:00)
Avatar van Chupskie MySQL beginner Ik heb nu dit:

  1. $res = mysql_query("SELECT k2gastenboek.name AS name, tblgebruikers.gebruikersnaam AS gebrnaam, tblgebruikers.user_avatar AS user_avatar FROM k2gastenboek WHERE name = '" . $_POST['name'] . "' LEFT JOIN tblgebruikers ON k2gastenboek.name = tblgebruikers.gebruikersnaam = tblgebruikers.user_avatar");


maar krijg deze error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Voor de duidelijkheid, de berichten zijn al gepost, dus dan kan ik ze toch niet uitlezen met $_POST ??
Hoe kan ik dit oplossen???

edit: ik heb ook dit geprobeerd: WHERE name = $name Maar dan krijg ik de zelfde error???
Offline marten - 27/03/2006 21:00
Avatar van marten Beheerder nee dat kan niet met $_POST 
Offline Chupskie - 27/03/2006 21:06 (laatste wijziging 27/03/2006 21:07)
Avatar van Chupskie MySQL beginner Maar hoe dan wel? Sorry maar het wil niet lukken??

De indeling van mijn tabellen (voor de duidelijkheid ;) )

K2GASTENBOEK
-id
-name

TBLGEBRUIKERS
-id
-gebruikersnaam
-user_avatar

Weet je misschien een oplossing??
Offline marten - 27/03/2006 21:11
Avatar van marten Beheerder $name = SELECT name FROM K2gastenboek

SELECT user_avatar FROM TBLGEBRUIKERS WHERE gebruikersnaam = $name

ff uit de losse pols om beetje aan te geven ;)
Offline Chupskie - 27/03/2006 21:34
Avatar van Chupskie MySQL beginner ik krijg de hele tijd dezelfde error, het ligt volgens mij niet aan de gegevens, maar aan de plek waar WHERE staat? Op welke plek zou die moeten staan, ik heb dit:

  1. $res = mysql_query("SELECT k2gastenboek.name AS name, tblgebruikers.gebruikersnaam AS gebrnaam, tblgebruikers.user_avatar AS user_avatar FROM k2gastenboek WHERE gebrnaam = name LEFT JOIN tblgebruikers ON k2gastenboek.name = tblgebruikers.gebruikersnaam = tblgebruikers.user_avatar");


en dit:
  1. $res = mysql_query("SELECT k2gastenboek.name AS name, tblgebruikers.gebruikersnaam AS gebrnaam, tblgebruikers.user_avatar AS user_avatar FROM k2gastenboek LEFT JOIN tblgebruikers ON k2gastenboek.name = tblgebruikers.gebruikersnaam = tblgebruikers.user_avatar WHERE gebrnaam = name");


al geprobeerd, beide met dezelfde error als hierboven 
Een idee?? ik kom er maar niet uit?
Offline marten - 27/03/2006 21:47 (laatste wijziging 27/03/2006 21:49)
Avatar van marten Beheerder
  1. $res = mysql_query("
  2. SELECT
  3. k2gastenboek.name AS name,
  4. tblgebruikers.gebruikersnaam AS gebrnaam,
  5. tblgebruikers.user_avatar AS user_avatar
  6. FROM
  7. k2gastenboek
  8. WHERE
  9. gebruikersnaam = name
  10. LEFT JOIN
  11. tblgebruikers
  12. ON
  13. k2gastenboek.name = tblgebruikers.gebruikersnaam = tblgebruikers.user_avatar
  14. ");

ff voor de duidelijkheid 

  1. $resnaam = mysql_query("SELECT name FROM k2gastenboek") OR die(mysql_error());

probeer deze eerst eens....
zodat je de naam van de gebruiker krijgt.
Offline Chupskie - 27/03/2006 22:18
Avatar van Chupskie MySQL beginner Met die laaste (alleen name) krijg ik alle namen achter elkaar te zien, die een bericht in het gastenboek hebben gepost. Van oud naar nieuw gesorteerd. Dus dat werkt goed!

  1. $res = mysql_query("
  2. SELECT
  3. k2gastenboek.name AS name,
  4. tblgebruikers.gebruikersnaam AS gebrnaam,
  5. tblgebruikers.user_avatar AS user_avatar
  6. FROM
  7. k2gastenboek
  8. WHERE
  9. gebruikersnaam = name
  10. LEFT JOIN
  11. tblgebruikers
  12. ON
  13. k2gastenboek.name = tblgebruikers.gebruikersnaam = tblgebruikers.user_avatar
  14. ");
  15.  
  16. while ($arre = mysql_fetch_array($res))
  17. {
  18. echo '<img alt="" src="avatars/' . $arre["user_avatar"] . '" /><br>';
  19. }

Dit is nu de totale code die ik heb, en weer krijg:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Dat komt weer door die WHERE ??

Wat doe ik nu toch verkeerd?
Offline Maarten - 27/03/2006 22:24
Avatar van Maarten Erelid Die
= tblgebruikers.user_avatar
moet er niet meer achter volgens mij, je kan maar enkel
x = y hebben en niet x = y = z
Offline Chupskie - 27/03/2006 22:35
Avatar van Chupskie MySQL beginner Als ik die weg haal, krijg ik nog steeds alle avatars onder elkaar, alleen hij laat maar van een het plaatje zien, de rest allemaal kruisjes omdat hij die niet kan vinden ofzo?? Als ik die wel laat staan, dan krijg ik ook alle avatars onder elkaar per post, maar dan laat hij wel de plaatjes zien.. Dus ik laat hem maar staan ;)

iig hoe krijg ik nu alleen dat bijhorende plaatje bij de juiste persoon?
Met die where krijg ik elke keer diezelfde fout? Dat snap ik ook niet?

Iemand een idee? Alvast bedankt? :(
Offline Thomas - 27/03/2006 23:29
Avatar van Thomas Moderator Het is i.i.g.

  1. SELECT ...
  2. FROM ...
  3. LEFT JOIN ...
  4. WHERE ...


en niet in een andere volgorde.
In je (LEFT) JOIN deel geef je de verbanden aan tussen de tabellen die je wilt verbinden, en in het WHERE deel geef je aan waaraan je resultaatset dient te voldoen...
Offline Chupskie - 28/03/2006 11:46 (laatste wijziging 28/03/2006 11:49)
Avatar van Chupskie MySQL beginner
  1. <?php
  2. $res = mysql_query("
  3. SELECT
  4. k2gastenboek.name,
  5. tblgebruikers.gebruikersnaam,
  6. tblgebruikers.user_avatar
  7. FROM
  8. k2gastenboek
  9. LEFT JOIN
  10. tblgebruikers
  11. ON
  12. k2gastenboek.name = tblgebruikers.gebruikersnaam = tblgebruikers.user_avatar
  13. WHERE
  14. tblgebruikers.user_avatar = k2gastenboek.name
  15. ") or die(mysql_error()) ;
  16.  
  17. while ($arre = mysql_fetch_array($res))
  18. {
  19. echo $arre["gebruikersnaam"];
  20. echo '<img alt="" src="avatars/' . $arre["user_avatar"] . '" /><br>';
  21. } ?>


Zo is het nu! Nu is de volgorde goed, alleen ik krijg geen resultaat meer omdat de inhoude van de WHERE nog niet goed is. Als ik de where weg haal, krijg ik de gebruikersnaam en daar onder de user_avatar te zien, en dan van alle gebruikers.

Nu moet ik dus in die WHERE, allee die 'name' selecteren. En zorgen dat hij dan dus ook maar 1 avatar laat zien?

Iemand een idee? We zijn er bijna?
Offline marten - 28/03/2006 12:02
Avatar van marten Beheerder je selecteert toch alleen de gegevens van degene die gepost heeft ?
Offline Chupskie - 28/03/2006 12:07 (laatste wijziging 28/03/2006 12:09)
Avatar van Chupskie MySQL beginner Dat is mijn bedoeling ja, om de juiste avatar te laten zien van de gene die gepost heeft!

Maar met where laat hij niks zien?
En zonder where alle avatars onder elkaar? Wel in de goede volgorde van gepost, dus wie het eerste heeft gepost bovenaan en zo verder..!

Maar wat bedoel je precies, marten?

edit: duidelijkere uitleg
Offline marten - 28/03/2006 12:11
Avatar van marten Beheerder wat ik probeer te zeggen 

je selecteert ALLEEN de data van de gast die gepost heeft.....
dan kan je toch nooit alle gebruikers krijgen ;)

  1. WHERE
  2. tblgebruikers.user_avatar = k2gastenboek.name


Probeer eens

  1. WHERE
  2. tblgebruikers.gebruikersnaam = k2gastenboek.name
Offline Chupskie - 28/03/2006 12:19 (laatste wijziging 28/03/2006 12:21)
Avatar van Chupskie MySQL beginner Nee helaas, nu krijg ik dus weer niks te zien.
En als ik de where weg haal, krijg ik alles te zien.

Voor de duidelijkheid, laat hier even het voorbeeld zien.
In dit voorbeeld heb ik de where weg gehaald.

http://www.kleedhok2.nl/gastenboek.php

Dit is dus zonder where en laaat hij dus alle avatars zien, in de goede volgorde. Alleen hij had alleen van die poster de avatar moeten laten zien, en niet van alle posters??

maybe is het dan wat duidelijker??
edit: en wat ik zei, in de goede volgorde, dat is nu ook niet mere :S
Offline marten - 28/03/2006 12:22
Avatar van marten Beheerder oke
maak er eens van
  1. WHERE
  2. tblgebruikers.gebruikersnaam = Nab


wat krijg je dan te zien
Offline Chupskie - 28/03/2006 12:23
Avatar van Chupskie MySQL beginner Kijk maar.. ik krijg nu dit:
Unknown column 'Nab' in 'where clause'

??
Offline marten - 28/03/2006 12:25
Avatar van marten Beheerder "Nab"
Offline Chupskie - 28/03/2006 12:28 (laatste wijziging 28/03/2006 12:31)
Avatar van Chupskie MySQL beginner bij "Nab", gaf hij een parse error, dit ivm de afsluiting van de complete echo.

Ik heb nu dit: 'Nab'
en nu echo hij alle nab's onder elkaar (hij selecteerd dus nu de goede)

Nab heeft alleen nog geen avatar ingesteld, vandaar dat hij dat plaatje niet kan vinden. Alleen 'Kloas' en 'Chupskie' hebbben een avatar ingesteld. Maar dat is ook niet het probleem!

Hij selecteerd nu dus alle 'nab's en nu?
edit: Typo
Offline marten - 28/03/2006 12:30
Avatar van marten Beheerder nu zorgen dat je maar 1x nab krijgt want hij heeft maar 1 bericht gepost 
Offline Chupskie - 28/03/2006 12:32
Avatar van Chupskie MySQL beginner En hoe doe ik dat dan? met en LIMIT? nee dat kan niet? een if else?
Offline marten - 28/03/2006 12:33
Avatar van marten Beheerder je hebt in je where clause nog nergens iets waar hij het huidige bericht gebruikt ;)

dus iets als && bericht = $huidigbericht of iets in die geest
Offline Chupskie - 28/03/2006 12:42 (laatste wijziging 28/03/2006 13:16)
Avatar van Chupskie MySQL beginner Ik krijg maar niet het maar niet voor elkaar, dat hij alleen de avatar pakt van de persoon die dat bijhorende bericht heeft gepost!?

Een voorbeeld hoe het nu is, kun je bekijken op:
http://www.kleedhok2.nl/gastenboek.php

En het totale script staat op, wat hiervoor van toepassing is, staat op:
http://www.pastebin.be/688/

Maar aan het stukje hierboven heb je al genoeg denk ik.
Hoe selecteer ik nu alleen de avatar van post van dat bericht??

edit: zou ik niet in het gastenboek een rij er bij kunnen maken, dat hij per post erbij schrijft hoe de avatar heet? En dan is het uitlezen simpel? Maar dat is niet echt functioneel want alle oudere berichten die hij onder die naam heeft gepost, die krijgen dan nog geen avatar??
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.309s