Avatar billede krischjo Nybegynder
29. januar 2011 - 21:11 Der er 9 kommentarer og
1 løsning

Select and delete from database

Hej jeg har svært ved at få mit script til at vælge noget og slette det til at virke. Den sletter bare den første på listen imellem dem man kan vælge, bare man går ind på siden hvor man kan slette nyheder.

Scriptet so far:

    <?php

    $qry="SELECT * FROM members WHERE login='".$_SESSION['SESS_LOGIN']."' AND admin='ja'";
    $result=mysql_query($qry);
 
      if($_SESSION['SESS_ADMIN'] == "ja"){
          ?><h1>Slet nyheder</h1>
              <form method="post" action="">
    <select>
          <?php
         
          $foresp = mysql_query("SELECT overskrift FROM nyheder ORDER BY dato DESC");
while($data = mysql_fetch_array($foresp)){
    $_POST["overskrift"] = $data["overskrift"];
   
    if(isset($_POST["overskrift"])){
        echo "The news has been deleted.";
    } else {
   
    ?>

<option value="<?php echo $_POST["overskrift"]; ?>"><?php echo $_POST["overskrift"]; ?></option>
<?php
    }
    ?>
</select>
<input value="Slet" type="submit">
</form>
<?php
mysql_query("DELETE FROM nyheder WHERE overskrift='$_POST[overskrift]'");
   
   
    } ?>
    <?php
      }
      ?>

... Håber der er en der har svaret.
Avatar billede michael_stim Ekspert
29. januar 2011 - 21:20 #1
Prøv at sætte ' eller " om $_POST[overskrift].
Avatar billede michael_stim Ekspert
29. januar 2011 - 21:27 #2
Kan se at du hopper meget ind og ud af php. Hver gang koster det lidt tid (plus det tager længere tid at skrive ;o)), det betyder nok ikke så meget i dit tilfælde, men i et andet sammenhæng kunne det måske være relevant.

Eks.

    } ?>
    <?php
      }
      ?>

I stedet for:
    }
      }
      ?>

Og i stedet for at afslutte hver gang man skal have html, kan man (en smagssag hvad man vil):

echo "<option value="".$_POST['overskrift']."">".$_POST['overskrift']."</option>";
Avatar billede krischjo Nybegynder
29. januar 2011 - 21:29 #3
Grunden til jeg går så meget ud og ind af php, er egentlig mere så jeg bedre lige kan overskue hvilke tuborg-klammer der hører til hvad. Men det med html er bare fordi jeg ikke rigtig kan finde ud af at skrive det ordentligt mht. at lave ' og ".
Avatar billede krischjo Nybegynder
29. januar 2011 - 21:29 #4
Det har jeg prøvet :\
Avatar billede michael_stim Ekspert
29. januar 2011 - 22:06 #5
Du har også glemt at sætte en action på:

if(isset($_POST['Slet'])){
mysql_query("DELETE FROM nyheder WHERE overskrift='".$_POST['overskrift']."'") or die(mysql_error());
}


Noget á la det.
Avatar billede heinzdmx Nybegynder
29. januar 2011 - 22:58 #6
@michael
Se spørgers holdning til point:
http://www.eksperten.dk/spm/929657
Avatar billede krischjo Nybegynder
30. januar 2011 - 00:30 #7
Det er fordi der er ingen andre jeg kunne trykke "svar" til..
Og folk klager også hvis man har point der bare står ude.

Hvad er dit problem? Giver med glæde de her virtuelle points, hvis der er nogen der kan hjælpe mig.

Og forresten så har jeg fundet en løsning  selv :)
Avatar billede heinzdmx Nybegynder
30. januar 2011 - 14:39 #8
1. Så kan du jo bede folk om at lægge et svar, som du så kan acceptere. Det er normalt at man kun lægger svar hvis man har absolut endelige løsning, eller at man er blevet bedt om det.

2. Folk klager hvis man har mange point ude, uden at have bedt folk om at lægge svar eller vende tilbage. Ikke når der er blevet bedt om et svar hos en og der så ikke er sket noget i en uge.

3. Ekspertens FAQ siger at man i så fald at man har fundet løsningen selv skal skrive den, på den måde kan det gavne andre der står i samme problem.
Avatar billede krischjo Nybegynder
31. januar 2011 - 17:37 #9
Fair, fandt selv ud af den her:

<?php 
 
    $qry="SELECT * FROM members WHERE login='".$_SESSION['SESS_LOGIN']."' AND admin='ja'"; 
    $result=mysql_query($qry); 
   
    if ($_SESSION['SESS_ADMIN'] == "ja") { 
  ?>
    <h1>Slet nyheder</h1> 


<?php 
              if (!isset($_POST["id"])) { 
              ?>
                  <form method="post" action=""> 

        <select name="id" id="id"> 
        <?php
             
    $foresp = mysql_query("SELECT id, overskrift FROM nyheder ORDER BY dato DESC"); 
    while ($data = mysql_fetch_array($foresp)) { 
     
?>
            <option value="<?php echo $data["id"]; ?>"><?php echo $data["overskrift"]; ?></option> 
<?php 
    } 
?> 
        </select> 
<br />
        <input value="Delete" type="submit"> 
    </form> 

<?php 

        }  else {
            $id = mysql_real_escape_string($_POST["id"]); 
            mysql_query("DELETE FROM nyheder WHERE id='" . $id . "'"); 
            echo "The news has been deleted";
            ?>
            <meta http-equiv="refresh" content="2; URL=?<?php echo $sted; ?>=delnews">
            <?php
        }
   
    } else { 
        echo "No access granted."; 
    } 
?>

..
Avatar billede heinzdmx Nybegynder
31. januar 2011 - 17:44 #10
Det er fint det virker. Men det er vist ikke helt W3C valid at du har et meta-tag i din body. Den skal være i headeren.
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
Kurser inden for grundlæggende programmering

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