Hallo,

Ik heb een probleem met het volgende.

Ik heb een tabel met de velden id(auto_increment), onderdeel(varchar,255), bedrag(decimal,10.2)
In deze tabel kunnen 10 rijen staan maar ook 2

In het veld onderdeel saat bv "Versnellingsbak hand-Versnellingsbak automaat" (zonder de ")
gescheiden door een -

Nu wil ik een array creeren waarin uit alle rijen het onderdeel komt.

De code die ik tot nu heb is het volgende maar heb al een heleboel geprobeerd ..

<?php
$rs = mysql_query("SELECT onderdeel FROM verzendkosten");
$a = array();
while($row = mysql_fetch_array($rs)) {
$b = array($a, $row[onderdeel]);
$c = explode('-', $b);
array_push($a, $b);
print_r($b);
}

?>

Tot nu toe een heleboel loops :-)
Beste oplossing: 1 veld = 1 waarde
Dus geen meerdere onderdelen per veld.
Liever 1000 rijen in je database dan 10 met daarin weer 10 andere onderdelen.

Dus database-opzet omgooien!
Wat je nu doet met explode() kan wel, maar is beunen.

Op de beunmanier:

<?php
$onderdelen = explode("-", $row['onderdelen']);
foreach($onderdelen as $onderdeel)
{
echo 'Deze rij bevat '.$onderdeel.' etc<br>';
}
?>

Dit moet dus in de while($row....)-loop.
Eddy E op 25/05/2013 14:59:03

Beste oplossing: 1 veld = 1 waarde
Dus geen meerdere onderdelen per veld.
Liever 1000 rijen in je database dan 10 met daarin weer 10 andere onderdelen.

Dus database-opzet omgooien!
Wat je nu doet met explode() kan wel, maar is beunen.

Op de beunmanier:

<?php
$onderdelen = explode("-", $row['onderdelen']);
foreach($onderdelen as $onderdeel)
{
echo 'Deze rij bevat '.$onderdeel.' etc<br>';
}
?>

Dit moet dus in de while($row....)-loop.


Hoi Eddy,

Klopt je hebt gelijk.

Je vorige oplossing heeft geholpen echter maakt ie er volgens mij geen array van waar ik wat mee kan.

Ik heb nu het volgende:

<?php
$rs = mysql_query("SELECT onderdeel FROM verzendkosten");
while($row = mysql_fetch_array($rs)) {
$onderdelen = explode("-", $row['onderdeel']);
foreach($onderdelen as $onderdeel)
{
print_r($onderdeel);
mysql_query("UPDATE menu_group_part SET verzendkosten ='$_POST[bedrag]' WHERE part NOT IN('".join("','", $onderdeel)."')");
}
}
?>

Hij maakt er nu net jes een lange rij namen van maar volgens mij niet bruikbaar in mijn Update query NOT IN

Dank vvor de vorige tip nog.
Bee

Reageren