webForumDet fria alternativet

fel med php och mySQL

4 svar · 312 visningar · startad av jake

jakeMedlem sedan sep. 2001649 inlägg
#1

hej,
här har jag ett php-script som ska godkänna bilder respektive texter från en mySQL databas till en sida.
Det konstiga är att det är bara godkänn bild som fungerar...
När man ska godkänna en text händer ingenting.
Däremot om man går in databasen stories och ändrar
manuellt public från 0 till 1 så fungerar det som det ska men inte med följande kod.
Hittar ni något fel i delen
// Neka eller Acceptera historien?

<?
// Admin file..
include_once('../common_stuff.php');

// Neka eller Acceptera bilden?
if ($_GET['deny']) {
	$deny = $_GET['deny']; 
	$SQL="DELETE FROM movies WHERE id='$deny'";
	mysql_query($SQL);
}
if ($_GET['accept']) {
	$accept = $_GET['accept']; 
	$SQL="UPDATE movies SET public='1' WHERE id='$accept'";
	mysql_query($SQL);
}

// Neka eller Acceptera historien?
if ($_GET['denystorie']) {
	$deny = $_GET['deny']; 
	$SQL="DELETE FROM stories WHERE id='$denystorie'";
	mysql_query($SQL);
}
if ($_GET['acceptstorie']) {
	$accept = $_GET['accept']; 
	$SQL="UPDATE stories SET public='1' WHERE id='$acceptstorie'";
	mysql_query($SQL);
}

// Anropa funktionen getNotValidatedObjects(), lokaliserad i common_stuff.php
// Den returnerar $objects, en array med alla objekt som inte är vaiderade.
$objects = getNotValidatedObjectsPictures();
$objects1 = getNotValidatedObjectsStories();
// Ritar tabell
echo 'Listar icke godkända bilder<br /><br />';
echo '<table><tr>';
	
// Loopa igenom $objects
for ($x=0; $x<sizeof($objects);$x++) {
	$filename     = $objects[$x]['filename'];
	$id	      = $objects[$x]['id'];
	$description  = $objects[$x]['description'];
	
	$count++;
	$count = $count % 2 ;
              		
	if ($count=='1') {
		$COLOR='#BBAE7A';
	} else {
		$COLOR='#D4C68E';
	}

	if ($_GET['view']=='0' OR $view=='') {
		echo '
		<td width="150" bgcolor="'.$COLOR.'">'.$filename.'</td><td bgcolor="'.$COLOR.'">[<a href="'.$me.'?view=1">visa</a>][<a href="'.$me.'?deny='.$id.'">neka</a>][<a href="'.$me.'?accept='.$id.'">acceptera</a>]</td>
		</tr>
		';
	}
	if ($_GET['view']=='1') {
		echo '
		<td width="150" bgcolor="'.$COLOR.'">'.$filename.'</td><td bgcolor="'.$COLOR.'">[<a href="'.$me.'?view=0">visa</a>][<a href="'.$me.'?deny='.$id.'">neka</a>][<a href="'.$me.'?accept='.$id.'">acceptera</a>]</td>
		</tr>
		<tr><td><img src="../userpics/'.$filename.'"></td><td valign="top">'.$description.'</td></tr>
		';
	}
}
echo '</table>';

// Ritar tabell
echo 'Listar icke godkända historier<br /><br />';
echo '<table><tr>';
	
// Loopa igenom $objects1
for ($x=0; $x<sizeof($objects1);$x++) {
	$filename     = $objects1[$x]['topic'];
	$id	      = $objects1[$x]['id'];
	$text         = $objects1[$x]['text'];
	
	$count++;
	$count = $count % 2 ;
              		
	if ($count=='1') {
		$COLOR='#BBAE7A';
	} else {
		$COLOR='#D4C68E';
	}

	if ($_GET['view']=='0' OR $view=='') {
		echo '
		<td width="150" bgcolor="'.$COLOR.'">'.$filename.'</td><td bgcolor="'.$COLOR.'">[<a href="'.$me.'?view=1">visa</a>][<a href="'.$me.'?denystorie='.$id.'">neka</a>][<a href="'.$me.'?acceptstorie='.$id.'">acceptera</a>]</td>
		</tr>
		';
	}
	if ($_GET['view']=='1') {
		echo '
		<td width="150" bgcolor="'.$COLOR.'">'.$filename.'</td><td bgcolor="'.$COLOR.'">[<a href="'.$me.'?view=0">visa</a>][<a href="'.$me.'?denystorie='.$id.'">neka</a>][<a href="'.$me.'?acceptstorie='.$id.'">acceptera</a>]</td>
		</tr>
		<tr><td>'.$text.'</td></tr>
		';
	}
}
echo '</table>';

?>

edit: :r kanske skulle vara i sql forumet istället... flytta den gärna....

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Lägg till testutskrifter och felhantering så att du ser vad som händer

if ($_GET['deny']) {
 $deny = $_GET['deny']; 
  echo $sql;
 $SQL="DELETE FROM movies WHERE id='$deny'";
 mysql_query($SQL) or die("Error " . mysql_error() . " in " . $sql);
if ($_GET['denystorie']) {
	$deny = $_GET['deny']; 
	$SQL="DELETE FROM stories WHERE id='$denystorie'";
	mysql_query($SQL);

ser inte bra ut då $denystorie aldrig får något värde. Om id är numeriskt så skall du inte ange ' omkring sökvärdet men däremot så skall du ha en kontroll om det verkligen är ett giltigt värde.

jakeMedlem sedan sep. 2001649 inlägg
#3

även om jag ersätter

mysql_query;

med

mysql_query($SQL) or die("Error " . mysql_error() . " in " . $sql);

på rad 20 så får jag inget felmeddelande, det är bara det att det inte ändras från 0 till 1 i databasen...

Hur ska man tilldela denystorie ett värde?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Får du överhuvudtaget någon utskrift av SQL-satsen när du gör deny?

Hur ska man tilldela denystorie ett värde?

if ($_GET['denystorie']) {
	$denystorie = $_GET['denystorie'];
jakeMedlem sedan sep. 2001649 inlägg
#5

LarsG skrev:

Hur ska man tilldela denystorie ett värde?


	$denystorie = $_GET['denystorie'];

aha, det hjälpte. Tack för hjälpen

258 ms totalt · 3 externa anrop · v20260731065814-full.30151723
123 ms — hämta forumlista (db)
127 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)