Avatar billede crabber Nybegynder
28. juni 2007 - 09:20 Der er 20 kommentarer og
2 løsninger

Tjekker om image tilhører et emne?

Jeg har prøvet at lave et simplet tjek, på om et image er valgt til en emne, men jeg kan ikke få det virke at virke som jeg vil.

På hvert billede skal der tjekkes om det er valg ud der blive så udskrevet et confirm inden billede slettes.

Hvad gør jeg galt?

KODEN:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
<?php
if(isset($_GET['id']))
{
//$query = mysql_query("DELETE FROM images_emne WHERE id = '$_GET[id]'") or die(mysql_error());
//unlink ('../images/emne_images/'.$_GET['images']);
}       
        $query = mysql_query("SELECT * FROM emner INNER JOIN images_emne ON emner.emne_img_id = images_emne.id");   
        if(mysql_num_rows($query) != 0)
        {
            $confirm = 'Dette billede er valgt til et emne. Er du sikker på du vil slette?';
        }
        else
        {
            $confirm = 'Dette billeder er ikke valgt til et emne.';
        }
           
        $query = mysql_query("SELECT * FROM images_emne ORDER BY id DESC");
        while($row = mysql_fetch_assoc($query))
        {
?> 
        <a href="ors.php?side=emne_img&id=<?php echo $row["id"]; ?>&images=<?php echo $row["url"]; ?>" onclick="java script:return confirm('<?php echo $confirm; ?>');"><img src="../images/emne_images/<?php echo $row['url']; ?>" alt="<?php echo $row['url']; ?>" border="0" /></a>
        <?php
        }
?>
KODEN SLUT::::::::::::::::::::::::::::::::::::::::::::::::::::::
Avatar billede 17196 Nybegynder
28. juni 2007 - 09:52 #1
Vis lige strukturen i dine tabeller.
Avatar billede crabber Nybegynder
28. juni 2007 - 09:59 #2
tabel:images_emne
(
id
url
)

tabel:emner
(
id
emne_img_id
)
Avatar billede jakobdo Ekspert
28. juni 2007 - 10:48 #3
Mangler du ikke en WHERE image_id = $_GET['id'] i din SQL med INNER JOIN?
Avatar billede crabber Nybegynder
28. juni 2007 - 11:02 #4
Jo tjekke alle billede når man trykker ind på siden sådan at beskeden er echoet ind i confirm boxen når man trykker på et billede for at slette det. Så der skal laves en validering af alle billede inden man trykke så derfor kan jeg jo ikke lave en $_GET på stringen da der ikke er noget at hente.
Avatar billede jakobdo Ekspert
28. juni 2007 - 11:23 #5
Så forstår jeg ikke din kode.
Avatar billede jakobdo Ekspert
28. juni 2007 - 11:35 #6
Ahh, nu tror jeg jeg forstod din kode! :o)

Test lige denne kode:

<?php
if(isset($_GET['id']) && is_numeric($_GET['id']) && isset($_GET['images']))
{
    $id = intval($_GET['id']);
    $query = mysql_query("DELETE FROM images_emne WHERE id = '$id' LIMIT 1") or die(mysql_error());
    unlink ('../images/emne_images/'.$_GET['images']);
}

$query = mysql_query("SELECT ie.id, ie.url FROM emner AS e INNER JOIN images_emne AS ie ON e.emne_img_id = ie.id"); 
if(mysql_num_rows($query) != 0)
{
    $confirm = 'Dette billede er valgt til et emne. Er du sikker på du vil slette?';
    echo '<a href="ors.php?side=emne_img&id='.$row["id"].'&images='.$row["url"].'" onclick="java script:return confirm(\''.$confirm.'\');"><img src="../images/emne_images/'.$row['url'].'" alt="'.$row['url'].'" border="0" /></a>';
}
else
{
    $confirm = 'Dette billeder er ikke valgt til et emne.';
    echo '<a href="ors.php?side=emne_img&id='.$row["id"].'&images='.$row["url"].'" onclick="java script:return confirm(\''.$confirm.'\');"><img src="../images/emne_images/'.$row['url'].'" alt="'.$row['url'].'" border="0" /></a>';
}
?>

Og du bør også sikre din UNLINK();
Ved at bruge $_GET[] i den, kan der muligvis laves noget skidt med:

./../../../SKIDT.php
Avatar billede crabber Nybegynder
28. juni 2007 - 14:16 #7
Jeg kan stadig ikke få det helt til at virke og jeg tror ikke du har forstået det helt...

Jeg har en række billede som alle bliver udskrevet fra dben. På alle billeder skal der være et tjek på om deres id står i den tabel som hedder emner.emne_img_id.

Hvis den gør det skal den udskreve en confirm med en tekst og hvis den ikke gør skal den skrive noget andet.
Avatar billede 17196 Nybegynder
28. juni 2007 - 15:20 #8
<?php
$query = mysql_query("
SELECT images_emne.url, emner.emne_img_id
FROM images_emne
LEFT JOIN emner
ON images_emne.id=emner.id
");
while($row = mysql_fetch_array($query))
{
if($row[emne_img_id] == $row[id]){
    $confirm = 'Dette billede er valgt til et emne. Er du sikker p&aring; du vil slette?';
    }else{
    $confirm = 'Dette billeder er ikke valgt til et emne.';
    }
    ?>
    <a href="ors.php?side=emne_img&amp;id=<?=$row[id]?>&amp;images=<?=$row[url]?>" onclick="java script:return confirm('<?=$confirm?>');"><img src="../images/emne_images/<?=$row[url]?>" alt="<?=$row[url]?>" border="0" /></a><br />
  <?
}
?>

Det må blive noget i den stil så..
Avatar billede crabber Nybegynder
28. juni 2007 - 15:41 #9
Ja præcis sådan der...
Smid et svar så for du dine point.

Er der nogen som kan forklare mig forskellen på join?
Avatar billede 17196 Nybegynder
28. juni 2007 - 15:54 #10
Du kan læse der her:
http://www.w3schools.com/sql/sql_join.asp

jakobdo burde have points, men så vidt jeg husker samler han ikke på dem, så bare behold dem!
Avatar billede 17196 Nybegynder
28. juni 2007 - 16:04 #11
Forresten er det en fantastisk dag, når man kan rette eksperten.dk php guru #1 Hr Jakobdo. :D
/ducks
Avatar billede jakobdo Ekspert
28. juni 2007 - 17:08 #12
Du får et svar!
Avatar billede jakobdo Ekspert
28. juni 2007 - 17:10 #13
Jeg vil dog mene at hvis emne ikke findes, så vil emne_id være = NULL.
Men ja, jeg er ikke guru og bestemt ikke fejlfri! :o)
Avatar billede 17196 Nybegynder
28. juni 2007 - 17:19 #14
Jo du er, nu ikke så beskeden :P
Avatar billede jakobdo Ekspert
28. juni 2007 - 17:42 #15
:o)
Avatar billede crabber Nybegynder
29. juni 2007 - 09:40 #16
17196 du bliver alså også nød til at komme med et svar.. Det er sådan set dine kode som var tætteste på det rigtige.. jeg rettet lige lidt i det så virkede helt perfekt.
Avatar billede 17196 Nybegynder
29. juni 2007 - 11:02 #17
Giv jakobdo points og mig karma - så bliver det den bedste dag i mit liv!
Avatar billede jakobdo Ekspert
29. juni 2007 - 11:17 #18
17196: Hvorfor så beskeden, du skal da have begge dele! :o)
Avatar billede 17196 Nybegynder
29. juni 2007 - 11:41 #19
Haha, den kommentar havde jeg ikke forudset ville give bagslag, man kunne næsten beskylde jer for at arbejde sammen i et større komplot mod netop det fælles mål.

Nå, men jeg svarer så.
God weekend!
Avatar billede 17196 Nybegynder
29. juni 2007 - 11:41 #20
Ups :P
Avatar billede crabber Nybegynder
29. juni 2007 - 12:08 #21
Nu for i 30 point hver fordi i begge har været så søde at hjælpe...
God Weekend
Avatar billede jakobdo Ekspert
29. juni 2007 - 12:33 #22
Takker for point.
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