Avatar billede reffo Nybegynder
25. juli 2005 - 20:56 Der er 10 kommentarer og
1 løsning

Hive en værdi ud fra tabel med kun en query.

Hejhej

Nu har jeg i nogen tid rodet rundt med php uden egentlig at sætte mig ordentligt ind i mysql delen. Så det er jeg ikke så hård til.

Vil lige høre om det ikke er muligt at trække én enkelt værdi ud af en tabel ved at gøre sådan her:

$parent = mysql_query("SELECT `name` FROM `news` WHERE `id`='2' LIMIT 0,1") OR DIE (mysql_error());

Og så ligger den værdi fra cellen i variablen $parent, eller er man nødt til at gå rundt om mysql_fetch_array() og så derefter hente værdien med $parent[name]???
Avatar billede jaw Nybegynder
25. juli 2005 - 20:59 #1
$parent = mysql_query("SELECT `name` FROM `news` WHERE `id`='2' LIMIT 0,1") OR DIE (mysql_error());
$row = mysql_fetch_array($parent);

værdien ligger nu i $row['name'];

Men lige en lille bemærkning: Idet du sætter id = 2, overflødiggør du så ikke LIMIT? :)
Avatar billede arne_v Ekspert
25. juli 2005 - 21:01 #2
prøv:

$parent = mysql_result(mysql_query("SELECT `name` FROM `news` WHERE `id`='2' LIMIT 0,1"),0);
Avatar billede jaw Nybegynder
25. juli 2005 - 21:01 #3
Men for at svare helt, så bliver du nødt til at have mysql_fetch_array / row /assoc med.

Hvis du kun vil have X antal rækker ud, så brug LIMIT X.
Vil du have fra række X til række Y så er det LIMIT X, Y.
Avatar billede reffo Nybegynder
25. juli 2005 - 21:02 #4
Jo, det gør jeg, hehe, men det var fordi jeg prøvede på alle mulige måder at pejle mig ind på noget af det rigtige, og så glemte at slette :)

Men det er altså over hovedet ikke muligt at hente uden mysql_fetch_array()?
Avatar billede reffo Nybegynder
25. juli 2005 - 21:05 #5
Det dur ikke arne_v, desværre... Og tak jaw. Ligger du svar?
Avatar billede arne_v Ekspert
25. juli 2005 - 21:18 #6
følgende virker ellers fint hos mig:

<?php
$con = mysql_connect("localhost", "root", "");
mysql_select_db("Test", $con);
print mysql_result(mysql_query("SELECT COUNT(*) FROM T1", $con),0);
mysql_close($con);
?>
Avatar billede jaw Nybegynder
25. juli 2005 - 21:59 #7
Korrekt, jeg vil også mene, at Arne's løsning bør virke - i hvert fald med COUNT og så kan jeg ikke se hvorfor det ikke skulle med det andet.

Men om der så er forskel, performancemæssigt, om man bruger mysql_result eller én af de andre når selve query'en egentlig er den samme ved jeg ikke...

Jeg smider det som et svar, men kig lige på Arne's forslag igen, da han jo sådan set løser dit spørgsmål på den mest korrekte måde i forhold til dit spørgsmål :)
Avatar billede jaw Nybegynder
25. juli 2005 - 22:07 #8
Måske lige sige, at med Arne's forslag skal det udskrives som echo $parent; og ikke $parent['name']; og vil nok også kun virke ved udhentning af en enkelt værdi (felt) ?!
Avatar billede reffo Nybegynder
25. juli 2005 - 22:08 #9
Det fungerer det Arne har lavet. Mig der lige glemte at ændre nogle få infos... Min fejl. Tak begge to. Arne smider du svar?
Avatar billede arne_v Ekspert
25. juli 2005 - 22:12 #10
Man kan sætte et tredie argument på mysql_result som angiver gelt nummer.

Men hvis man har flere felter så er mysql_fetch_* altså smartere.

Og et svar.
Avatar billede reffo Nybegynder
25. juli 2005 - 22:14 #11
Ja, det ved jeg. Det har jeg os altid brugt, men også når jeg kun skulle hente en værdi hvilket jo er lidt af en omvej :)...

Endnu en gang tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester