expolde, maar vervolgens deleten
www.handigesoftware.nl een favorietenlijst gemaakt die wordt op de volgende manier opgeslagen in de database:
Voorbeeld: ;45;32;1;88;98
De waardes die tussen de ; zijn worden gefilterd door volgend script:
$wordChunks = explode(";", $favo_string);
for($i = 0; $i < count($wordChunks); $i++)
{
//nog wat code
}
Het probleem is dat wanneer iemand een favoriet eraf wilt halen dat ik dan het ID wel gedelete krijg tussen de 2 ; maar daarvan moet eigenlijk ook 1 ; gedelete worden. Het resultaat is nu al ik als voorbeeld de bovenste string neem en ik haal 32 en 1 weg dat ik dit krijg: ;45;;;88;98
Ik wil dus de 2 ; die teveel zijn ook gedelete hebben.
Heeft iemand enig idee hoe ik dat voor elkaar krijg?
Hieronder mijn code wanneer er een favoriet eraf moet: (er moet dus nog wat bij maar ik kom er niet uit)
$id_download = $_REQUEST['id'];
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$favo_string = $row['favo'];
}
$kompleet = '';
$wordChunks = explode(";", $favo_string);
for($i = 0; $i < count($wordChunks); $i++)
{
$id_download1 = $wordChunks[$i];
if ($id_download1 == $id_download)
{
}
else
{
$kompleet = $id_download1.';'.$kompleet;
}
}
$kompleet = ';'.$kompleet;
Ik hoop dat iemand een oplossing weet!
Alvast bedankt voor alle moeite.
Groeten
Ray
Ik heb voor mijn website Voorbeeld: ;45;32;1;88;98
De waardes die tussen de ; zijn worden gefilterd door volgend script:
$wordChunks = explode(";", $favo_string);
for($i = 0; $i < count($wordChunks); $i++)
{
//nog wat code
}
Het probleem is dat wanneer iemand een favoriet eraf wilt halen dat ik dan het ID wel gedelete krijg tussen de 2 ; maar daarvan moet eigenlijk ook 1 ; gedelete worden. Het resultaat is nu al ik als voorbeeld de bovenste string neem en ik haal 32 en 1 weg dat ik dit krijg: ;45;;;88;98
Ik wil dus de 2 ; die teveel zijn ook gedelete hebben.
Heeft iemand enig idee hoe ik dat voor elkaar krijg?
Hieronder mijn code wanneer er een favoriet eraf moet: (er moet dus nog wat bij maar ik kom er niet uit)
$id_download = $_REQUEST['id'];
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$favo_string = $row['favo'];
}
$kompleet = '';
$wordChunks = explode(";", $favo_string);
for($i = 0; $i < count($wordChunks); $i++)
{
$id_download1 = $wordChunks[$i];
if ($id_download1 == $id_download)
{
}
else
{
$kompleet = $id_download1.';'.$kompleet;
}
}
$kompleet = ';'.$kompleet;
Ik hoop dat iemand een oplossing weet!
Alvast bedankt voor alle moeite.
Groeten
Ray
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
while(strpos($favo_string, ';;') !== false)
{
$favo_string = str_replace(';;', ';', $favo_string);
}
?>
while(strpos($favo_string, ';;') !== false)
{
$favo_string = str_replace(';;', ';', $favo_string);
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn Wieringa
Hoeft niet in een class natuurlijk, kan in dit geval ook met losse functies.
Gewijzigd op 01/01/1970 01:00:00 door Baarr
Ik ga straks is even experimenteren.
Bedankt voor jullie reacties!
Lijtk me vrij logisch?
Kan gebeuren toch?, soms liggen de simpele dingen gewoon onder je neus, en kijken we eindelijk wel eens verder dan onze neus lang is ;)
Quote:
Dat doe je dan fout.die wordt op de volgende manier opgeslagen in de database:
Voorbeeld: ;45;32;1;88;98
Voorbeeld: ;45;32;1;88;98
Verschillende waardes sla je op in verschillende records. Doe je dat niet, dan heb je in 1 klap het hele idee van een relationele database om zeep en jouw database wordt zo snel als dikke stront door een trechter.
Ga normaliseren en maak een aparte tabel aan om deze gegevens in op te slaan.
Maargoed er is dus nog genoeg te doen :D