הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   תיקון קוד שלי (https://hosts.co.il/forums/showthread.php?t=82982)

morsrh 05-06-10 13:04

תיקון קוד שלי
 
אוקי אז ניסיתי פה לעשות סקר אבל ללא הצלחה..

אז זה הסקר :

PHP קוד:

<?php

/**
 * @author iwnfym
 * @copyright 2010
 */

$connect mysql_connect("localhost""mrmor_avoda""Q0apvgOY") or die(mysql_error()); 
mysql_select_db("mrmor_avoda"$connect) or die(mysql_error());

$ip=$_SERVER['REMOTE_ADDR'];
$male=$_POST["male"];
$female=$_POST["female"];
$time=time();

$cheackavabile1 mysql_query("SELECT `ip` FROM `seker` WHERE `ip`=('$ip')");
  
$avabile1 mysql_num_rows($cheackavabile1);
  
  if(
$avabile1 != 0)
  {
    
$mysqltimemysql_query("SELECT `date` FROM `seker` WHERE `ip`=('$ip')");
    if((
$time-$mysqltime)>60)
    {
        
mysql_query("UPDATE `seker` SET `date` = ('$time') WHERE `ip` = ('$ip') ");
        if(isset(
$male))
      {
        
$mysqlvotemysql_query("SELECT `option1` FROM `seker`");
        
$mysqlvote++;
        
mysql_query("UPDATE `seker` SET `option1` = ('$mysqlvote')");
      }else if(isset(
$female))
      {
        
$mysqlvotemysql_query("SELECT `option2` FROM `seker`");
        
$mysqlvote++;
        
mysql_query("UPDATE `seker` SET `option2` = ('$mysqlvote')");
      }
    }else 
    {
     echo 
"Try to vote more 1 minute.";   
    }
  }else 
  {
    if(isset(
$male))
      {
        
mysql_query=("UPDATE `seker` SET `option1` = `option1` + 1");
      }else if(isset(
$female))
      {
        
$mysqlvotemysql_query("SELECT `option2` FROM `seker`");
        
$mysqlvote++;
        
mysql_query("UPDATE `seker` SET `option2` = ('$mysqlvote')");
      }
  }
  echo 
"Vote Rates are :<br/>";
$query1 mysql_query("select `option1` from `seker`");
$rows1 mysql_num_rows($query1);
echo 
"Males :",$rows1;
$query2 mysql_query("select `option2` from `seker`");
$rows2 mysql_num_rows($query2);
echo 
"<br/>Females :",$rows2;

?>

טבלאו וכל השדות :
seker = טבלה ראשית
ip = שדה איפי.
option 1 = שדה של בחירת אופציה ראשונה .
option 2 = שדה של בחירת אופציה שניה .

מה שזה אמור לעשות זה לבדוק אם קיים איפי כבר במסד כדי לבדוק אם הוא הצביע כבר , אם כן אז הוא יבדוק אם עברה דקה מההצבע האחרונה ואם כן אז הוא יוציא את הערך של כמה שהצביעו בחירמה מס' 1 , יוסיף לו 1 ואז יחזיר למסד ולחלופין גם לאופציה מס 2 .

אם הוא לא הצביע כבר אז הוא פשוט מוציא את הערך מהמסד מוסיף 1 ומחזיר לכל אופציה ולחלופין.

הבעיה היא שזה לא עובד , מישהו יכול להביא לי תיקון?

ד"א אם מישהו יכול להביא לי אולי מערכת סקרים מוכנת שאני יקח משם את הרעיון ולראות איך זה בכלל בנוי וכו' .

תודה רבה , אני כבר תקוע עם זה יומיים.

Dekken 05-06-10 15:37

אתה מוזמן לנסות את הקוד הבא:

PHP קוד:

<?php
$connect 
mysql_connect("localhost""mrmor_avoda""Q0apvgOY") or die(mysql_error()); 
mysql_select_db("mrmor_avoda"$connect) or die(mysql_error());

$ip=$_SERVER['REMOTE_ADDR'];

$male=$_POST["male"];
$female=$_POST["female"];

if(
mysql_num_rows(mysql_query("SELECT `ip` FROM `seker` WHERE `ip`='"$ip ."'")) != 0)
{
    
$mysqltime mysql_fetch_assoc(mysql_query("SELECT `date` FROM `seker` WHERE `ip`= '"$ip ."')"));
    if((
time()-$mysqltime['date']) > 60)
    {
        if(isset(
$male))
            
mysql_query("UPDATE `seker` SET `date` = '".time()."', `option1` = `option1` + 1 WHERE `ip` = '"$ip ."'");
        elseif(isset(
$female))
            
mysql_query("UPDATE `seker` SET `date` = '".time()."', `option2` = `option2` + 1 WHERE `ip` = '"$ip ."'");
    }
    else
        echo 
"Try to vote again in 1 minute.";   
}
else 
{
    if(isset(
$male))
        
mysql_query("UPDATE `seker` SET `option1` = `option1` + 1");
    elseif(isset(
$female))
        
mysql_query("UPDATE `seker` SET `option2` = `option2` + 1");
}
echo 
"Vote Rates are :<br>";
$Votes mysql_fetch_assoc(mysql_query("SELECT `option1`,`option2` FROM `seker`"));
echo 
"Male: {$Votes['option1']}<br>";
echo 
"Female: {$Votes['option2']}";
?>

לא בטוח עד כמה הוא עובד, לא יצא לי לבדוק.:-)

morsrh 05-06-10 16:05

משום מה זה לא מכניס לטבלה את האיפי ואת הזמן של ההצבעה וזה גורם להצבעה מרובה .
תודה רבה .

Dekken 05-06-10 16:22

כי כל מה שאתה עושה זה בודק:
PHP קוד:

if(mysql_num_rows(mysql_query("SELECT `ip` FROM `seker` WHERE `ip`='"$ip ."'")) != 0

האם האייפי נמצא במסד? אם לא, אתה נותן לו להצביע כמה שאתה רוצה.
אם תשים לב הוא מגיע לפה:
PHP קוד:

else 
{
    if(isset(
$male))
        
mysql_query("UPDATE `seker` SET `option1` = `option1` + 1");
    elseif(isset(
$female))
        
mysql_query("UPDATE `seker` SET `option2` = `option2` + 1");


כל מה שהוא עושה זה מעלה את ההצבעות, בלי להכניס את האייפי למסד.
אתה צריך לעשות שעל כל הצבעה הוא יכניס את האייפי.

ככה:

PHP קוד:

<?php
$connect 
mysql_connect("localhost""mrmor_avoda""Q0apvgOY") or die(mysql_error()); 
mysql_select_db("mrmor_avoda"$connect) or die(mysql_error());

$ip=$_SERVER['REMOTE_ADDR'];

$male=$_POST["male"];
$female=$_POST["female"];

if(
mysql_num_rows(mysql_query("SELECT `ip` FROM `seker` WHERE `ip`='"$ip ."'")) != 0)
{
    
$mysqltime mysql_fetch_assoc(mysql_query("SELECT `date` FROM `seker` WHERE `ip`= '"$ip ."')"));
    if((
time()-$mysqltime['date']) > 60)
    {
        if(isset(
$male))
            
mysql_query("UPDATE `seker` SET `date` = '".time()."', `option1` = `option1` + 1 WHERE `ip` = '"$ip ."'");
        elseif(isset(
$female))
            
mysql_query("UPDATE `seker` SET `date` = '".time()."', `option2` = `option2` + 1 WHERE `ip` = '"$ip ."'");
    }
    else
        echo 
"Try to vote again in 1 minute.";   
}
else 
{
    if(isset(
$male))
    {
        
mysql_query("UPDATE `seker` SET `option1` = `option1` + 1");
        
mysql_query("INSERT INTO `seker` (`ip`,`date`) VALUES ('".$ip."','".time()."')");
    }
    elseif(isset(
$female))
    {
        
mysql_query("UPDATE `seker` SET `option2` = `option2` + 1");
        
mysql_query("INSERT INTO `seker` (`ip`,`date`) VALUES ('".$ip."','".time()."')");
    }
}
echo 
"Vote Rates are :<br>";
$Votes mysql_fetch_assoc(mysql_query("SELECT `option1`,`option2` FROM `seker`"));
echo 
"Male: {$Votes['option1']}<br>";
echo 
"Female: {$Votes['option2']}";
?>

אמור לעבוד.

morsrh 05-06-10 16:32

ממש תודה על העזרה , אני רק שבוע וחצי בעסק.
ד"א אחרי ההצבעה הראשונה זה לא נותן להצביע עוד פעם אחרי דקה , וזה גם נותן שגיאה :

PHP קוד:

Warningmysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/XXXX/domains/mrmor.beastserv.com/public_html/vote.php on line 12 

זה קורה אחרי שההצבעה הראשונה נקלטה.
ד"א הכל עובד חלק חוץ מהקטע הזה של השגיאה ושלא נותן להצביע שוב אחרי השגיאה.
ושוב , תודה.

Dekken 05-06-10 17:52

PHP קוד:

<?php
$connect 
mysql_connect("localhost""mrmor_avoda""Q0apvgOY") or die(mysql_error()); 
mysql_select_db("mrmor_avoda"$connect) or die(mysql_error());

$ip=$_SERVER['REMOTE_ADDR'];

$male=$_POST["male"];
$female=$_POST["female"];

if(
mysql_num_rows(mysql_query("SELECT `ip` FROM `seker` WHERE `ip`='"$ip ."'")) != 0)
{
    
$mysqltime mysql_fetch_assoc(mysql_query("SELECT `date` FROM `seker` WHERE `ip`= '"$ip ."'"));
    if((
time()-$mysqltime['date']) > 60)
    {
        if(isset(
$male))
            
mysql_query("UPDATE `seker` SET `date` = '".time()."', `option1` = `option1` + 1 WHERE `ip` = '"$ip ."'");
        elseif(isset(
$female))
            
mysql_query("UPDATE `seker` SET `date` = '".time()."', `option2` = `option2` + 1 WHERE `ip` = '"$ip ."'");
    }
    else
        echo 
"Try to vote again in 1 minute.";   
}
else 
{
    if(isset(
$male))
    {
        
mysql_query("UPDATE `seker` SET `option1` = `option1` + 1");
        
mysql_query("INSERT INTO `seker` (`ip`,`date`) VALUES ('".$ip."','".time()."')");
    }
    elseif(isset(
$female))
    {
        
mysql_query("UPDATE `seker` SET `option2` = `option2` + 1");
        
mysql_query("INSERT INTO `seker` (`ip`,`date`) VALUES ('".$ip."','".time()."')");
    }
}
echo 
"Vote Rates are :<br>";
$Votes mysql_fetch_assoc(mysql_query("SELECT `option1`,`option2` FROM `seker`"));
echo 
"Male: {$Votes['option1']}<br>";
echo 
"Female: {$Votes['option2']}";
?>

זה הקוד שאמור לעבוד..
אם תשים לב בשורה הזאתי:

קוד:

    $mysqltime = mysql_fetch_assoc(mysql_query("SELECT `date` FROM `seker` WHERE `ip`= '". $ip ."')"));
יש סוגר שעושה בעיות :P

morsrh 05-06-10 18:09

עובד מעולה !
תודה רבה !


כל הזמנים הם GMT +2. הזמן כעת הוא 09:25.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ