views:

52

answers:

3

Some nodes are displayed in the content list even if they don't exist anymore.

When I click on them I get an empty page.

I was wondering if I can just delete the rows from the "Node" table or I should clean something else.

thanks

A: 

Drupal can't display what isn't there. Most likely you are having some cache issues. Have you cleared your browser and Drupal cache?

googletorp
well the nodes *are* in the Node table. This is what I get when I try to edit it: http://dl.dropbox.com/u/72686/deleteW.png
Patrick
What is causing the error shown in the screenshot is some module that uses `default_node_form()` as callback, but that function doesn't exist. If the error is causes by a third-party module, then it's referring to a function that Drupal doesn't find; if the error is caused by Drupal core code, then the Drupal installation has some files that have been corrupted.
kiamlaluno
+2  A: 

This may not be your problem but:

You don't want to delete rows directly from the database. You'll end up with no way of knowing what shape your database is in afterwards. Node IDs exist in many tables and nodes are distributed through more than one table.

Go through the nodeapi and use the Drupal framework because that's what it's meant for! The node api will treat your database schema correctly.

See: http://api.drupal.org/api/function/node_delete/6

So if you know the node ID, you can call node_delete.

Rimian
+2  A: 

First: on the administer page, go to performance, and click on the clear all caches button. If it doesn't solve your problem, then try disabling every contrib, and see if the problem still exists. If not, try enabling them one-by-one, and you will know which contrib made the problem. Report it to the module's issue queue.

If disabling modules doesn't solve your problem, download drush. Try deleting the node directly with node_delete. Example (if the wrong node's nid is 3):

drush php-eval 'node_delete(3);'

If you are not familiar with the command line, you can do the same with this little PHP file (put it into the Drupal's root):

include './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
node_delete(3);

If it doesn't work then make a backup from your database, delete the node from the node table and go through every node-related table (which has a nid column), and delete the related entries.

Yorirou

related questions