---
title: "Hjälp med SQL-fråga!!?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/129055-hjälp-med-sql-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Guldstrand"
published: "2005-05-29T15:56:56.000Z"
updated: "2005-05-29T19:54:47.000Z"
replies: 18
views: 479
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/databaser-sql/129055-hjälp-med-sql-fråga"
---

# Hjälp med SQL-fråga!!?

## #1 — Guldstrand, 2005-05-29T15:56Z

Vad är det för fel på denna fråga..

```php
// TIPSARE - START
$res = mysql_query("SELECT namn FROM tipsare WHERE id=$user[tipsare] LIMIT 1") or sqlerr();
if (mysql_num_rows($res) == 1)
{
$arr = mysql_fetch_assoc($res);
$tipsare = "$arr[namn]";
}
// TIPSARE - END
```

Detta felet får jag när jag försöker visa sidan:

> SQL Error
> You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1

Har skapat en ny tabell (tipsare) i min databas med id och namn.

Typiskt när man äntligen försöker göra ett eget script, så får man en massa fel.  :(

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

## #2 — oHLLe, 2005-05-29T16:15Z

Hur ser frågan ut om du skriver ut den? Det blir antagligen fel vid id=$user\[tipsare\]

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

## #3 — Guldstrand, 2005-05-29T16:18Z

> **oHLLe skrev:**
>
> Hur ser frågan ut om du skriver ut den? Det blir antagligen fel vid id=$user\[tipsare\]

För att visa "Tipsare" har jag gjort såhär:

```php
//  TIPSARE - START
 if ($user["namn"])
print("<tr><td class=rowhead>Tipsad av</td><td align=left>$user[namn]</td></tr>\n");
// TIPSARE - END
```

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

## #4 — oHLLe, 2005-05-29T16:20Z

Om du kör 

```php
echo "SELECT namn FROM tipsare WHERE id=$user[tipsare] LIMIT 1";
```

 innan du kör frågan mot databasen. Vad får du för utskrift?

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

## #5 — Guldstrand, 2005-05-29T16:24Z

> **oHLLe skrev:**
>
> Om du kör 
>
> ```php
> echo "SELECT namn FROM tipsare WHERE id=$user[tipsare] LIMIT 1";
> ```
>
>  innan du kör frågan mot databasen. Vad får du för utskrift?

Hur menar du då?  :r

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

## #6 — spango, 2005-05-29T16:33Z

Han menar att du ska skriva ut SQL-frågan som du skickar till databasen, eftersom den ser rätt ut men uppenbarligen blir fel, på något sätt.

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

## #7 — Peeer, 2005-05-29T16:38Z

SQL-frågor hör hemma i SQL-forumet, inte PHP!

Tråden flyttas trån PHP!

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

## #8 — aasah, 2005-05-29T16:43Z

Alltså byt ut:

```php
$res = mysql_query("SELECT namn FROM tipsare WHERE id=$user[tipsare] LIMIT 1") or sqlerr();
```

mot:

```php
$sql = "SELECT namn FROM tipsare WHERE id=$user[tipsare] LIMIT 1";
echo $sql;
$res = mysql_query($sql) or sqlerr();
```

För då ser du hur frågan som skickas till databasen ser ut med värdena från variablerna istoppade.

OM databasen förväntar sig en siffra vid id och $user\[tipsare\] är ett namn, så blir det tvärstopp! Är det månne det som är problemet? :q

En annan möjlighet med MySQL (i vart fall) är om du har döpt kolumnen till ID tex så kan du inte sätta id. Dvs stor/liten bokstav spelar roll!

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

## #9 — Guldstrand, 2005-05-29T16:43Z

> **spango skrev:**
>
> Han menar att du ska skriva ut SQL-frågan som du skickar till databasen, eftersom den ser rätt ut men uppenbarligen blir fel, på något sätt.

Det har jag förstått.. ;)

Men **var** och **hur** ska jag skriva "echo-koden"? :r

```php
// TIPSARE - START
$res = mysql_query("SELECT namn FROM tipsare WHERE id=$user[tipsare] LIMIT 1") or sqlerr();
if (mysql_num_rows($res) == 1)
{
$arr = mysql_fetch_assoc($res);
$tipsare = "$arr[namn]";
}
// TIPSARE - END
```

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

## #10 — aasah, 2005-05-29T16:44Z

Guldstrand, läs mitt inlägg ovanför ditt!!!

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

## #11 — Guldstrand, 2005-05-29T17:07Z

> **aasah skrev:**
>
> Guldstrand, läs mitt inlägg ovanför ditt!!!

Du måste ha postat samtidigt som mig.  :e 

Nu ser det ut såhär

```php
// TIPSARE - START
$sql = "SELECT namn FROM tipsare WHERE id=$user[tipsare] LIMIT 1";
echo $sql;
$res = mysql_query($sql) or sqlerr();
if (mysql_num_rows($res) == 1)
{
$arr = mysql_fetch_assoc($res);
$tipsare = "$arr[namn]";
}
// TIPSARE - END
```

Det enda som händer, är att "SELECT namn FROM tipsare WHERE id= LIMIT 1" skrivs ut ovanför SQL-Error.

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

## #12 — Josef, 2005-05-29T17:13Z

Du har inget värde i din $user\[tipsare\]-variabel.

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

## #13 — aasah, 2005-05-29T17:17Z

> **Guldstrand skrev:**
>
> ... Det enda som händer, är att "SELECT namn FROM tipsare WHERE id= LIMIT 1" skrivs ut ovanför SQL-Error.

Och där har du ditt fel, id får ju inget värde!!!  :o Skriv så här:

```php
$sql = "SELECT namn FROM tipsare WHERE id=".$user["tipsare"]." LIMIT 1";
```

 Hjälpte det? Oftast funkar det inte med array-värden mitt i en sträng...

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

## #14 — Guldstrand, 2005-05-29T17:30Z

Jag testade att ändra allt.

```php
// TIPSARE - START
$sql = "SELECT tipsare FROM users WHERE id=".$user["tipsare"]." LIMIT 1";
echo $sql;
$res = mysql_query($sql) or sqlerr();
if (mysql_num_rows($res) == 1)
{
$arr = mysql_fetch_assoc($res);
$tipsare = "$arr[tipsare]";
}
// TIPSARE - END
```

Givetvis har jag skapat en ny tabell (tipsare) i users. ;)

På registreringssidan finns...

```php
<tr><td align="right" class="heading">Tipsad av:</td><td align=left><input type="text" size="20" name="tipsare" /> * under utveckling</td></tr>
```

"Tipsaren" sparas i tabellen (tipsare) utan problem, men när jag ska visa en användares "profil" där jag har valt att visa "tipsaren" får jag ett SQL Error.

> SQL Error
> You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1

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

## #15 — Guldstrand, 2005-05-29T18:31Z

> **aasah skrev:**
>
> > **Guldstrand skrev:**
> >
> > ... Det enda som händer, är att "SELECT namn FROM tipsare WHERE id= LIMIT 1" skrivs ut ovanför SQL-Error.
>
> Och där har du ditt fel, id får ju inget värde!!!  :o Skriv så här:
>
> ```php
> $sql = "SELECT namn FROM tipsare WHERE id=".$user["tipsare"]." LIMIT 1";
> ```
>
>  Hjälpte det? Oftast funkar det inte med array-värden mitt i en sträng...

Nej, det fungerade inte.

Har fortfarande samma "SQL Error"..  :(

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

## #16 — aasah, 2005-05-29T18:56Z

> **Guldstrand skrev:**
>
> På registreringssidan finns...
>
>
> ```php
> <tr><td align="right" class="heading">Tipsad av:</td>
>     <td align=left><input type="text" size="20" name="tipsare" /> * under utveckling</td></tr>
> ```

Hur hamnar detta värde i $user\["tipsare"\]? Skickar du formen/inputfältet med POST eller GET? Förmodligen är det här felet ligger.

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

## #17 — Guldstrand, 2005-05-29T19:05Z

> **aasah skrev:**
>
> > **Guldstrand skrev:**
> >
> > På registreringssidan finns...
> >
> >
> > ```php
> > <tr><td align="right" class="heading">Tipsad av:</td>
> >     <td align=left><input type="text" size="20" name="tipsare" /> * under utveckling</td></tr>
> > ```
>
> Hur hamnar detta värde i $user\["tipsare"\]? Skickar du formen/inputfältet med POST eller GET? Förmodligen är det här felet ligger.

Nej, jag tror inte det är det som är problemet.
Fältet "tipsare" sparas i databasen utan problem när en användare registrerar sig på sida.

Problemet är fortfarande när jag ska hämta informationen från tabellen och **visa** namnet på tipsaren.
(Svårt att förklara.)

När jag kommenterade "//" funktionen "Tipsare" så fungerade sidan som den skulle, så det måste vara något fel på sql-frågan.

```php
// TIPSARE - START
$res = mysql_query("SELECT tipsare FROM users WHERE id=$user[tipsare] LIMIT 1") or sqlerr();
if (mysql_num_rows($res) == 1)
{
$arr = mysql_fetch_assoc($res);
$tipsare = "$arr[tipsare]";
}
// TIPSARE - END
```

Detta använder jag för att visa "tipsaren"

```php
if ($user["tipsare"])
print("<tr><td class=rowhead>Tipsad av</td><td align=left>$tipsare</td></tr>\n");
```

Har ändrat fram och tillbaka, men inget verkar fungera.  :(

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

## #18 — aasah, 2005-05-29T19:42Z

Guldstrand, ditt fel är följande:

> **Guldstrand skrev:**
>
> ...Det enda som händer, är att "SELECT namn FROM tipsare WHERE id= LIMIT 1" skrivs ut ovanför SQL-Error.

Eller hur? :q

Skälet till att det blir fel är att din tilldelning inte funkar, närmare bestämt 'WHERE id= ' Lika med vaddå? :q Ingenting alls! Av detta framgår att $user\["tipsare"\] antingen inte är satt eller har fått värdet "" (tomma strängen). Alltså får du leta rätt på var $user\["tipsare"\] får sitt värde. Det är någon vajsing där!

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

## #19 — Guldstrand, 2005-05-29T19:54Z

> **aasah skrev:**
>
> Guldstrand, ditt fel är följande:
>
>
> > **Guldstrand skrev:**
> >
> > ...Det enda som händer, är att "SELECT namn FROM tipsare WHERE id= LIMIT 1" skrivs ut ovanför SQL-Error.
>
> Eller hur? :q
> 
> Skälet till att det blir fel är att din tilldelning inte funkar, närmare bestämt 'WHERE id= ' Lika med vaddå? :q Ingenting alls! Av detta framgår att $user\["tipsare"\] antingen inte är satt eller har fått värdet "" (tomma strängen). Alltså får du leta rätt på var $user\["tipsare"\] får sitt värde. Det är någon vajsing där!

Verkar som att det fungerar nu.  :birp

Ändrade till "SELECT namn FROM tipsare WHERE id=**tipsare** LIMIT 1"

För att visa "tipsaren"..

```php
//  TIPSARE - START
if ($user["tipsare"])
print("<tr><td class=rowhead>Tipsad av</td><td align=left>$user[tipsare]</td></tr>\n");
// TIPSARE - END
```

Det var tydligen lättare än vad jag trodde..  :r 

Tack för hjälpen alla som har försökt.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/129055-hjälp-med-sql-fråga
