Avatar billede repox Seniormester
15. maj 2003 - 12:48 Der er 5 kommentarer og
1 løsning

Forskellige resultater, hvorfor ?

Efter at have sat og eksperimenteret med php og mysql, for ligesom at se hvor indviklet jeg kan gøre tingene for mig selv, er jeg faldet over en lille ting som jeg synes er fuldstændig uforståelig, men som der sikkert er andre der kan forklare mig!

Et eksempel på noget jeg prøvede!
// eks. 1
$felt = mysql_result("mysql_query("SELECT * FROM table WHERE id='$enværdi'")", 0, "felt");

Ovenstående virkede efter hensigten, og selvfølgelig prøver jeg at se hvor indviklet jeg kan gøre det og falder så over dette:

// eks. 2
while($row = mysql_fetch_array("mysql_query("SELECT * FROM table")")) {
echo $row['felt'].'<br>';
}

Dette giver mig det første resultat, et undeligt antal gange.

Hvis jeg sidder og kigger på det, så er det i mit hoved præcis det samme som at skrive:

// eks. 3
$query = mysql_query("SELECT * FROM table");
while($row = mysql_fetch_array($query)) {
echo $row['felt'].'<br>';
}

men tydeligvis tager jeg fejl! Min egen konklusion er at med eks. 2 på en måde 'nulstiller' mysql forespørgelsen og derefter starter forfra, hele tiden. Men burde den så ikke gøre det samme med eks. 3 ?

Undrer mig bare...
Avatar billede erikjacobsen Ekspert
15. maj 2003 - 12:53 #1
eks 2 laver en ny SELECT i hvert gennemløb. Derfor
Avatar billede erikjacobsen Ekspert
15. maj 2003 - 12:54 #2
eks 2 mener du selvfølgelig som
while($row = mysql_fetch_array(mysql_query("SELECT * FROM table"))) {
        echo $row['felt'].'<br>';
}
Avatar billede repox Seniormester
15. maj 2003 - 12:59 #3
ahhh... i see... :)
Okay! :) Mange tak... Du smider bare et svar... :)
Avatar billede jakoba Nybegynder
15. maj 2003 - 13:03 #4
linien nedenfor:
$felt = mysql_result("mysql_query("SELECT * FROM table WHERE id='$enværdi'")", 0, "felt");
burde ikke virke efter nogensomhelst hensigt

$felt = mysql_result("
det "-tegn der står der markerer begyndelsen af en streng
                      mysql_query("
det næste " tegn her markerer afslutningen af den streng.
                                  SELECT * FROM table WHERE id='$enværdi'")", 0, "felt");
og resten af linie skulle dermed give en php scriptfejl, da der hverken er et , til at faslutte den parameter, eller en operator der kunne gøre det til et rengestykke.

så jeg tror simpelthen ikke på din udtalelse om at det virker.

mvh JakobA
Avatar billede erikjacobsen Ekspert
15. maj 2003 - 13:05 #5
Skrivefejl, jakoba :)
Avatar billede repox Seniormester
15. maj 2003 - 13:09 #6
jakoba... så lad os da være lidt pernitten...
Fair nok, anførselstegnene skulle ikke have været der, det gik også lidt stærkt det jeg skulle skrive, men den korrekte syntaks er naturligvis:
$felt = mysql_result(mysql_query("SELECT * FROM table WHERE id='$enværdi'"), 0, "felt");

så'n...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

IT-JOB

Forsknings-, Uddannelses- og Digitaliseringsministeriet

Vil du spille en central rolle som systemforvalter i et samfundskritisk it-system?

Capgemini Danmark A/S

Client Partner

Jyske Bank

AI-udvikler

Netcompany A/S

Test Consultant