---
title: "Enkel funktion?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/162659-enkel-funktion"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "slow"
published: "2007-07-18T08:40:27.000Z"
updated: "2007-07-21T09:34:38.000Z"
replies: 5
views: 483
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/162659-enkel-funktion"
---

# Enkel funktion?

## #1 — slow, 2007-07-18T08:40Z

Hej!

Har denna lilla rad för att se om en viss kategori är vald. Isåfall ska den bocka i en checkbox. Men nu har jag gjort så att man kan välja flera val i checkboxarna. Och sparat resultatet i en array....

```php
if (!(strcmp("".$letters."","".$kategorier['id_kat'].""))) {echo "checked=\"checked\"";}
```

$letters innehåller ett innehåll på tex: 2,5,6,8

Så då skulle jag vilja höra om ni vet någon funktion som kollar om $letters innehåller idnr i $kategorier\['id_kat'\]?

strcmp kollar om den är lika med...men finns det för innehåller?

Har försökt med strpos men inte lyckats ;(

Permalänk: https://www.webforum.nu/p/162659

## #2 — itpastorn, 2007-07-18T10:27Z

Låt mig se om jag fattat detta rätt. $letters är en sträng med kommaseparerade siffror? $kategorier\['id_kat'\] är rätt och slätt en siffra?

I så fall skulle jag köra:

```php
if ( in_array( $kategorier['id_kat'], explode(',',$letters) ) ) {
     // matchat!
}
```

Permalänk: https://www.webforum.nu/p/2004523

## #3 — slow, 2007-07-18T10:44Z

Korrekt tänkt!

$letters kanske ser ut så här: 3, 5, 2,
Och $kategorier\['id_kat'\] så här: 5

Den markerar dock enbart en checkbox...så i detta fall skulle den markera kategorin med id 2...

Någon aning varför?

Permalänk: https://www.webforum.nu/p/2004528

## #4 — itpastorn, 2007-07-18T12:06Z

Om du visar mer kod så kanske det kan förklaras?

Har du testat att köra var_dump() på dina variabler efter varje operation?

Permalänk: https://www.webforum.nu/p/2004553

## #5 — slow, 2007-07-18T13:14Z

Självklart bjuder jag på mer kod :)

Här kommer hela sidan...

```php
<?php 
/* Hämta mail */
$db = new DB(); 
$db->query("SELECT * FROM ".DB_PREFIX."_newsletter WHERE id = ".$_GET['id']."");
$email = $db->next_record();

/* Kategorier */
$db1 = new DB(); 
$db1->query("SELECT * FROM ".DB_PREFIX."_newsletter_kategorier ORDER BY namnet ASC");

/* Formulär */
if ($_POST['save'])  {
$db3 = new DB();
$user = $_POST['user'];
$bockade = serialize($_POST['check']); //takes the data from a post operation...
$db3->query("UPDATE ".DB_PREFIX."_newsletter SET brev='$bockade' WHERE id = ".$_GET['id']."");
header("Location: ?load=newsletter&p=edit&id=".$_GET['id']."&s=j");
}
//$db3->close();
if ($_GET['s'] == 'j'){
$message = "Inställningarna är sparade"; } else {
$message = ""; }
?><form action="" method="post">
<table width="100%" border="0">
  <tr>
    <td width="50%" valign="top"><h3>E-post</h3>
    <?php echo $email['email'];?><br><?php 
	$brev=unserialize($email['brev']);
	
  foreach($brev as $letters)
   {
	  print $letters.', ';
   }	
	?></td>
    <td width="50%" valign="top"><h3>Nyhetsbrev</h3>
	<?php if ($message != NULL) { ?><div id="done"><?php echo $message ?></div><?php } ?>
    <?php while ($kategorier = $db1->next_record()) { ?>
    <p><input name="check[]" type="checkbox" id="check[]" value="<?php echo $kategorier['id_kat'];?>" <?php 
if ( in_array( $kategorier['id_kat'], explode(',',$letters) ) ) {
echo "checked=\"checked\"";
} 
?>> 
    <?php echo $kategorier['namnet'];?></p><?php } ?>
    <input type="hidden" name="user" id="user" value="<?php echo $email['id'];?>"/>
    <input type="submit" name="save" id="save" value="Spara" />
   <?php echo $bockade;?></label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>
```

Tar jag var_dump på $letters så får jag detta:
string(1) "2"

Vilket inte känns rätt....

Kör jag på $brev får jag detta:
array(3) { \[0\]=\>  string(1) "3" \[1\]=\>  string(1) "5" \[2\]=\>  string(1) "2" }
Vilket känns mer rätt...  :)

Sen gäller det bara att kunna jämföra denna array med kategorierna?

Tack för all hjälp föresten! Väldigt uppskattat...!

Permalänk: https://www.webforum.nu/p/2004565

## #6 — itpastorn, 2007-07-21T09:34Z

```php
foreach($brev as $letters)
   {
      print $letters.', ';
   }
```

$letters sätts till det sista array-värdet.

Permalänk: https://www.webforum.nu/p/2005218

---

Tråden på webben: https://www.webforum.nu/amne/php/162659-enkel-funktion
