0

我有一个 mySQL 数据库,它在 index.php 的表中被查询和显示。我有一个名为的文件,它处理从查询中输出的每个表中up.php的单击。我需要有一个变量,我可以从查询的每个单独行中的字段中提取该变量,以便在单击时将变量传递给要操作的 up.php 文件。现在变量刚刚被覆盖,等于查询到的最后一行的值,并且数据库经常更新,所以我不能只为每一行设置一个,它必须是动态的。<a>index.php<a>

这是 index.php 文件

<?php
$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC");
//query for even numbered rows where mes_id = even
$sql2=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 0 ORDER BY mes_id DESC");
//query for odd numbered rows where mes_id = even
$sql3=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 1 ORDER BY mes_id DESC");

while(($row = mysql_fetch_array($sql))AND($row2 = mysql_fetch_array($sql2))AND($row3 = mysql_fetch_array($sql3)) ){
$id = $row['id'];
$title = $row['title'];
$content = $row['content'];
$category = $row['category'];
$podcast = $row['podcast'];
$datetime = $row['datetime'];


$message1=$row2['msg'];

//******* this is the variable from the query that needs to be held and not overwritten ********
$mes_id1=$row2['mes_id'];

$totalvotes1=$row2['totalvotes'];

$message2=$row3['msg'];

//******* this is the second variable from the query that needs to also be held and not overwritten *******
$mes_id2=$row3['mes_id'];

$totalvotes2=$row3['totalvotes'];

//attempting to implement this array...? not sure how to use it correctly...
$valuess[]=$row2['mes_id'];

//******* I was trying to use these session variables in up.php but they were being overwritten in the query ********
$_SESSION['message1'] = $row2['msg'];
$_SESSION['message2'] = $row3['msg'];
$_SESSION['mes_id1'] = $row2['mes_id'];
$_SESSION['mes_id2'] = $row3['mes_id'];
$_SESSION['totalvotes1'] = $row2['totalvotes'];
$_SESSION['totalvotes2'] = $row3['totalvotes'];
$_SESSION['valuess'] = $valuess[1];
?>

<?php
// variable used to display file name of $podcast without the extension
$noext = $podcast;
$echodub = rawurlencode($podcast);
// code to display $noext without the file extension
$info = pathinfo($noext);
$noext_name =  basename($noext,'.'.$info['extension']);
?>

<!--  ********* echo php variables in html format, in a table with the class of "podcast" -->
<table class="podcast" border="1">
<tr>
    <td class="title">
     <?php echo $title; ?>
    </td>
    <td class="timeandcategory">
     <?php echo $datetime; ?>  <br>
     <?php echo $category; ?>
     <?php echo $_SESSION['mes_id1']; ?>
     <?php echo $_SESSION['mes_id2']; ?>
     <?php echo session_id(); ?>
    </td>
</tr>
<tr>
    <td class="content">
     <?php echo $content; ?>
    </td>
    <td class="myfblike">


 <span class='st_fblike_large' displayText='Facebook Like'></span><br>
     <span class='st_facebook_large' displayText='Facebook'></span><br>
     <span class='st_twitterfollow_large' displayText='Twitter Follow'></span><br>
     <span class='st_pinterest_large' displayText='Pinterest'></span><br>
     <span class='st_email_large' displayText='Email'></span><br>
     <span class='st_sharethis_large' displayText='ShareThis'></span><br>

    </td>

</tr>
<tr>
    <td class="audio">
     <!--echo the audio file -->
      <ul class="playlist">
       <li><a href="<?php echo"uploads/$podcast"; ?>"><?php echo"$noext_name"; ?></a></li>

      </ul>

    </td>
    <td>

     <!-- ********** this is the cell in the table where the veriables need to be held and sent to up.php ******** -->

<div id="main">
<div id="left">
<span class='up'><a href="up.php" class="" id="<?php echo $valuess[1]; ?>" name="up"><img src="up.png" alt="Down" /></a></span><br />
<?php echo $_SESSION['totalvotes1'] ?><br />
</div>
<div id="message">
<?php echo $_SESSION['message1'] ?>
</div>
<div class="clearfix"></div>
</div>
//********the down.php file is the same as the up.php file... just with opposite variables... im not concerned with this yet until i get the variables to display correctly in up.php
<div id="main">
<div id="left">
<br />
<?php echo $_SESSION['totalvotes2'] ?><br />
<span class='down'><a href="down.php" class="" id="<?php echo $_SESSION['mes_id2']; ?>" name="down"><img src="down.png" alt="Down" /></a></span>
</div>
<div id="message">
<?php echo $_SESSION['message2'] ?>
</div>
<div class="clearfix"></div>
</div>

    </td>
</tr>

</table>


<br>
<?php
 }
?>

这是 up.php 文件

up.php

<?php
session_start();
include("config.php");

$message1 = $_SESSION['message1'];
$message2 = $_SESSION['message2'];
$mes_id1 = $_SESSION['mes_id1'];
$mes_id2 = $_SESSION['mes_id2'];
$totalvotes1 = $_SESSION['totalvotes1'];
$totalvotes2 = $_SESSION['totalvotes2'];
$ip=$_SERVER['REMOTE_ADDR'];

$ip_sql=mysql_query("select ip_add from Voting_IP where mes_id_fk='$mes_id1' and ip_add='$ip'");
$count=mysql_num_rows($ip_sql);
$ip_sql2=mysql_query("select ip_add from Voting_IP where mes_id_fk='$mes_id2' and ip_add='$ip'");
$count2=mysql_num_rows($ip_sql2);
//********* testing if these variables are being passed.....
echo $mes_id1;
echo $mes_id2;
$valuess[0] = $_SESSION['valuess'];
echo $valuess[0];
//********
// if the user has already voted, execute script
if($count==0 && $count2!=0)
{
$sql = "update Messages set totalvotes=totalvotes+1  where mes_id='$mes_id1'";
mysql_query( $sql);
$sql_in = "insert into Voting_IP (mes_id_fk,ip_add) values ('$mes_id1','$ip')";
mysql_query( $sql_in);
$sql = "update Messages set totalvotes=totalvotes-1  where mes_id='$mes_id2'";
mysql_query( $sql);
$sql_in = "DELETE FROM Voting_IP WHERE mes_id_fk='$mes_id2'";
mysql_query( $sql_in);
// if the user has not voted, execute script
}
else if($count==0 && count2==0)
{
$sql = "update Messages set totalvotes=totalvotes+1  where mes_id='$mes_id1'";
mysql_query( $sql);
$sql_in = "insert into Voting_IP (mes_id_fk,ip_add) values ('$mes_id1','$ip')";
mysql_query( $sql_in);
echo $mes_id1;
echo $mes_id2;
}
?>
4

1 回答 1

0

你可以这样试试。希望这会对你有所帮助

<?php
$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC");
//query for even numbered rows where mes_id = even
$sql2=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 0 ORDER BY mes_id DESC");
//query for odd numbered rows where mes_id = even
$sql3=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 1 ORDER BY mes_id DESC");


$count_variable = 0;

while(($row = mysql_fetch_array($sql))AND($row2 = mysql_fetch_array($sql2))AND($row3 = mysql_fetch_array($sql3)) ){
$id = $row['id'];
$title = $row['title'];
$content = $row['content'];
$category = $row['category'];
$podcast = $row['podcast'];
$datetime = $row['datetime'];


$message1=$row2['msg'];

//******* this is the variable from the query that needs to be held and not overwritten ********
$mes_id1=$row2['mes_id'];

$totalvotes1=$row2['totalvotes'];

$message2=$row3['msg'];

//******* this is the second variable from the query that needs to also be held and not overwritten *******
$mes_id2=$row3['mes_id'];

$totalvotes2=$row3['totalvotes'];

//attempting to implement this array...? not sure how to use it correctly...
$valuess[]=$row2['mes_id'];

//******* I was trying to use these session variables in up.php but they were being overwritten in the query ********
$_SESSION['message1'][$count_variable] = $row2['msg'];
$_SESSION['message2'][$count_variable] = $row3['msg'];
$_SESSION['mes_id1'][$count_variable] = $row2['mes_id'];
$_SESSION['mes_id2'][$count_variable] = $row3['mes_id'];
$_SESSION['totalvotes1'][$count_variable] = $row2['totalvotes'];
$_SESSION['totalvotes2'][$count_variable] = $row3['totalvotes'];
$_SESSION['valuess'][$count_variable] = $valuess[1];

$count_variable++;
?>

<?php
// variable used to display file name of $podcast without the extension
$noext = $podcast;
$echodub = rawurlencode($podcast);
// code to display $noext without the file extension
$info = pathinfo($noext);
$noext_name =  basename($noext,'.'.$info['extension']);
?>

这将返回一个会话数组,如下所示:

数组('message1':{0:'mnhj',1:'jhf'},'message2':{0:'jhg',1:'jhgjh'});ETC...

于 2013-02-16T07:50:45.983 回答