login  Naam:   Wachtwoord: 
Registreer je!
 Forum

uitlezen random stem systeem

Offline zwobbel - 05/05/2005 13:49
Avatar van zwobbelPHP gevorderde Ik ben bezig met het maken van een foto rate systeem waarbij een lid een punt van 1 tot 10 kan geven.
Nu ontbreekt mij wat logica wand hoe moet ik die query van uitlezen maken.
Als het lid al heeft gestemt op de foto mag hij niet worden uitgelezen.
Maar de gegevens of de persoon al heeft gestemt staan in een ander database hoe los ik deze uitlees query op zodat je altijd een foto krijgt te zien waarop je nog niet hebt gestemt.
Als er geen fotos meer zijn moet ik gewoon melding krijgen van sorry niks meer te vote voor vandaag.

17 antwoorden

Gesponsorde links
Offline Legolas - 05/05/2005 14:00
Avatar van Legolas Onbekend Sry hoor maar ik snap je vraag écht niet. Kun je het iets beter uitleggen? Wat is hier nou weer 'random' aan?
Offline Thomas - 05/05/2005 14:03
Avatar van Thomas Moderator Een random foto waarop iemand nog niet gestemd heeft:

SELECT * FROM foto
WHERE id NOT IN (<lijst van foto-ids waar de persoon al op gestemd heeft>)
ORDER BY RAND()
LIMIT 0, 1
Offline Legolas - 05/05/2005 14:05
Avatar van Legolas Onbekend @FangorN:
dat LIMIT: kan toch ook gewoon LIMIT 1 zijn i.p.v. LIMIT 0, 1??;-)
Offline Thomas - 05/05/2005 14:08
Avatar van Thomas Moderator {pakt manual erbij}
ja, dat kan, maar mijn query doet hetzelfde 
Offline zwobbel - 05/05/2005 15:54
Avatar van zwobbel PHP gevorderde <lijst van foto-ids waar de persoon al op gestemd heeft>
is da gewoon 5,6,1,2 of hoe moet ik dat er tusse plaatse alvast bedankt!
Offline Legolas - 05/05/2005 15:55
Avatar van Legolas Onbekend Volgens mij gewoon alle id's van de foto's, waar op is gestemd, dus bijv. 1,3,5,9
Offline zwobbel - 05/05/2005 15:58
Avatar van zwobbel PHP gevorderde ja maar in welke mannier wand...
je kan zo:
`1`,`2`,`3`
zo:
'1','2','3'
zo:
'1,2,3,4'
zo:
`1,2,3`
Offline Thomas - 05/05/2005 15:59 (laatste wijziging 05/05/2005 16:03)
Avatar van Thomas Moderator Jep, alle id's waarop al gestemd is, gescheiden door een komma.

EDIT: geen quotes, gewoon ... IN (1,2,5,7,12,88)
Offline zwobbel - 05/05/2005 16:10 (laatste wijziging 05/05/2005 16:12)
Avatar van zwobbel PHP gevorderde hmm nu zit ik opnieuw met ene probleem
Bij het uitlezen van de id's hoe kan ik ervoor zorgen dat bij de laatste id geen , komt te staan?

nu lees ik het dus zo uit voor ids waarop al gestemt is:
  1. <? $gestemt = mysql_query ("SELECT `*` FROM `gestemt` WHERE `geb_ID` = '".$_SESSION["ID"]."'");
  2. while($aRead = MySQL_Fetch_Assoc($gestemt))
  3. {
  4. $gestemt_id = $aRead['foto_ID'].",";
  5. }
  6. ?>
Offline Rens - 05/05/2005 16:14
Avatar van Rens Gouden medaille

Crew algemeen
  1. <?PHP
  2. $gestemd = mysql_query ("SELECT `*` FROM `gestemt` WHERE `geb_ID` = '".$_SESSION["ID"]."'");
  3. while($aRead = MySQL_Fetch_Assoc($gestemd))
  4. {
  5. $gestemd_id = $aRead['foto_ID'].",";
  6. }
  7. $gestemd_id = substr($gestemd_id, 0, (strlen($gestemd_id)-1));
  8. ?>


Substr uitvoeren, dan de hele string-1 (- de komma)
Offline zwobbel - 05/05/2005 16:16
Avatar van zwobbel PHP gevorderde owkej merci nu doet hij alles perfect!
Offline Thomas - 05/05/2005 16:17
Avatar van Thomas Moderator Die klopt niet helemaal, die onthoudt volgens mij alleen maar het laatst opgehaalde id.
Offline zwobbel - 05/05/2005 16:20 (laatste wijziging 05/05/2005 16:21)
Avatar van zwobbel PHP gevorderde Blijkbaar als er nu 2 fotos in de db zijn waarop je hebt gestemt werkt het weer niet geen error ofzo maar je kan terug vote op de eerste foto
Offline Thomas - 05/05/2005 16:24 (laatste wijziging 05/05/2005 16:25)
Avatar van Thomas Moderator Dat zeg ik.

Regel 5:
$gestemd_id = $aRead['foto_ID'].",";

moet zijn
$gestemd_id .= $aRead['foto_ID'].",";

(let op de punt)
en $gestemd_id moet geinitialiseerd worden (voor de lus) met als waarde "" (de lege string).

Trouwens, als je de id's verzamelt in een array, en dan dat array implode op ",", ben je in één keer klaar.
Offline zwobbel - 05/05/2005 16:26 (laatste wijziging 05/05/2005 16:30)
Avatar van zwobbel PHP gevorderde hm en hoe werkt het dan met een array?
Achja ik heb het aangepast nu werkt het ook een array is wel netter mar ja . zo is het ook goed 
Offline Thomas - 05/05/2005 16:30 (laatste wijziging 05/05/2005 16:31)
Avatar van Thomas Moderator Nou jah, het doet hetzelfde als alles verzamelen in een string, maar het is wat minder geklooi.

  1. <?php
  2. $res = mysql_query("SELECT id FROM gestemd WHERE ...");
  3.  
  4. $ids = array();
  5. while($row = mysql_fetch_row($res)) {
  6. $ids[] = $row[0];
  7. }
  8.  
  9. $gestemd_op = implode(", ", $ids);
  10. // $gestemd_op bevat nu de string met de items waarop gestemd is
  11. // bijvoorbeeld "1, 2, 5, 10"
  12. ?>
Offline Rens - 05/05/2005 16:32 (laatste wijziging 05/05/2005 16:32)
Avatar van Rens Gouden medaille

Crew algemeen
  1. $gestemd_id[] = $aRead['foto_ID'];
  2. }
  3. $gestemd_id_met_komma = implode(",", $gestemd_id);


edit; Hmm, FangorN was eerder.^^
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.201s