WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   SQL id=id (https://www.wn.se/forum/showthread.php?t=1039614)

FredrikLund 2009-12-15 10:44

SQL id=id
 
(Hoppas att det är rätt tråd.)

Jag kan väldigt lite om SQL och php. Hoppas att jag kan få hjälp med denna fråga:

Jag vill hämta information från ett extra fält i WP-databas och visa den på "enskilt inlägg".

Nått i stil med:
"SELECT * FROM wp_tabell WHERE id = ['id']";

Men det var inte så enkelt som raden ovan. Hur skriver man SQL-koden?

Om någon förstår frågan och kan hjälpa mig blir jag tacksam.

Westman 2009-12-15 10:49

Jag kan inget om WP i sig men detta kanske kan hjälpa dig:
"SELECT * FROM wp_tabell WHERE id = "+$id;

Och $id är alltså en variabel som innehåller id:et på den rad du letar efter.

mephisto73 2009-12-15 11:53

$row = $wpdb->get_row("SELECT * FROM wp_tabell WHERE id = '$id'");

eliasson 2009-12-15 15:22

Citat:

Ursprungligen postat av Westman (Inlägg 20335598)
"SELECT * FROM wp_tabell WHERE id = "+$id;

Och $id är alltså en variabel som innehåller id:et på den rad du letar efter.

Citat:

Ursprungligen postat av mephisto73 (Inlägg 20335612)
$row = $wpdb->get_row("SELECT * FROM wp_tabell WHERE id = '$id'");

Don't forget to sanitize!

Läs mer:
http://php.net/manual/en/function.my...ape-string.php (mysql_real_escape_string)
http://www.php.net/manual/en/pdostatement.bindparam.php (bindParam)

Exploits of a mom:
http://imgs.xkcd.com/comics/exploits_of_a_mom.png

FredrikLund 2009-12-15 16:02

Citat:

Ursprungligen postat av eliasson (Inlägg 20335654)

Den var bra!

Citat:

$row = $wpdb->get_row("SELECT * FROM wp_tabell WHERE id = '$id'");
Ser ut att fungera.

Då jag är helt lost på detta la jag till dessa rader:

Citat:

$resultat = mysql_query($hamta) or die("Funkar inte!");

while($rad = mysql_fetch_array($resultat))

{ print($rad["fält"]); }
Då får jag "Funkar inte", alltså kan jag inte lägga till dessa rader. Är smått desperat. Hur får jag den att skriva ut? Mitt första expriment med id = id fick jag den till att skriva ut alla tusen rader. När jag begränsar raderna till en, funkar det inte.

eliasson 2009-12-15 16:16

Kod:

$row = $wpdb->get_row("SELECT * FROM wp_tabell WHERE id = '$id'");
Citat:

Ursprungligen postat av FredrikLund (Inlägg 20335665)
Ser ut att fungera.

Det räcker. Nu har du värdena i $row, t ex $row['din_kolumn_i_wp_tabell'];

FredrikLund 2009-12-15 17:11

Citat:

Ursprungligen postat av eliasson (Inlägg 20335668)
Det räcker. Nu har du värdena i $row, t ex $row['din_kolumn_i_wp_tabell'];

Ber om ursäkt för min kunskaps nivå. Men jag får inte till det.

Om jag skriver

echo($row['falt']);

får jag detta meddelande
Citat:

Cannot use object of type stdClass as array
Vad gör jag för fel?

KarlRoos 2009-12-15 17:25

Citat:

Ursprungligen postat av FredrikLund (Inlägg 20335679)
Ber om ursäkt för min kunskaps nivå. Men jag får inte till det.

Om jag skriver

echo($row['falt']);

får jag detta meddelande
Citat:

Cannot use object of type stdClass as array
Vad gör jag för fel?

stClass = Standard Class. Det är alltså ett objekt.

Du kommer istället åt värdet "falt" som följande:

$row->falt;

FredrikLund 2009-12-15 17:36

Citat:

Ursprungligen postat av KarlRoos (Inlägg 20335682)
$row->falt;

Ett stort tack till alla som hjälpt mig med att få rätsida med koden. Har suttit i två hela dagar och mekkat. Lättnanden var total när rätt värden dök upp.

Jättetack!

Fredrik

mephisto73 2009-12-15 21:21

Vill du ha ut det som en traditionell associative array lägger du till ARRAY_A på slutet:

$row = $wpdb->get_row("SELECT * FROM wp_tabell WHERE id = '$id'", ARRAY_A);


Alla tider är GMT +2. Klockan är nu 01:34.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson