---
title: "Skicka mysql resource till funktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/123032-skicka-mysql-resource-till-funktion"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Tinwëlint"
published: "2005-02-22T14:27:02.000Z"
updated: "2005-02-22T15:46:43.000Z"
replies: 2
views: 195
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/123032-skicka-mysql-resource-till-funktion"
---

# Skicka mysql resource till funktion

## #1 — Tinwëlint, 2005-02-22T14:27Z

Försöker göra en funktion som ska skriva ut länkar utifrån olika mysql-querys. Den ser ut så här:

```php
function createlinks($res) { //$res är en mysql_query
var_dump($res);

	if ($res = false) {
		echo "Det finns inga tävlingar på den tid eller plats som angivits.";
	}
	else {
		echo "<ul>\n";
		while ($result = mysql_fetch_array($res)) {
			echo ("<li><a href=\"/tresultat.php?id={$result['id']}\">{$result['header']} ({$result['date']})</a></li>\n");
		}
		echo "</ul>\n";
	}
}
```

och anropas såhär:

```php
	$results = mysql_query("SELECT * FROM results ORDER BY date LIMIT 10", DB);
	var_dump($results);
	createlinks($results);
```

 

Problemet är detta:

> **Servern skrev:**
>
> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/degerfors-afk.net/degerfors-afk.net/httpd.www/tresultat.php on line 14

 
(rad 14 är inuti funktionen createlinks)

Använde var_dump och kollade så att variabeln var densamma både innan och när den hade skickats till funktionen. Båda gångerna:

> **var_dump skrev:**
>
> resource(3) of type (mysql result)

 

Är det inte tillåtet att skicka mysql_queries på det här sättet eller vad är det frågan om??

r:
Kan tillägga att det fungerade utmärkt när jag kopierade while-satsen från funktionen och lade den där funktionen kallades annars, så det är inget fel på queryn.

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

## #2 — jepsO, 2005-02-22T15:20Z

Jag föreslår att du bara skickar själva textsträngen och gör din mysql_query i createlinks-funktionen, dvs

```php
function createlinks($sql) {
    $res = myqsl_query($sql); // or die ...
    if (mysql_num_rows($res) == 0) {
        echo "Det finns inga tävlingar på den tid eller plats som angivits.";
    }
    else {
        echo "<ul>\n";
        while ($result = mysql_fetch_array($res)) {
            echo ("<li><a href=\"/tresultat.php?id={$result['id']}\">{$result['header']} ({$result['date']})</a></li>\n");
        }
        echo "</ul>\n";
    }
}

$sql = "SELECT * FROM results ORDER BY date LIMIT 10";
createlinks($sql);
```

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

## #3 — Tinwëlint, 2005-02-22T15:46Z

Ja nu funkar det. När jag först prövade att bara skicka sql-strängen istället för queryn blev det ingen skillnad. När jag däremot ändrade min if-sats till ditt exempel:

```php
    if (mysql_num_rows($res) == 0) {
```

 
fungerade det.

Och det är inte konstigt med tanke på att jag hade skrivit:

if ($res = false)

och därmed tilldelat $res värdet false.

Jag glömmer alltid bort att det är skillnad på tilldelningen = och jämförelsen == i php.

Vad pinsamt  :r

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

---

Tråden på webben: https://www.webforum.nu/amne/php/123032-skicka-mysql-resource-till-funktion
