04. juli 2006 - 18:25
Der er
59 kommentarer og 1 løsning
hjælp til at slette fra en tabel
er her nogen der vil hjælpe med en kode der: <? include ("config.php"); // Hent data ud $resultat = mysql_query("select overskrift from artikler_avis ORDER BY id"); // vis data her $foresp = mysql_query("SELECT overskrift FROM artikler_avis ORDER BY id"); while($data = mysql_fetch_array($f oresp)){ echo "<b>" . $data["overskrift"] . "</b> "; } ?> den connecter til databsen via config.php og viser en liste over artikler i tabellen artikler_avis men viser kun overskriften - så kommer det jeg skal have hjælp til... at hver overskrift den viser er et link til at slette den artikel! det haster! skal bruges i aften! på forhånd tak!
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
Du skal til at starte med have sat et stel-link på: $foresp = mysql_query("SELECT id, overskrift FROM artikler_avis ORDER BY id"); while ($data = mysql_fetch_array($foresp)) { echo "<b>" . $data["overskrift"] . "</b> <a href="slet.php?id=" . $data["id"] . "</a><br>"; }
Derefter skal du have lavet en slet.php som kan se nogenlunde sådan her ud: $id = $_GET["id"]; if (isset($id)) { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; mysql_query($sql) or die(mysql_error()); }
kan du ikke lave en hel kode? er ikke vildt god til php:P
Ok, men du bliver selv nødt til at fylde ud med password og den slags oplysninger...
Jeg gætter på at den del af koden findes i "config.php". Så burde dette være nok: <? include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id)) { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift FROM artikler_avis ORDER BY id"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } ?>
Altså du gør bare som nielle siger, altså opret slet.php: <? $id = $_GET["id"]; if (isset($id)) { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; mysql_query($sql) or die(mysql_error()); } $foresp = mysql_query("SELECT id, overskrift FROM artikler_avis ORDER BY id"); while ($data = mysql_fetch_array($foresp)) { echo "<b>" . $data["overskrift"] . "</b> <a href="slet.php?id=" . $data["id"] . "</a><br>"; } ?> Jeg ved ikke lige hvordan du kører dine sider mht. connect osv.
nielle - jeg får bare denne her meddelelse You have an error in your SQL syntax near '' at line 1
Det lyder som om at der er en fejl i din config.php fil...
04. juli 2006 - 18:58
#10
neej tror at der er fejl i din kode
04. juli 2006 - 18:59
#11
den skriver nemlig ikke noget tal efter blabla.php?id=
04. juli 2006 - 18:59
#12
skal den ikke det?
04. juli 2006 - 19:00
#13
Jeg tvivler, men du kan da udvide koden med lidt debug: <? echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id)) { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } ?> - og så kan du fortælle mig hvad den skriver.
04. juli 2006 - 19:02
#14
Hvis der er fejl i config.php så stopper den inde at denm når at skrive noget ud. Så jo det kan godt være der den er gal.
04. juli 2006 - 19:03
#15
den når at sprøge hvilken jeg vil slette og hente data fra databasen men når jeg trykker slet så skriver den bare: DEBUG #0 DEBUG #1: DELETE FROM artikler_avis WHERE id= You have an error in your SQL syntax near '' at line 1
04. juli 2006 - 19:04
#16
sprørge*
04. juli 2006 - 19:04
#17
spørge*
04. juli 2006 - 19:05
#18
<? echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id) && trim($id) != "") { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } ?>
04. juli 2006 - 19:07
#19
nu sker der ingenting når jeg trykker slet...
04. juli 2006 - 19:09
#20
Prøv at smide resultatet af en Vis Kilde her.
04. juli 2006 - 19:10
#21
tänk på sqlinjection nielle.
04. juli 2006 - 19:10
#22
før eller efter at jeg trykker slet?
04. juli 2006 - 19:10
#23
Nielle, du glemmer at selecte id-kolonnen, derfor finder den aldrig det felt :) zynzz gør også (indirekte) opmærksom på det med hans query.
04. juli 2006 - 19:11
#24
DEBUG #0<br>DEBUG #2: SELECT overskrift FROM artikler_avis ORDER BY id<br><b>test</b> <a href='/Geexie/fedesystemer/prove.php?id='>Slet</a><br><b>blabla</b> <a href='/Geexie/fedesystemer/prove.php?id='>Slet</a><br>
04. juli 2006 - 19:12
#25
Rooolig nu ... en ting af gangen.
04. juli 2006 - 19:13
#26
Sorry ;o)
04. juli 2006 - 19:13
#27
04/07-2006 19:10:45> Det havde jeg husket at gøre i 04/07-2006 18:28:44 - men den forsvandt åbenbart igen.
04. juli 2006 - 19:14
#28
<? echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id) && trim($id) != "") { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift, id FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } ?>
04. juli 2006 - 19:14
#29
confused - hvad er de datoer til før?
04. juli 2006 - 19:14
#30
for*
04. juli 2006 - 19:15
#31
Datoeren referer til tidligere indlæg i dette her spørgsmål :^)
04. juli 2006 - 19:16
#32
DET VIRKER! 1000 tak! skriver du lige et svar så du kan få point?
04. juli 2006 - 19:17
#33
Nej, vi er nemlig ikke helt færdig (04/07-2006 19:10:23). ;^)
04. juli 2006 - 19:17
#34
hmm hvad mangler?
04. juli 2006 - 19:19
#35
Der mangler sikkerhed mod at andre kan fuske med URL'en, og potentielt slette hele din database gennem den. :) Her er det vel bare at bruge denne linie: if (isset($id) && trim($id) != "" && is_numeric($id)) ...og så også lige slette de debug-meddelelser.
04. juli 2006 - 19:21
#36
jeg lægger den ind i et community og tilføjer en kode der gør at men SKAL være logged ind for at gøre det?
04. juli 2006 - 19:21
#37
Noget i denne stil: <? echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id) && preg_match("/^\d+$/", $id)) { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift, id FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } ?>
04. juli 2006 - 19:22
#38
Det er ikke nok at du kræver login ... for hvordan sikre du at der ikke er en vandal som opretter en konto bare for at lave hærværk mod dit system?
04. juli 2006 - 19:27
#39
jeg har slettet opret funktionen da det kun er min far der skal kunne lave ting.. men ellers hvad er din idé?
04. juli 2006 - 19:32
#40
Når man laver den slags ting skal man sikre sig at man kan stole på dem som kan benytte de potentielt destruktive ting. Derfor vil man sædvanligvis lave et login-system hvor at ikke alle brugere nødvendigvis har de samme rettigheder. F.eks. ville det være naturligt at det kun var din fader (og dig selv) som havde slette-rettigheder.
04. juli 2006 - 19:37
#41
ja ved godt... men ville denne kode så ikke virke?: <? session_start(); if (session_is_registered("brugernavn") AND ("kodeord")) { include("config.php"); $hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis = mysql_fetch_array($hent); ?> <? if($vis[status] == "Ejer") { ?> <? echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id) && trim($id) != "") { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift, id FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } ?>
04. juli 2006 - 19:40
#42
Bortset fra at koden slet ikke ville kunne køre... ;^) ... så afhænger det nu lige så meget af hvordan man logger ind på din side.
04. juli 2006 - 19:42
#43
hvordan ville du foreslå at man tjekkede om man var logged ind?
04. juli 2006 - 19:47
#44
har du msn? det ville måske være nemmere der?
04. juli 2006 - 19:48
#45
Nej jeg bruger ikke MSN. Foretrækker nu også at hjælpe her sådan at alle kan følge med. :^)
04. juli 2006 - 19:49
#46
men hvordan ville du foreslå det?
04. juli 2006 - 19:50
#47
hvad med at kun éen ip kan komme ind?
04. juli 2006 - 19:53
#48
eller ville denne kode virke? <? session_start(); if (session_is_registered("brugernavn") AND ("kodeord")) { include("../config.php"); $hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis = mysql_fetch_array($hent); ?> <? if($vis[status] == "normal") { echo("<font color=red>Ingen adgang!</font>"); } ?> <? if($vis[status] == "Ejer") { ?> <? $hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn='$_GET[brugernavn]'"); $vis1 = mysql_fetch_array($hent); ?> <? echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id) && trim($id) != "") { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift, id FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } ?> <? } ?> <? }else{ print "<font color=red>Ingen Adgang!</font>"; } ?>
04. juli 2006 - 19:54
#49
Noget i denne stil: <? session_start(); $brugernavn = $_SESSION['brugernavn']; $kodeord = $_SESSION['kodeord']; if ($brugernavn == "dinFarsBrugernavn" && $kodeord = "dinFarsKodeord") { echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id) && preg_match("/^\d+$/", $id)) { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift, id FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } } ?>
04. juli 2006 - 19:55
#50
<? session_start(); if (session_is_registered("brugernavn") AND ("kodeord")) { include("../config.php"); $hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis = mysql_fetch_array($hent); ?> <? if($vis[status] == "normal") { echo("<font color=red>Ingen adgang!</font>"); } ?> <? if($vis[status] == "Ejer") { ?> <? $hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn='$_GET[brugernavn]'"); $vis1 = mysql_fetch_array($hent); ?> <? echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id) && trim($id) != "") { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift, id FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } ?> <? } ?> <? }else{ print "<font color=red>Ingen Adgang!</font>"; } ?> virker fint!
04. juli 2006 - 19:56
#51
Denne linje: if (session_is_registered("brugernavn") AND ("kodeord")) { - kan ikke kompilere. Den skal minimum se sådan ud: if (session_is_registered("brugernavn") AND session_is_registered("kodeord")) { Men det er jo ikke nok at teste om der er nogget nogen på. Du skal også teste om det er den rigtige som er logget på. Altså din far og ingen anden.
04. juli 2006 - 19:56
#52
kom med svar for at få points?
04. juli 2006 - 19:56
#53
Svar :^)
04. juli 2006 - 19:56
#54
Hvorfor alle de start/slut-tags til PHP?
Nej den ville heller ikke fungerer. Hvis det kun er én (måske to) der skal kunne logge ind, så kig på .htaccess.
www.webcafe.dk
04. juli 2006 - 19:56
#55
har også gjort? if status = ejer then
04. juli 2006 - 20:00
#56
<? session_start(); if (session_is_registered("brugernavn") AND ("kodeord")) { include("../config.php"); $hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis = mysql_fetch_array($hent); if($vis[status] == "normal") { echo("<font color=red>Ingen adgang!</font>"); } if($vis[status] == "Ejer") { $hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn='$_GET[brugernavn]'"); $vis1 = mysql_fetch_array($hent); echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id) && trim($id) != "") { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift, id FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } } }else{ print "<font color=red>Ingen Adgang!</font>"; } ?> sammenlignet med din: <? session_start(); if (session_is_registered("brugernavn") AND ("kodeord")) { include("../config.php"); $hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis = mysql_fetch_array($hent); ?> <? if($vis[status] == "normal") { echo("<font color=red>Ingen adgang!</font>"); } ?> <? if($vis[status] == "Ejer") { ?> <? $hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn='$_GET[brugernavn]'"); $vis1 = mysql_fetch_array($hent); ?> <? echo "DEBUG #0<br>"; include("config.php"); // Slet her. $id = $_GET["id"]; if (isset($id) && trim($id) != "") { $sql = "DELETE FROM artikler_avis WHERE id=" . $id; echo "DEBUG #1: $sql<br>"; mysql_query($sql) or die(mysql_error()); } // Vis data her $sql = "SELECT overskrift, id FROM artikler_avis ORDER BY id"; echo "DEBUG #2: $sql<br>"; $result = mysql_query($sql) or die(mysql_error()); while ($data = mysql_fetch_assoc($result)) { echo "<b>" . $data["overskrift"] . "</b> <a href='" . $_SERVER['PHP_SELF'] . "?id=" . $data["id"] . "'>Slet</a><br>"; } ?> <? } ?> <? }else{ print "<font color=red>Ingen Adgang!</font>"; } ?>
04. juli 2006 - 20:09
#57
Denne her linje: if (session_is_registered("brugernavn") AND ("kodeord")) { - kompilere måske nok, men den fungere ikke efter hensigten. Deludtrykket ("kodeord")) vil altid blive sandt, og derfor testes der faktisk slet ikke på om man er logget ind med et korrekt password.
04. juli 2006 - 20:10
#58
men du er slet ikke logged ind uden et password så det behøves ikke den tjekker jo om man er logged ind...
04. juli 2006 - 20:13
#59
I så fald er der jo slet ikke nogen grund til at have det delled. :^)
04. juli 2006 - 20:15
#60
ved ikke :/ er bare glad for svaret :D
Computerworld tilbyder specialiserede kurser i database-management