Data base vraagje

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Data base vraagje

Bericht door maico » 23 jan 2005, 23:47

Hoi,

Waar ik me forum draai hebben ze wegens veiligheidsreden de commando drop table uit geschakeld als ook de commando legen van een komplete table

Nu het ik een table waar redelijk veel gegeven is komen die ik van tijd tot tijd leeg wil maken.
Nu kan ik wel veld voor veld selecteren en dan verwijderen maar dat is niet om te doen.

Nu is mijn vraag is er geen commande verwijder van de velden van dat en dat table?
Het zelfde dus als insert to** maar dan delete from ofzo??

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 24 jan 2005, 14:47

DELETE FROM tabel

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 24 jan 2005, 15:11

Hoi

Ik heb het zogedaan:

Code: Selecteer alles

DELETE FROM `maico_topics_viewdata` WHERE `viewed_id` = '1' LIMIT 1;
Maar er staan meer als 5000 viewed_id en dat word bij ieder keer dat er gekeken word meer natuurlijk.
Is ervoor `viewed_id` = '1' niet een joker teken?
*. ofzoiets dan want dat *. en *.* heb ik al geprobeerd :lol:

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 24 jan 2005, 17:19

Een tabel legen dus, ik dacht TRUNCATE TABLE maico_topics_viewdata.
Afbeelding

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 24 jan 2005, 17:32

Hoi Luuk,

Ook dat gaat niet.VOORBEELD

DELETE FROM is met joker tekens als dat gaat wel mogelijk.

Gebruikersavatar
Bee
Berichten: 13403
Lid geworden op: 29 aug 2004, 10:30

Bericht door Bee » 24 jan 2005, 17:33

Er mist iets in die phpMyAdmin. De select all functie. Daarna kan je het met twee klikken ook alles verwijderen. Maargoed, dat is weer wat anders.
... Maar ik modereer (nog) niet.

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 24 jan 2005, 17:36

Ja inderdaad in het veld daarvoor heb ik wel die select alles maar hier niet.
Dus vandaar het probleempje :lol:

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 24 jan 2005, 17:50

Maak een bestand aan in de phpbb root (naam maakt niet uit, bijvoorbeeld delete.php) met dit als inhoud:

Code: Selecteer alles

<?php
/***************************************************************************
 *                               delete.php 
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

$sql = "SELECT viewed_id
	FROM maico_topics_viewdata";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query ids', '', __LINE__, __FILE__, $sql);
}

$rows = array();
while( $rows[] = $db->sql_fetchrow($result) );
$db->sql_freeresult($result);

for($i = 0; $i < count($rows)-1; $i++)
{
    $sql = "DELETE FROM maico_topics_viewdata
		WHERE viewed_id = " . $rows[$i]['viewed_id'];
	if( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not delete viewed_id', '', __LINE__, __FILE__, $sql);
	}
	echo('Viewed_id verwijder met id' . $rows[$i]['viewed_id'] . '<br />');
}

?>
Ga daarna naar die pagina en als het goed moet hij alle id's verwijderen.
Laatst gewijzigd door Luuk op 24 jan 2005, 21:25, 3 keer totaal gewijzigd.
Afbeelding

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 24 jan 2005, 17:57

Code: Selecteer alles

Parse error: parse error, unexpected ';' in /xxxxxxxxxxxxxx/maico/delete.php on line 32
Als ik ingelogt ben als admin of niet maakt niet uit.

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 24 jan 2005, 18:19

Ow, ) vergeten. Heb hem aangepast. :wink:
Afbeelding

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 24 jan 2005, 18:24

Code: Selecteer alles

Could not delete viewed_id

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2

DELETE FROM maico_topics_viewdata WHERE viewed_id = 

Line : 30
File : /xxxxxxxxxxxx/maico/delete.php
Nog niet goed denk ik :lol:

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 24 jan 2005, 18:44

In een eerder veld (zo noem ik het maar)
daar kan ik wel de 6 verwijderen dus dat zijn maar 6 klikjes!

En dan daarna de velden terug erin zetten dat gaat ook maar hoe maak ik dit een goed geheel?
de create table hoef dus niet niet want die verwijder ik niet.
Het zou dus als de user_ip moeten worden nadat ik de 6 velden verwijderd heb draai ik toch gewoon de SQL query en heb ik het zooitje toch ook leeg niet!?

CREATE TABLE `phpbb_topics_viewdata` (
`viewed_id` int(10) unsigned NOT NULL auto_increment,
`user_id` mediumint(9) NOT NULL default '0',
`topic_id` mediumint(8) unsigned NOT NULL default '0',
`num_views` tinyint(3) unsigned NOT NULL default '1',
`last_viewed` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`viewed_id`),
KEY `user_id` (`user_id`,`topic_id`),
KEY `last_viewed` (`last_viewed`)
) TYPE=MyISAM ;


ALTER TABLE `maico_topics_viewdata` ADD `user_ip` CHAR( 8 ) NOT NULL;
ALTER TABLE `maico_topics_viewdata` ADD KEY `user_ip` (`user_ip`);

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 24 jan 2005, 18:58

Hmm, ben niet helemaal wakker zo te zien :P

Maar wat wil je aanpassen? Dat je op een moment alle rijen van 1 ip kan verwijderen of wat?
Afbeelding

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 24 jan 2005, 19:08

Nee ik wil van tijd tot tijd die hele tabel legen.
Maar omdat we de rechten niet krijgen moet het nu via een omweg :lol:
Dus als ik nu alle velden verwijder is hij toch leeg?

Nadat ik dat gedaan heb draai ik de sql weer en ik heb LEGE velden terug toch?

Nou moet ik alleen de goede SQL hebben.
Deze heb ik nodig voor me user_ip terug te krijgen

Code: Selecteer alles

ALTER TABLE `maico_topics_viewdata` ADD `user_ip` CHAR( 8 ) NOT NULL; 
ALTER TABLE `maico_topics_viewdata` ADD KEY `user_ip` (`user_ip`);
Die heb jij al eens gemaakt voor me :lol:
En zo moet ik het dus hebben van:
viewed_id
user_id
num_views
last_viewed


Dit is een stukje backup van me DB

Code: Selecteer alles

CREATE TABLE `maico_topics_viewdata` (

  `user_id` mediumint(9) NOT NULL default '0',
  `topic_id` mediumint(8) unsigned NOT NULL default '0',
  `num_views` tinyint(3) unsigned NOT NULL default '1',
  `last_viewed` int(10) unsigned NOT NULL default '0',
  `user_ip` char(8) NOT NULL default '',
  PRIMARY KEY  (`viewed_id`),
  KEY `user_id` (`user_id`,`topic_id`),
  KEY `last_viewed` (`last_viewed`),
  KEY `user_ip` (`user_ip`)
) TYPE=MyISAM AUTO_INCREMENT=25 ;
Maar ik hoef de tabel niet te maken want die verwijder ik niet het gaat dus alleen om de velden

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 24 jan 2005, 21:29

Een veld is bij jouw tabel bijvoorbeeld user_id. Volgens mij haal je het door elkaar met een rij. Dat is een rij waar informatie in staat.

Ik heb het nog 1 keer veranderd (heb het getest en het moet werken), alle rijen worden verwijderd dus de tabel wordt eigenlijk met een omweg geleegd.

Om het veld user_ip weg te halen moet je in je database dit uitvoeren:

Code: Selecteer alles

ALTER TABLE maico_topics_viewdata DROP user_ip
Vergeet niet in het php bestand waar er rijen worden ingevoerd ook user_ip weg te halen, anders krijg je errors.
Afbeelding

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 24 jan 2005, 21:44

Hoi Luuk

Ik krijg dit als resultaat :lol:

Code: Selecteer alles

Viewed_id verwijder met id24
Viewed_id verwijder met id25
Viewed_id verwijder met id26
Er stonden maar 3 id`s in dus dat is goed.

Het veld user_ip hoef toch niet weg want ik wil het wel blijven gebruiken, maar het ging mij erom dat ik hem eens mee en dan kan legen.
Want hij logt nog steeds niet 100%

Maar ik denk dat dit nu is.
Bedankt weer :thumb:

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 24 jan 2005, 22:25

Luuk je script werkt perfect.

Ik heb het inmiddels op het goede forum gedraait meteen alles weg :thumb:

Er zit echter nog steed een foutje in de update van de datum, het ip schijnt nu helemaal goed te zijn maar de datum update soms wel en dan weer niet.
Als je er nog eens naar wil kijjken als je zin hebt :wink:

LINKJE hoe het eruit ziet na het legen van de tabel en naar het functions_user_viewed_posts.php bestand zoals ik het gebruik.

Ric

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 25 jan 2005, 16:17

Dus als een bericht 1x bekeken is staat het niet goed, bij de 2e keer (of erna) wel. Moet de fout dus zitten bij de INSERT INTO.
Probeer eens door

Code: Selecteer alles

' . time() . '
te veranderen in

Code: Selecteer alles

" . time() . "
Een ander verschil kan ik niet zien tussen de update en de insert into querrie.
Afbeelding

maico
Berichten: 562
Lid geworden op: 04 jan 2004, 18:26

Bericht door maico » 25 jan 2005, 17:19

Soms is het vanaf bericht 1 ookal goed en bij een ander lid weer niet dat is nu juist het vage aanhet verhaal, bij de een goed en bij de ander maar half werk :lol:

Maar ik heb het even veranderd en zoals het zich nu laat aan zien werkt het.
Althans bij de 5 mensen die nu online waren.
Mocht het niet helmaal goed zijn hoor je het wel

Bedankt maar weer met probleempje

Gesloten