record delete uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis

Dennis

13/12/2006 15:40:00
Quote Anchor link
Hallo mensen,

Ik ben nu bezig met een delete script waarbij je eerste een overzicht krijgt van alle records in je tabel. Daarachter staat automatisch een link met verwijder.

Probleem : ik krijg die link niet goed dat er ook daadwerkelijk gedelete word.

2e vraag, heb het nu zo dat de laatste 15 records getoond worden, als er eenmaal meer in staan dan 15, hoe kan ik dan zorgen dat de volgende records getoond worden dmv een volgende pagina bijvoorbeeld ?

Hierbij overigens de code die ik nu heb :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
        include("../../incs/connect.php");
          
 ?>

<?php
$sqlout
= "SELECT * FROM vangaart_nieuws ORDER BY id DESC Limit 15"; //nieuwste record bovenaan
$query_naam = mysql_query($sqlout) or die(mysql_error());

if ($_GET['id'] && is_numeric($_GET['id'])){
  $query= "DELETE FROM vangaart_nieuws WHERE id = '".$_GET['id']."'";  
  mysql_query($query) or die(mysql_error());
}



echo "<b>Overzicht Berichten</b>";

echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">\n";

echo "\n<tr bgcolor=\"#666666\">
\n<td>id</td>
\n<td>datum</td>
\n<td>titel</td>
\n<td>record verwijderen?</td>
\n</tr>"
;

while($rij=mysql_fetch_array($query_naam)) {
  if ($kleur == "#666666"){
    $kleur = "#999999";
  }
else{
    $kleur = "#999999";
  }
  
  echo "<tr bgcolor=\"" . $kleur . "\">
  \n<td>"
. $rij['id'] . "</td>
  \n<td>"
. $rij['datum'] . "</td>
  \n<td>"
. $rij['titel'] . "</td>
  \n<td>"
. "<a href=\"../nieuws/index.php?id=" . $rij['id'] . "\">Verwijderen?</a>" . "</td>
"
;
}

echo "</table>\n";

?>
Gewijzigd op 01/01/1970 01:00:00 door Dennis
 
PHP hulp

PHP hulp

19/11/2024 08:24:50
 
Frank -

Frank -

13/12/2006 15:45:00
Quote Anchor link
Hoe ziet de url er in de html-broncode uit?

En waarom gebruik je is_numeric() i.p.v. ctype_digit() ? Deze is een stuk nauwkeuriger, daar heb je dus meer aan.

Je vergeet overigens te controleren of er wel een record is verwijderd, dat zul je met de functie mysql_affected_rows() moeten achterhalen.
 
Jurgen assaasas

Jurgen assaasas

13/12/2006 15:46:00
Quote Anchor link
waarom verwijder je op de index? als ik op jou pagina nou doe ?id=12 dan ben jij je bericht kwijt. Doe dit op een beveiligde pagina.

anyway... Zo te zien zou hij gewoon moeten deleten. misschien even is_numeric() weghalen om te checken of het dan wel werkt.

Ook nog een puntje? Waarom \n voor elke TR/TD? als je een nieuwe rij wil beginnen gebruik je <TR></TR>
 
Dennis

Dennis

13/12/2006 15:59:00
Quote Anchor link
@ Frank : <td><a href="../nieuws/index.php?id=8">Verwijderen?</a></td>

En wat je zegt van is_numeric ipv ctype_digit , ik had van iemand juist begrepen dat je dan numeric moest gebruiken. nooit van cype gehoord ook.
Maar dat moet dus worden : ctype_digit($_GET['id']) ?

@ Jurgen : die index is idd een beveiligde pagina dmv htacess, dat weglaten van numeric geprobeerd maar geen verschik.
overigens als je nu op verwijder klikt, dan ga je juist naar het nieuwsbericht om te lezen :-) en laat dat nu net het tegenovergestelde zijn van wat ik wil...

:-p
 
Frank -

Frank -

13/12/2006 16:02:00
Quote Anchor link
if (isset($_GET['id']) && ctype_digit($_GET['id'])){

isset() ontbrak eveneens.

echo de query eens en controleer of de query iets heeft uitgevoerd.
 
Dennis

Dennis

13/12/2006 16:30:00
Quote Anchor link
@ Frank : misschien een hele domme vraag, maar hoe doe ik dat :-s
( schaam me bijna dod dat ik het vraag... )

Overigens wel die ene regel aangepast.

Denk dat het zit in de link verwijzing aan het eind ( verwijder link ).
De records worden namelijk allemaal netjes weergegeven, alleen die link verwijst naar het bericht ipv dat hij hem delete
 
Joren de Wit

Joren de Wit

13/12/2006 16:40:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
echo $query;
exit;
?>

Nadat je $query aangemaakt hebt. Optioneel kun je de exit; er ook achter zetten om te voorkomen dat de rest van het script uitgevoerd wordt.

Om te controleren of de query iets uitgevoerd heeft, kun je na het uitvoeren van de query de functie mysql_affected_rows() aanroepen. Dus iets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(mysql_affected_rows())
{

    // query gelukt.
}
?>
 
Dennis

Dennis

13/12/2006 17:12:00
Quote Anchor link
@ Blanche : dank je wel, heb het zo toegepast. hoop dat het goed is, want ik krijg geen melding verder.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
$sqlout
= "SELECT * FROM vangaart_nieuws ORDER BY id DESC Limit 15"; //nieuwste record bovenaan
$query_naam = mysql_query($sqlout) or die(mysql_error());

if (isset($_GET['id']) && ctype_digit($_GET['id'])){
  $query= "DELETE FROM vangaart_nieuws WHERE id = '".$_GET['id']."'";  
  mysql_query($query) or die(mysql_error());
  if(mysql_affected_rows())
{

    // query gelukt.
}
  echo $query;
exit;
}



echo "<b>Overzicht Berichten</b>";

echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">\n";

echo "\n<tr bgcolor=\"#666666\">
\n<td>id</td>
\n<td>datum</td>
\n<td>titel</td>
\n<td>record verwijderen?</td>
\n</tr>"
;

while($rij=mysql_fetch_array($query_naam)) {
  if ($kleur == "#666666"){
    $kleur = "#999999";
  }
else{
    $kleur = "#999999";
  }
  
  echo "<tr bgcolor=\"" . $kleur . "\">
  \n<td>"
. $rij['id'] . "</td>
  \n<td>"
. $rij['datum'] . "</td>
  \n<td>"
. $rij['titel'] . "</td>
  \n<td>"
. "<a href=\"../nieuws/index.php?id=" . $rij['id'] . "\">Verwijderen?</a>" . "</td>
"
;
}

echo "</table>\n";

?>
 
Frank -

Frank -

13/12/2006 18:08:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo 'query gelukt.';
?>

is natuurlijk vele malen zinvoller dan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
// query gelukt.
?>

In het 2e geval weet je namelijk nog steeds niet of de query nu wél of niet is gelukt
 
Dennis

Dennis

14/12/2006 08:18:00
Quote Anchor link
@ Frank : heb het geprobeerd en geen foutmelding verder.
Mijn idee is dat het probleem in dit gedeelte dan zit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
  echo "<tr bgcolor=\"" . $kleur . "\">
  \n<td>" . $rij['id'] . "</td>
  \n<td>" . $rij['datum'] . "</td>
  \n<td>" . $rij['titel'] . "</td>
  \n<td>" . "<a href=\"../nieuws/index.php?id=" . $rij['id'] . "\">Verwijderen?</a>" . "</td>
";
}
echo "</table>\n";


en dan doel ik op de link van verwijderen.
op deze manier namelijk verwijst de link naar het bericht zelf in de database ipv dat hij deze delete.

Jij een suggestie ?
 
Jan Koehoorn

Jan Koehoorn

14/12/2006 08:44:00
Quote Anchor link
Op regel 1 van je voorbeeld heb je een <tr> tag, maar die wordt nergens gesloten.

Verder ben je niet echt scheutig met je info. Wat is de returnwaarde van mysql_affected_rows? Heb je al met phpMyAdmin gekeken of er ook echt records uit je tabel verdwenen zijn?
 
Dennis

Dennis

14/12/2006 08:59:00
Quote Anchor link
Sorry jan, wat betreft mysql_affected_rows om heel eerlijk te zijn kreeg ik niks terug. :-s

Ging er vanuit dat het dan goed was... krijg het idee van niet nu ..

Maar om terug te komen op je vragen.

Ik heb inderdaad ook nog gekeken met phpmyadmin maar er wordt niets gedelete. Snap ook echt niet wat het nu moet zijn, mijn kennis is nu ook niet zo heel erg geweldig.
 
Dennis

Dennis

14/12/2006 09:50:00
Quote Anchor link
Ok ik ben wat verder. Inmiddels werkt het verwijderen als de link verwijst naar de pagina zelf..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
\n<td>" . "<a href=\"pages/verwijderen.php?id=" . $rij['id'] . "\">Verwijderen?</a>" . "</td>


Logisch natuurlijk, maar goed. :-)

Punt nu is, ik wil dat als je op verwijderen klikt hij vervolgens wordt doorverwezen naar :

index.php?page=home

Want nu is het zo dat hij de pagina ( verwijderen ) zelf weer geeft buiten mijn layout om en als ik op refresh klik dan is de tabel ook wel bijgewerkt.
Vandaar dat ik het graag wil door laten verwijzen.

Hoop dat het allemaal nog een beetje logisch klinkt...
Gewijzigd op 01/01/1970 01:00:00 door Dennis
 
Dennis

Dennis

14/12/2006 11:39:00
Quote Anchor link
Edit : Probleem opgelost. door middel van de link te maken als index.php?page=verwijderen&id==" . $rij['id'] . "

Verder kon ik geen refresh functie vinden en heb dat als volgt opgelost dat als men een record verwijderd heeft daarna op een link moet klikken dat de pagina verwijderen opnieuw word opgeroepen.

Nu is mijn laatste vraag in dit topic, hoe kan ik het in deze code voor elkaar krijgen dat het script maximaal 10 berichten toont en dan onder aan de pagina links plaatst voor volgende en vorige met o.a. keuze opties van 5 pagina's ?

*hoop dat dit niet geldt als bumpen. Gezien het een nieuwe vraag is.
Gewijzigd op 01/01/1970 01:00:00 door Dennis
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.