Avatar billede ze-men Nybegynder
09. januar 2007 - 13:11 Der er 1 løsning

Regler for data fra MySQL til PHP

Hej eksperter...

Jeg er ved at lave et HOT-or-NOT system. Jeg har følgende tabeller:

fan_hotnot
fan_hotnot_votes

Jeg har i tabellen 'fan_hotnot' et billede og en billedtekst der skal vises på afstemningssiden. Men det billede der vises må ikke være uploadet af den der skal til at stemme (altså den session der er igang) og hvis brugeren i sessionen har stemt på billedet før, skal det heller ikke vises.

Jeg har derfor gfølgende felter:

fan_hotnot
[id]
[brugerid] - id på den bruger der har uploadet billedet
[brugernavn] - navn på den bruger der har uploadet billedet
[billednavn] - navnet på billedet i folderen på serveren
[billedtekst] - en fri billedtekst som brugeren kan skrive
[votes] - det samlede antal votes billedet har fået

fan_hotnot_votes
[id]
[hotnotid] - svarer til det id på det pågældende billede
[voter] - den person der stemte (tages fra sessionen)
[brugerid] - den person der stemte (tages fra sessionconnection)
[votes] - det antal point brugeren gav

Jeg skal nu have lavet en SQL-regel der siger at:

Billedet der vises ikke må være:
- uploadet af den online bruger (brugernavnet i sessionen)
- optræde i en post i tabellen 'fan_hotnot_votes', hvor det respektive billede fra 'fan_hotnot' og brugernavnet fra sessionen, er sammen.

Jeg håber det gav mening?!?

Her er lidt kode:
<?php require_once('../Connections/tvduno.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "voting")) {
  $insertSQL = sprintf("INSERT INTO fan_hotnot_votes (hotnotid, brugerid, votes) VALUES (%s, %s, %s)",
                      GetSQLValueString($_POST['hidden_id'], "text"),
                      GetSQLValueString($_POST['voted'], "text"),
                      GetSQLValueString($_POST['votes'], "text"));

  mysql_select_db($database_tvduno, $tvduno);
  $Result1 = mysql_query($insertSQL, $tvduno) or die(mysql_error());
}

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "voting")) {
  $updateSQL = sprintf("UPDATE fan_hotnot SET votes=%s WHERE id=%s",
                      GetSQLValueString($_POST['votes'], "text"),
                      GetSQLValueString($_POST['hidden_id'], "int"));

  mysql_select_db($database_tvduno, $tvduno);
  $Result1 = mysql_query($updateSQL, $tvduno) or die(mysql_error());
}
session_start(); ?>
<?php
$colname_rsBruger = "1";
if (isset($_SESSION['brugernavn'])) {
  $colname_rsBruger = (get_magic_quotes_gpc()) ? $_SESSION['brugernavn'] : addslashes($_SESSION['brugernavn']);
}
mysql_select_db($database_tvduno, $tvduno);
$query_rsBruger = sprintf("SELECT * FROM fan_brugere WHERE brugernavn = '%s'", $colname_rsBruger);
$rsBruger = mysql_query($query_rsBruger, $tvduno) or die(mysql_error());
$row_rsBruger = mysql_fetch_assoc($rsBruger);
$totalRows_rsBruger = mysql_num_rows($rsBruger);

$colname_rsBillede = "1";
if (isset($_POST['voted'])) {
  $colname_rsBillede = (get_magic_quotes_gpc()) ? $_POST['voted'] : addslashes($_POST['voted']);
}
mysql_select_db($database_tvduno, $tvduno);
$query_rsBillede = sprintf("SELECT * FROM fan_hotnot WHERE id <> %s ORDER BY id ASC", $colname_rsBillede);
$rsBillede = mysql_query($query_rsBillede, $tvduno) or die(mysql_error());
$row_rsBillede = mysql_fetch_assoc($rsBillede);
$totalRows_rsBillede = mysql_num_rows($rsBillede);

$colname_rsVoted = "1";
if (isset($_SESSION['brugernavn'])) {
  $colname_rsVoted = (get_magic_quotes_gpc()) ? $_SESSION['brugernavn'] : addslashes($_SESSION['brugernavn']);
}
mysql_select_db($database_tvduno, $tvduno);
$query_rsVoted = sprintf("SELECT * FROM fan_hotnot_votes WHERE voter <> '%s'", $colname_rsVoted);
$rsVoted = mysql_query($query_rsVoted, $tvduno) or die(mysql_error());
$row_rsVoted = mysql_fetch_assoc($rsVoted);
$totalRows_rsVoted = mysql_num_rows($rsVoted);
?>
<?php require_once('../Connections/tvduno.php'); ?>
Avatar billede ze-men Nybegynder
27. maj 2008 - 11:42 #1
afsluttet
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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