Hallo.
ik heb een database met een tabel genaamd "pagina" die weer bestaat uit de volgende 2 velden :
- omschrijving
- titel
er is echter ook een 3de veld in de tabel pagina genaamd "combi" en deze bestaat uit omschrijving + titel.
door een domme fout heb ik heel het combi veld leeg gemaakt en aangezien de tabel bestaat uit meer dan 5000 items is het niet te doen om alles handmatig aan te passen.
Nu wil ik dit graag mbv php en mysql oplossen en ben reeds bezig geweest met een script.
het is de bedoeling dat alle velden uit de database worden gehaald en stuk voor stuk gecontroleerd, samengevoegd en geupdate worden zodat daarna automatisch het combi veld word aangemaakt.
ik hoop dat ik een beetje duidelijk ben. Dit is de code die ik gemakt heb, echter werkt hij dus niet...hij geeft geen foutmeldingen, maar geeft gewoonweg niets weer.
<?php
if( isset($_POST['submit']) )
{
ini_set('display_errors',1);
error_reporting(E_ALL);
/* Connect to the database: */
mysql_pconnect("****","****","****")
or die("ERROR: Could not connect to database!");
mysql_select_db("****");
$res = mysql_query("SELECT * FROM page");
while ($row = mysql_fetch_assoc($res))
{
/* velden: */
$page_id = $row['page_id'];
$omschrijving = addslashes( $row['omschrijving']);
$titel = addslashes( $row['titel']);
/* haal alle woorden eruit: */
preg_match_all("/(\b[\w+]+\b)/",$omschrijving,$words1);
preg_match_all("/(\b[\w+]+\b)/",$titel,$words2);
$words = array_merge($words1, $words2);
/* doorzoek alle velden op woorden en voeg ze toe in de database: */
for ($i = 0; isset($words[$i]); $i++)
{
for ($j = 0; isset($words[$i][$j]); $j++)
{
/* bestaat het huidige woord al ? */
$cur_word = addslashes( strtolower($words[$i][$j]) );
$result = mysql_query("SELECT word_id FROM word
WHERE word_word = '$cur_word'");
$row = mysql_fetch_array($result);
if( $row['word_id'] )
{
/* zo ja, gebruik het oude word_id: */
$word_id = $row['word_id'];
}
else
{
/* zo nee,maak een nieuwe: */
mysql_query("INSERT INTO word (word_word) VALUES (\"$cur_word\")");
$word_id = mysql_insert_id();
}
/* voeg het aantal keer dat een woord voorkomt toe in de database: */
mysql_query("INSERT INTO occurrence (word_id,page_id)
VALUES ($word_id,$page_id)");
}
}
}
}
}
?>
het insert gedeelte etc klopt, alleen zoek ik nu dus een goede manier om elk item (id) op te halen uit de database en dus voor elke regel het combiveld te genereren en te inserten in de database.
kan dit met een while lus of moet ik dan iets totaal anders doen ?
ideeen, suggesties, tips etc zijn echt allemaal van harte welkom
1.386 views