Avatar billede kack Nybegynder
14. juli 2008 - 21:22 Der er 20 kommentarer

Min funktion?

Hej alle. Jeg vil gerne have en funktion der kigger om brugeren allerede har tilføjet sig selv til billedet.

Hvis bruger HAR tilføjet til billedet, skal den skrive "Fjern mig fra billedet".
Hvis brugeren IKKE har tilføjet sig til billedet skal den skrive "Jeg er på billedet".

Er ikke så god til funktioner i php, men har prøvet ad lige vel. Kan bare ikke få det til at fungere. Her er hvad jeg har kodet:

function tjek_bruger_billede() {
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM vao_piccomment WHERE brugerid='" . $data['id'] . "' AND billedeid = '".$_GET['id']."'"),0) or die(mysql_error());
if ($antal == "1") {
echo "<a href='visbillede.php?id=".$_GET['id']."&festid=".$_GET['festid']."&add=0' name='add'>Fjern mig fra billedet</a> <br>";
  }
  else {
  echo "<a href='visbillede.php?id=".$_GET['id']."&festid=".$_GET['festid']."&add=1' name='add'>Jeg er på billedet</a> <br>";
  }
}

Og her udskriver jeg funktionen:

<?
//Menu
    echo "
    <br>
    <div id='show-pic-right'>";
    tjek_bruger_billede();
?>

Hvorfor kan jeg ikke få det til at virke? Håber i forstår mit spørgsmål. Ellers siger i bare til =)
Avatar billede jakobdo Ekspert
14. juli 2008 - 21:44 #1
Jeg tror denne funktion vil være bedre:
function tjek_bruger_billede($id1, $id2,$festid){
    $query = mysql_query("SELECT COUNT(*) FROM vao_piccomment WHERE brugerid='" . $id1 . "' AND billedeid = '".$id2."' LIMIT 1") or die(mysql_error();
    $antal = mysql_result($query,0);
    if($antal == 1) {
        $output = "<a href='visbillede.php?id=".$id2."&festid=".$festid."&add=0' name='add'>Fjern mig fra billedet</a> <br>";
  }else{
      $output = "<a href='visbillede.php?id=".$id2."&festid=".$festid."&add=1' name='add'>Jeg er på billedet</a> <br>";
  }
  return $output;
}

Og skal så kaldes med:

echo tjek_bruger_billede($data['id],$_GET['id'],$_GET['festid']);
Avatar billede kack Nybegynder
14. juli 2008 - 21:56 #2
Hmm nu skriver den:

Parse error: syntax error, unexpected ';' in /customers/kack.dk/kack.dk/httpd.www/Vaon/visbillede.php on line 31

Linie 31:
$query = mysql_query("SELECT COUNT(*) FROM vao_piccomment WHERE brugerid='" . $id1 . "' AND billedeid = '".$id2."' LIMIT 1") or die(mysql_error();

Er det mig der er alt for træt, eller hvad er der galt med den linje? :D
Avatar billede jakobdo Ekspert
14. juli 2008 - 21:58 #3
Der mangler en ) efter mysql_error() <---
Avatar billede kack Nybegynder
14. juli 2008 - 22:07 #4
Nu kan jeg da se siden igen. Men funktionen virker ikke helt.

Når man tilføjer sig til billedet, ændre "Jeg er på billedet" sig ikke til "Fjern mig fra billedet".
Avatar billede jakobdo Ekspert
14. juli 2008 - 22:13 #5
Kunne det ske din sql ikke er korrekt så ?

SELECT COUNT(*) FROM vao_piccomment WHERE brugerid='" . $id1 . "' AND billedeid = '".$id2."' LIMIT 1

Hvad er $id1 og $id2 ?
Avatar billede kack Nybegynder
14. juli 2008 - 22:18 #6
$_GET['id'] ændrede du til $id1
$data['id'] ændrede du til $id2

ellers også var det omvendt. Skal jeg så bare ændre dem tilbage?
Avatar billede jakobdo Ekspert
15. juli 2008 - 09:04 #7
Det synes jeg ikke.
Men hvad er $_GET['id'] og $data['id'] ?
Avatar billede kack Nybegynder
15. juli 2008 - 17:16 #8
$_GET['id'] er et nummer man får på billedet i en thumbnail, hvorefter det hentes i databasen.

$data['id'] er id'et på brugeren som udtrækkes fra databasen
Avatar billede jakobdo Ekspert
15. juli 2008 - 17:28 #9
Så test om din sql er korrekt igen.
Avatar billede kack Nybegynder
15. juli 2008 - 17:35 #10
Ehm hvad mener du? Er vidst ikke helt med?
Avatar billede jakobdo Ekspert
15. juli 2008 - 21:55 #11
I funktionen kan du f.eks. lave:
echo 'DEBUG : SELECT COUNT(*) FROM vao_piccomment WHERE brugerid="' . $id1 . '" AND billedeid = "'.$id2.'" LIMIT 1';

Og skyd så den sql af i phpmyadmin og se om den giver korrekt svar.
Avatar billede kack Nybegynder
16. juli 2008 - 23:22 #12
Er vidst stadig ikke helt med? :S Skal jeg skrive det der i phpmyadmin?

Eller skal jeg sætte det ind i min php fil?

Undskylder for besværet
Avatar billede jakobdo Ekspert
17. juli 2008 - 08:14 #13
Hvor meget styr har du på php ?
Avatar billede kack Nybegynder
17. juli 2008 - 16:38 #14
Jeg synes jeg har rimelig styr på det. Har vidst bare bevæget mig ind på noget her som jeg aldrig har prøvet før.
Avatar billede jakobdo Ekspert
17. juli 2008 - 16:47 #15
Har du hørt om phpmyadmin ?
Avatar billede kack Nybegynder
17. juli 2008 - 16:51 #16
ja. selvfølgelig :D

Men jeg bruger kun phpmyadmin til de mest basale ting. Sætte nye tabeller ind og så rette i de gamle.
Avatar billede jakobdo Ekspert
17. juli 2008 - 17:42 #17
Smid lige din nuværende funktion herind igen.
Avatar billede kack Nybegynder
17. juli 2008 - 18:02 #18
function tjek_bruger_billede($id1, $id2,$festid){
    $query2 = mysql_query("SELECT COUNT(*) FROM vao_piccomment WHERE brugerid='" . $id1 . "' AND billedeid = '".$id2."' LIMIT 1") or die(mysql_error());
    $antal = mysql_result($query2,0);
    if($antal == 1) {
        $output = "<a href='visbillede.php?id=".$id2."&festid=".$festid."&add=0' name='add'>Fjern mig fra billedet</a> <br>";
  }else{
      $output = "<a href='visbillede.php?id=".$id2."&festid=".$festid."&add=1' name='add'>Jeg er på billedet</a> <br>";
  }
  return $output;
}
Avatar billede jakobdo Ekspert
17. juli 2008 - 18:33 #19
Ret den så til:

function tjek_bruger_billede($id1, $id2,$festid){
echo '<h1>DEBUG</h1>';
$sql = "SELECT COUNT(*) FROM vao_piccomment WHERE brugerid='" . $id1 . "' AND billedeid = '".$id2."' LIMIT 1";
echo '<h5>'.$sql.'</h5>';
    $query2 = mysql_query($sql) or die(mysql_error());
    $antal = mysql_result($query2,0);
    if($antal == 1) {
        $output = "<a href='visbillede.php?id=".$id2."&festid=".$festid."&add=0' name='add'>Fjern mig fra billedet</a> <br>";
  }else{
      $output = "<a href='visbillede.php?id=".$id2."&festid=".$festid."&add=1' name='add'>Jeg er på billedet</a> <br>";
  }
  return $output;
}
Avatar billede kack Nybegynder
17. juli 2008 - 19:11 #20
Aha interessant =)

DEBUG
SELECT COUNT(*) FROM vao_piccomment WHERE brugerid='' AND billedeid = '306' LIMIT 1

så den mangler et brugerid. Det vil jeg lige kigge på. Vender lige tilbage
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester