Avatar billede xeox Nybegynder
13. december 2005 - 12:16 Der er 19 kommentarer og
1 løsning

hjælp til slet

Hej eksperter.

Jeg har lavet følgende kode:

                        <?php
if ($slet) {
$id = $_GET['id'];
$slet = $_GET['slet'];
    unlink("$slet");
    $fil = str_replace("thumb_", "", $slet);
    unlink("$fil");
    mysql_query("DELETE FROM cms_gall_pics WHERE id='$id'");
header("Location: galleri_redi_slet.php?id=$id");
    exit;
}
require("db.php");
$id = mysql_real_escape_string($_GET['id']);
$query = mysql_query ("SELECT * FROM cms_gall_pics INNER JOIN cms_gall_gall ON cms_gall_gall.id = cms_gall_pics.galleri WHERE cms_gall_gall.id =$id");
if(mysql_num_rows($query)>0)
{
    $row = mysql_fetch_assoc($query);
    $sti = $row['sti'];
    $url = $row['url'];
    $fil = str_replace("thumb_", "", $url);
?>
                        <tr class="style_link">
                          <td width="5%"><a href="?id=<?php echo "$_GET[id]";?>&slet=<? echo $sti. "/" .$url;?>"><img src="images/slet.gif" alt="Slet billede '<?php echo $file; ?>'" width="17" height="17" border="0"></a></td>
                          <td width="5%"><a href="<? echo $sti. "/" .$url;?>" target="_blank" class="menu"><img src="images/view.gif" alt="Se billede '<?php echo $file; ?>'" width="17" height="17" border="0"></a></td>
                        <td width="80%"><? echo $fil;?></td>
                        </tr>
                        <?php
            }
?>

Men jeg tror ikke rigtigt den kommer ind if($slet) {

kan i se hvorfor?

og evt se om der er andre fejl
Avatar billede jaw Nybegynder
13. december 2005 - 12:20 #1
Prøv at ændre:
if ($slet) {

til:
if (isset($_GET['slet'])) {

...og så tilføj en:
echo "Debug test";
inde i din if så du kan se om den kommer derind eller ej.
Avatar billede jaw Nybegynder
13. december 2005 - 12:22 #2
Og dit link bør også være:
<a href="filnavn.php?id=<?php echo $_GET['id'];?>&slet=<? echo $sti. "/" .$url;?>">
eller:
<a href="<?php echo $_SERVER['PHP_SELF'];?>?id=<?php echo $_GET['id'];?>&slet=<? echo $sti. "/" .$url;?>"><
Avatar billede xeox Nybegynder
13. december 2005 - 12:24 #3
ja nu kommer den ind.. men jeg får smidt:

Warning: unlink(../images/galleri/gallerier/gal1/thumb_papir1.gif): No such file or directory in D:\inetpub\vhosts\xxxx\subdomains\casper1\httpdocs\otcms\adm\galleri_redi_slet.php  on line 124

Warning: unlink(../images/galleri/gallerier/gal1/papir1.gif): No such file or directory in D:\inetpub\vhosts\xxxx\subdomains\casper1\httpdocs\otcms\adm\galleri_redi_slet.php  on line 126

Warning: mysql_query(): Access denied for user 'ODBC'@'localhost' (using password: NO) in DD:\inetpub\vhosts\xxxx\subdomains\casper1\httpdocs\otcms\adm\galleri_redi_slet.php  on line 127

Warning: mysql_query(): A link to the server could not be established in D:\inetpub\vhosts\xxxx\subdomains\casper1\httpdocs\otcms\adm\galleri_redi_slet.php on line 127
Avatar billede jaw Nybegynder
13. december 2005 - 12:26 #4
Først din unlink, der har du 2 .. - er det korrekt? Skal det ikke kun være 1 punktum?

Næst din query, der mangler du at connecte til din database vil jeg tro :)
Avatar billede xeox Nybegynder
13. december 2005 - 12:30 #5
aah, ja .. damn havde ik set det med connect. men det er jo klart.

Og ja det er meningen med 2 unlink.. fordi der ligger 2 filer der skal slettes på engang, et alm. billede og en thumb_ af billedet.. det er derfor jeg fjerner "thumb_" fra den ene :)
Avatar billede jaw Nybegynder
13. december 2005 - 12:32 #6
Ja, jeg mente ikke 2 unlink, men 2 punktummer. Der er jo ret stor forskel på strukturen af dine biblioteker om du bruger 1 eller 2 punktummer. For det er stien den er gal med, for den kan ikke finde filerne.
Avatar billede xeox Nybegynder
13. december 2005 - 12:41 #7
hmm okay .. jeg bruger den samme sti som den udskriver der til at ligge billeder op med. men kan da prøve at fjerne en af dem

ved hjælp af en replace
Avatar billede xeox Nybegynder
13. december 2005 - 12:52 #8
nå men nu sletter den da i det mindste billederne.. der skulle være 2 punktummer.. men den gider ikke slette fra min db?

if (isset($_GET['slet'])) {
    echo "flot";
    $id = $_GET['id'];
    $slet_thumb = $_GET['slet'];
    unlink("$slet_thumb");
    $slet_pic = str_replace("thumb_", "", $slet);
    unlink("$slet_pic");
    require("db.php");
    mysql_query("DELETE FROM cms_gall_pics WHERE id=$id");
Avatar billede jaw Nybegynder
13. december 2005 - 12:59 #9
Så er det jo umiddelbart nok dit udtræk det er galt med.

Man kan altid smide or die(mysql_error()); på udtrækket.
Og så udskrive selve sit udtræk, som:
echo "DELETE FROM.........."; for at se om det indeholde det man tror det gør.
Avatar billede xeox Nybegynder
13. december 2005 - 13:12 #10
hmm.. pludselig vil den kun hente et udtræk..

kan du se hvorfor?

                        <?php
if (isset($_GET['slet'])) {
    echo "flot";
    $slet_thumb = $_GET['slet'];
    unlink("$slet_thumb");
    $slet_pic = str_replace("thumb_", "", $slet);
    unlink("$slet_pic");
    require "db.php";
    $id = $_GET['id'];
    mysql_query("DELETE FROM cms_gall_pics WHERE id='$id'") or die(mysql_error());
    echo "DELETE FROM cms_gall_pics WHERE id='$id'";
//header("Location: galleri_redi_slet.php?id=$id");
  //  exit;
}
require("db.php");
$id = mysql_real_escape_string($_GET['id']);
$query = mysql_query ("SELECT * FROM cms_gall_pics INNER JOIN cms_gall_gall ON cms_gall_gall.id = cms_gall_pics.galleri WHERE cms_gall_gall.id =$id");
  $a = 0;
  if(mysql_num_rows($query)>0)
{
    $row = mysql_fetch_assoc($query);
    $sti = $row['sti'];
    $url = $row['url'];
    $fil = str_replace("thumb_", "", $url);
$a++;
    if($a%2 == 0) {
    $bgcolor = "#f4f3f3";
    }else{
    $bgcolor = "#EBEBEB";
    }
    $over = '#ded7c7';
?>
                        <tr bgcolor="<?=$bgcolor?>" onMouseOver="this.bgColor='<?=$over?>';" onMouseOut="this.bgColor='<?=$bgcolor?>';" class="style_link">
                          <td width="5%"><a href="?id=<?php echo "$_GET[id]";?>&slet=<? echo $sti. "/" .$url;?>"><img src="images/slet.gif" alt="Slet billede" width="17" height="17" border="0"></a></td>
                          <td width="5%"><a href="<? echo $sti. "/" .$url;?>" target="_blank" class="menu"><img src="images/view.gif" alt="Se billede" width="17" height="17" border="0"></a></td>
                        <td width="80%"><? echo $fil;?></td>
                        </tr>
                        <?php
            }
?>

det er ligesom om der er en en (LIMIT 0,1) på.. der ligger 2 rækker i min db.. men viser kun 1
Avatar billede jaw Nybegynder
13. december 2005 - 13:14 #11
Ja, du henter jo kun den første du finder:

$row = mysql_fetch_assoc($query);

ellers skal det være en løkke:
while($row = mysql_fetch_assoc($query)) {

...

}
Avatar billede xeox Nybegynder
13. december 2005 - 13:19 #12
aah ja tak.. og så har jeg fundet hvad jeg tror der er problemet med den ikke vil delete fra min db.. den tager id=10 .. men ingen id er det.. det er galleri id'et der er det.. derfor skal jeg have givet den id'et fra tabellen hvor jeg henter navnet på billedet (cms_gall_pics) men da begge (cms_gall_gall og cms_gall_pics) har et felt der hedder "id" finder den åbenbart tabellen (cms_gall_gall) først, og tager dens id.. eller noget..
Avatar billede jaw Nybegynder
13. december 2005 - 13:21 #13
Ja, det gør den nok. Så må du lave noget med tabel1.id as id1, tabel2.id as id2 og så bruge $row['id1'] etc.
Avatar billede xeox Nybegynder
13. december 2005 - 13:22 #14
er ik så meget inde i det INNER JOIN, kan du indsætte det?
Avatar billede jaw Nybegynder
13. december 2005 - 13:30 #15
Tjah, den nemme måde:

$query = mysql_query ("SELECT cms_gall_pics.*, cms_gall_pics.id as id1, cms_gall_gall.*, cms_gall_gall.id as id2 FROM cms_gall_pics INNER JOIN cms_gall_gall ON cms_gall_gall.id = cms_gall_pics.galleri WHERE cms_gall_gall.id =$id");
Avatar billede xeox Nybegynder
13. december 2005 - 13:42 #16
yes.. og så hvis du gider.. som den allersidste ting.. kan du så lave hvis den igen rows finder i "cms_gall_pics" og feltet "galleri" = "$id2" så skal den udskrive "Der er ingen billeder til dette galleri" - Så vil jeg være lykkelig !
Avatar billede jaw Nybegynder
13. december 2005 - 13:45 #17
Erhm, kan dette mon så ikke bruges:

if(mysql_num_rows($query) == 0) {
  echo "Ingen billeder fundet";
} else {
  while(..) {
    ......
  }
}

?

Og så har jeg da vist også svaret på de spørgsmål ! :)
Avatar billede xeox Nybegynder
13. december 2005 - 13:46 #18
Ja tak. det tør siges ;).. jeg siger tusind tak for hjælpen !

:o)
Avatar billede jaw Nybegynder
13. december 2005 - 13:48 #19
Selv tak :)
Avatar billede xeox Nybegynder
13. december 2005 - 13:53 #20
-lukket-
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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