Slet fra SQL på manage side

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
goatman
Begynder
Indlæg:8
Tilmeldt:8. mar 2012, 16:05
Slet fra SQL på manage side

Indlæg af goatman » 12. apr 2012, 19:59

Hej derude

Jeg sidder og har lidt problemer med koden herunder. Den skal bruges på admin-delen på min side, og skal bruges til at administrere nyheder. Den printer fint navne osv ud på alt fra "news" tabellen. Men jeg vil så også gerne have en delete-knap på, så jeg nemt og hurtigt kan slette diverse nyheder (hvis det skulle blive nødvendigt).
Her sidder jeg dog lidt fast. Som det kan ses, har jeg en masse udtræk fra db'en under mysqli_fetch_array($sqlQ). Men den benytter sig jo kun af $sqlQ. Så hvordan kan jeg få den til at reagere på $sqlDEL også (hvor delete-koden er)?

Jeg ved godt der også er edit-link, men det har jeg ikke taget mig af endnu, så spørgsmålet omhandler kun delete-knappen.

Min kode ser således ud:

Kode: Vælg alt

<?php
require_once '../dbinfo.php';
include '../adminheader.php';

if(isset($_SESSION['admin'])){

$sqlQ = mysqli_query($db, "SELECT * FROM news ORDER BY intDate DESC");

if($_GET['manage'] == 'delete') {
$sqlDEL = mysqli_query($db, "DELETE FROM news WHERE intID = '".$_GET['intID']."'");
}


echo '<h2>Manage news posts</h2><p />
  <div id="manage"><table>
  <th>Name</th>
  <th>Date</th>
  <th>Tools</th>
  </tr>
';
while($dbF = mysqli_fetch_array($sqlQ)){
  echo '
  <tr><td>'.$dbF['strTitle'].'</td>
  <td>'.date("d-m-Y", strtotime($dbF['intDate'])).'</td>
  <td><a href="post.php?edit='.$dbF['intID'].'"><img src="',$edit,'" /></a>
      <a href="manage.php?delete='.$dbF['intID'].'" onclick="return confirm(\'Are you sure you want to delete this post?\')"><img src="'.$delete.'"></a></td>';

echo '</tr>';
};

echo '</table></div>';

} else { header ('location:/login.php'); }
include '../footer.php';
?>
På forhånd tak! :)

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Slet fra SQL på manage side

Indlæg af ThomasI » 12. apr 2012, 20:20

Virker dit if statement? - bare for at se om det overhoved kommer igennem når man vælger at delete...

Du kunne prøve at echo noget ud i dit if statement bare for at se om den går igennem...

Hvis den går igennem ja så må det jo være din query den er gal med...

Har du prøvet at rode lidt med situations tegene her:

Kode: Vælg alt

'".$_GET['intID']."'
Måske kunne du nøje med bare en type...

goatman
Begynder
Indlæg:8
Tilmeldt:8. mar 2012, 16:05

Re: Slet fra SQL på manage side

Indlæg af goatman » 12. apr 2012, 20:27

Jeg mener ikke jeg har haft problemer med mit if-statement.
Problemet var dog ikke så meget det. Mere hvordan jeg både kan bruge $sqlQ og $sqlDEL. F.eks. som dette:

Kode: Vælg alt

  <tr><td>'.$dbF['strTitle'].'</td>
  <td>'.date("d-m-Y", strtotime($dbF['intDate'])).'</td>
Reagerer på $sqlQ, og

Kode: Vælg alt

  <td><a href="post.php?edit='.$dbF['intID'].'"><img src="',$edit,'" /></a>
      <a href="manage.php?delete='.$dbF['intID'].'" onclick="return confirm(\'Are you sure you want to delete this post?\')"><img src="'.$delete.'"></a></td>';
Reagerer på $sqlDEL.

Jeg har prøvet at skille dem ad, og lave hver sin while($dbF = mysqli_fetch_array($sqlQ)), det har dog fået min table til at se helt forkert ud :(

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Slet fra SQL på manage side

Indlæg af ThomasI » 12. apr 2012, 20:42

Du skal vel lave en select, så du rent faktisk kan lave et loop på det f.eks:

Kode: Vælg alt

$sqlQDEL_TO = mysqli_query($db, "SELECT * FROM news WHERE intID = '".$_GET['intID']."'");
og så længere nede:

Kode: Vælg alt

while($dbF = mysqli_fetch_array($sqlQDEL_TO)){...
Men når du allerede har kørt koden længere oppe, så er handlingen vel sket så det kommer måske lidt for sent med den advarsel promt?

Er ikke sikker på jeg er med på hvad du vil men ja...

goatman
Begynder
Indlæg:8
Tilmeldt:8. mar 2012, 16:05

Re: Slet fra SQL på manage side

Indlæg af goatman » 12. apr 2012, 20:49

Det jeg vil, ser således ud:

Billede

Name og Date henter fra tabellen news. Tools giver mig adgang til edit og delete funktioner, og disse skal jo ikke hentes ud af db'en :)
Men jeg vil gerne have det i en enkelt table. Og det er der mit problem er.
Hvordan henter jeg Name og Date ud fra db'en, men samtidigt har edit og delete funktioner under Tools og beholder det hele i en tabel?

Besvar