Отново проблем с триене на песен

DangerM

Registered
Сега забелязах проблема трие песен но последната качена независимо на коя натиснеш да триеш .
това е страницата с мойте качени файлове показва на всеки потребител какво е качил.
PHP:
<? 
if (eregi("modules/total-songs.php", $_SERVER['SCRIPT_NAME'])) { die ("Access Denied"); }
?><b>
<?php
include("settings.php");
$id = $_SESSION['username'];
$our = mysql_query("SELECT count(id) as total FROM songs Where author='$id'"); 
while($raw=mysql_fetch_array($our)){ 
$total2=$raw['total'];
echo $total2; 
}
?></b>

това е deletе.php
PHP:
<?
include"settings.php";
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
if (! isset($user)) 
{ 
   die('Не сте логнат! <br /><a href="index.php">Върни се в началото</a>'); 
} 
{ 
$id = $_GET['id']; 
if ($id) { 
$sql = "DELETE FROM `songs` WHERE  author='$id' LIMIT 1"; 
mysql_query($sql) or die (mysql_error()); 
echo "<meta http-equiv='refresh' content='2; url=myups.php'>Песента е изтрит."; 
} 
else { 
echo "Избери песен за триене."; 
}
} 
?>

Някой може ли да помогне да трие песента която искам а не последната качена :roll:
 
За к'во ти е тоя "LIMIT 1" в заявката? Махай го. И ти сигурен ли си, че подавш id-то на песента в delete.php?

Трябва да е WHERE id='$id' AND author='$user'

PHP:
<?
include"settings.php";
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
if (! isset($user)) 
{ 
   die('Не сте логнат! <br /><a href="index.php">Върни се в началото</a>'); 
} 
{ 
$id = $_GET['id']; 
if ($id) { 
$sql = "DELETE FROM `songs` WHERE id='$id' AND author='$user'"; 
mysql_query($sql) or die (mysql_error()); 
echo "<meta http-equiv='refresh' content='2; url=myups.php'>Песента е изтрит."; 
} 
else { 
echo "Избери песен за триене."; 
}
} 
?>
 
Пробвал съм така не става не трие и една песен а ако оставиш само author = id трие сички качени песни от потребителя
 
[sql]CREATE TABLE IF NOT EXISTS `songs` (
`id` int(4) NOT NULL auto_increment,
`name` text NOT NULL,
`author` varchar(255) NOT NULL,
`link` text NOT NULL,
`views` int(10) unsigned NOT NULL,
`downs` text NOT NULL,
`kategoria` varchar(255) character set cp1251 collate cp1251_bulgarian_ci NOT NULL,
`date` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2341 ;[/sql]
 
За да не трие нищо, значи някоя променлива не се присвоява. Съмнявам се, че в това ще е проблема, но за всеки случай дефинирах сесията още един път. Пробвай току виж мине номера.

PHP:
<?
include"settings.php";
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
if (! isset($user)) 
{ 
   die('Не сте логнат! <br /><a href="index.php">Върни се в началото</a>'); 
} 
{ 
$id = $_GET['id']; 
if (isset($id) AND is_numeric($id)) {
$potrebitelq = $_SESSION['username'];
$sql = mysql_query("DELETE FROM `songs` WHERE `id`='$id' AND `author`='$potrebitelq'"); 
echo "<meta http-equiv='refresh' content='2; url=myups.php'>Песента е изтрита."; 
} 
else { 
echo "Избери песен за триене."; 
}
} 
?>
 
<?
include"settings.php";
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
if (! isset($user))
{
die('Не сте логнат! <br /><a href="index.php">Върни се в началото</a>');
}
{
$id = (int)$_GET['id'];
if ($id>0) {
$sql = "DELETE FROM `songs` WHERE `id`='$id'";
mysql_query($sql) or die (mysql_error());
echo "<meta http-equiv='refresh' content='2; url=myups.php'>Песента е изтрит.";
}
else {
echo "Избери песен за триене.";
}
}
?>
 
<?
include"settings.php";
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
if (! isset($user))
{
die('Не сте логнат! <br /><a href="index.php">Върни се в началото</a>');
}
else {
$id = (int)$_GET['id'];
if ($id>0) {
$sql = "DELETE FROM `songs` WHERE `id`='$id'";
mysql_query($sql) or die (mysql_error());
echo "<meta http-equiv='refresh' content='2; url=myups.php'>Песента е изтрит.";
}
else {
echo "Избери песен за триене.";
}
}
?>
Упс, забравил съм да сложа else... Също имаш ли идея, че в кода ти има ненужни неща като:
Код:
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
:roll:
 
<?
include"settings.php";
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
if (! isset($user))
{
die('Не сте логнат! <br /><a href="index.php">Върни се в началото</a>');
}
else{
$id = $_GET['id'];
if (isset($id) AND is_numeric($id)) {
$potrebitelq = $_SESSION['username'];
$sql = mysql_query("DELETE FROM `songs` WHERE `id`='$id' AND `author`='$potrebitelq'");
echo "<meta http-equiv='refresh' content='2; url=myups.php'>Песента е изтрита.";
}
else {
echo "Избери песен за триене.";
}
}
?>
 
PHP:
<?
include"settings.php";
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
if (!isset($user)) 
{ 
   die('Не сте логнат! <br /><a href="index.php">Върни се в началото</a>'); 
} 
else { 
$id = $_GET['id']; 
if (isset($id) AND is_numeric($id)) {
$potrebitelq = $_SESSION['username'];
$sql = mysql_query("DELETE FROM `songs` WHERE `id`='$id' AND `author`='$potrebitelq'"); 
echo "<meta http-equiv='refresh' content='2; url=myups.php'>Песента е изтрита."; 
} 
else { 
echo "Избери песен за триене."; 
}
} 
?>
 
Избери песен за триене. отново

marian
Код:
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
има в началото

Код:
include"settings.php";
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
if (! isset($user))
 
В линка имаш ли delete?id=5?
Този ред, който сym дал сe изпълнява без да прави нищо т.е. го махни.
 
Ако го сложа под $id = $_GET['id'];
Искарва името на потребителя а ако е под
echo "<meta http-equiv='refresh' content='2; url=myups.php'>Песента е изтрита."; или над него не се променя нищо
 
DangerM каза:
Ако го сложа под $id = $_GET['id'];
Искарва името на потребителя а ако е под
echo "<meta http-equiv='refresh' content='2; url=myups.php'>Песента е изтрита."; или над него не се променя нищо

А защо id е името на потребителя? id-то трябва да е номера на песента. Трябва да го подаваш така:

delete.php?id=ид-to na pesenta

Пример:
delete.php?id=2
delete.php?id=5
delete.php?id=6

Дай ни файла, в който се намира линка за изтриване.
 
Аз в първия пост съм обаркал файла ето го
PHP:
<font size="3">Вие сте качили:</font><font color="#00bff6" size="4"><? include("modules/totalupload/index.php"); ?> </font>Песни</a>
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
    <td width="10%" class="border2" align="center"><b style="font-size: 11px;">Заглавие</b></td>
    <td width="2%" class="border2" align="center"><b style="font-size: 11px;">Изтри</b></td>
  </tr>
<?php
include("settings.php");
$id = $_SESSION['username'];
$query = mysql_query("SELECT * FROM songs WHERE author='$id' order by views DESC LIMIT 100");
while ($row = mysql_fetch_array($query))
{
echo '  <tr>
    <td class="border2"><a href="index.php?m=play&id='.$row['id'].'">'.$row['name'].'</a></td>
    <td class="border2" align="center"><a href="myups.php?m=deletsong&ext=delete&id='.$id.'"><font color="red" size="2"> [x]</font></a></td>
</a></tr>';
}
?>

не знам защо е с името
 

Back
Горе