<?
$tags = explode(";",$_POST['tags']);
$count = count($tags);
for ($i=0; $i<=$count; $i++)
{
$check = mysql_query("SELECT `tag` FROM `tags` WHERE `tag` = '".$tags[$i]."'") or die(mysql_error);
echo $tags[$i];
while($output = mysql_fetch_assoc($check))
{
$tel = mysql_real_escape_string(mysql_num_rows($check));
if ($tel > 0)
{
$articles = $output['articles'] . ";" . $_POST['ID'];
mysql_query("UPDATE `tags` SET articles='".$articles."' WHERE `tag` = '".mysql_real_escape_string($_POST['tags'])."'") or die(mysql_error);
}
else
{
$id = mysql_query("SELECT `ID` FROM `album` WHERE `album` = '".mysql_real_escape_string($_POST['album'])."' AND `band` = '".mysql_real_escape_string($_POST['album'])."' AND `auteur` = '".mysql_real_escape_string($_POST['auteur'])."'") or die(mysql_error);
while ($output = mysql_fetch_assoc($id))
{
$idoutput = $output['ID'];
echo $idoutput;
$tags = explode(";",$_POST['tags']);
$count = count($tags);
for ($i=0; $i<=$count; $i++)
{
mysql_query("INSERT INTO `tags` (tag,type,articles) VALUES ('".mysql_real_escape_string($tags[$i])."','".$type."','".$idoutput."')") or die(mysql_error());
}
}
}
?>
1.299 views
De volgende code is die van een tagsysteem - bij het invoeren van een review in de database is er een input 'tags' waarbij tags moeten worden ingegeven met een ";" tussen (bv.tag1;tag2;tag3). Dit is dus $_POST['tags']. Voor de tags heb ik een aparte table, waarin de naam van de tag komt te staan (field 'tag') en de ID van de review die getagd wordt (field 'articles'). Nu kan het dus zijn dat bij het invoeren van zo'n tag, de tag al bestaat. Of niet. Dat moet dus nagegaan worden voor elke tag apart, die uiteraard eerst moeten gescheiden worden door de explode() functie. Met de for loop wordt door de hele array geloopd, en met mysql_num_row() wordt gecontroleerd of de tag al dan niet bestaat. Zo ja, dan wordt de bestaande ID van de artikel(s) uit de database gehaald ($output['articles']), en met een tussenvoegsel ";" samen met het nieuwe artikel/review in de database gestoken. Als het nog niet bestaat, wordt simpelweg een nieuw record aangeboord. Het probleem is nu dsat het niet werkt: geen foutmelding of error, het artikel gaat integraal de database in - alleen in de tags table verandert niets. Hopenlijk kunnen jullie me helpen.
