/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mysql_query i PHP
Fra : Rander


Dato : 01-09-01 22:20

Kunne ikke lige finde ud af præcis hvilken gruppe dette hørte til i, så jeg
prøver begge...

Anyway, jeg har følgende i en php-fil:

$db = mysql_connect ("localhost", "user", "password");
mysql_select_db ("database", $db);
$records = mysql_query ("SELECT COUNT(*) FROM tabel");
$request = mysql_query ("SELECT Felt1, Felt2[...] FROM tabel");
echo $records;

Nu skulle $Records indeholde antallet af rækker i tabellen "tabel" i
databasen "database".

Men noget går galt: "echo $records" giver "Resource id #2"? Og hvis jeg
flytter linien med "$records = mysql_query..." ned under linien med
"$request = mysql_query..." bliver $records tildelt værdien
"Resource id #3"?!?

Hvad er det lige der gå galt? Jeg har siddet og gloet på det i 1½ time nu,
og kan absolut ikke se nogen grund til at det ikke skulle virke...?

Hvis jeg taster "SELECT COUNT(*) FROM tabel" i en mysql-prompt får jeg det
rigtige resultat, altså den fortæller hvor mange rækker der er i
tabellen...

XFUT dk.edb.internet.webdesign.serverside.php
--
Lars Rander, www.rander.dk ICQ#: 987520 ** Pil ikke ved min adresse **
Sjathelt og beskytter af det svage køn (udnævnt af diktator SEJ 5/6-99)

Det er nemt at beregne sine udgifter. Man tager bare sine
indtægter og lægger ti procent til. (Bing Crosby)


 
 
Christian Joergensen (01-09-2001)
Kommentar
Fra : Christian Joergensen


Dato : 01-09-01 22:37

Rander <ldNOSPAM@rander.dk> wrote:

> Kunne ikke lige finde ud af præcis hvilken gruppe dette hørte til i, så
> jeg prøver begge...

deiws.php er nok det mest rigtige :)

> $db = mysql_connect ("localhost", "user", "password");
> mysql_select_db ("database", $db);
> $records = mysql_query ("SELECT COUNT(*) FROM tabel");
> $request = mysql_query ("SELECT Felt1, Felt2[...] FROM tabel");
> echo $records;

> Nu skulle $Records indeholde antallet af rækker i tabellen "tabel" i
> databasen "database".

Nej. $records indeholder som du selv skriver ...

> Men noget går galt: "echo $records" giver "Resource id #2"?

.... et resource id. Det kan du bruge sammen med flg. funktioner:

mysql_data_seek(),
mysql_db_name(),
mysql_fetch_array(),
mysql_fetch_assoc(),
mysql_fetch_field(),
mysql_fetch_lengths(),
mysql_fetch_object(),
mysql_fetch_row(),
mysql_field_flags(),
mysql_field_name(),
mysql_field_len(),
mysql_field_seek(),
mysql_field_table(),
mysql_field_type(),
mysql_num_fields(),
mysql_num_rows(),
mysql_result(),
eller
mysql_tablename()

Sakset fra <http://php.net/manual/en/resource.php>

Ex:

$records = mysql_query ("SELECT COUNT(*) FROM tabel");
print "Der er ".mysql_result($records, 0)." records i databasen";

--
Christian Jørgensen / Due to Federal Budget problems we have been forced
http://www.razor.dk / to cut back on the number of users able to access
the system at one time. (namely none allowed....)


Rander (01-09-2001)
Kommentar
Fra : Rander


Dato : 01-09-01 22:59

Sat, 01 Sep 2001 23:37:06 +0200 brugte Christian Joergensen 54 linier på at
fortælle dette til dk.edb.internet.webdesign.serverside.php:

[...]
>> Nu skulle $Records indeholde antallet af rækker i tabellen "tabel" i
>> databasen "database".
>Nej. $records indeholder som du selv skriver ...
>> Men noget går galt: "echo $records" giver "Resource id #2"?
>... et resource id. Det kan du bruge sammen med flg. funktioner:
> mysql_data_seek(),
> mysql_db_name(),
[...]

Øhm... Jeg vil ikke engang FORSØGE at påstå jeg fortår det, men det virker
da. Ikke at jeg kan se den store logik i det (det andet virkede jo fint
direkte fra en mysql-prompt), men sådan er der jo så meget...
--
Lars Rander, www.rander.dk ICQ#: 987520 ** Pil ikke ved min adresse **
Sjathelt og beskytter af det svage køn (udnævnt af diktator SEJ 5/6-99)

Rude knust under rengøring af medarbejder. (Skadesanmeldelse)


Lars (02-09-2001)
Kommentar
Fra : Lars


Dato : 02-09-01 11:38


> > Kunne ikke lige finde ud af præcis hvilken gruppe dette hørte til i, så
> > jeg prøver begge...
>
> deiws.php er nok det mest rigtige :)

eller dk.edb.database



Christian Joergensen (02-09-2001)
Kommentar
Fra : Christian Joergensen


Dato : 02-09-01 19:33

Lars <ledj@DONTSPAMprivat.dk> wrote:

>> > Kunne ikke lige finde ud af præcis hvilken gruppe dette hørte til i, så
>> > jeg prøver begge...
>>
>> deiws.php er nok det mest rigtige :)
>
> eller dk.edb.database

Nej. Spørgsmålet var ren PHP karakter - En SQL mand ville næppe have været
til meget hjælp.

--
Christian Jørgensen / Yes, yes, its called a desgin limitation
http://www.razor.dk /


Niels Andersen (02-09-2001)
Kommentar
Fra : Niels Andersen


Dato : 02-09-01 08:00

"Rander" <ldNOSPAM@rander.dk> wrote in message
news:aejrm9.dlr.ln@rander.dk...
> $records = mysql_query ("SELECT COUNT(*) FROM tabel");
> $request = mysql_query ("SELECT Felt1, Felt2[...] FROM tabel");
> echo $records;

mysql_query returnerer en slags POINTER. En query giver nemlig ikke bare et
tal, heller ikke "SELECT COUNT(*)".

Prøv dette:

$result = mysql_query ("SELECT COUNT(*) antal FROM tabel");
$row = mysql_fetch_row($result);
$records = $row[0];

echo "<p>Der er $records rækker i tabellen.</p>\n";

echo "<table>\n";
echo "<tr><th>felt1</th><th>felt2</th></tr>\n";
$result = mysql_query ("SELECT Felt1, Felt2[...] FROM tabel");
while ($row = mysql_fetch_array) {
echo "<tr><td>{$row['felt1']}</td><td>{$row['felt2']}</td></tr>\n";
}
echo "</table>\n";

Der er to forskellige måder at gøre det på.
Første gang er jeg ligeglad med hvad felterne hedder (det ene felt har
alligevel ikke noget egentlig navn), og jeg henter kun én række (Jeg ved der
alligevel kun er en)

Næste gang henter jeg flere rækker (én af gangen), og det bliver til et
array med feltnavne som keys.

Prøv at evt. også at lave en var_dump eller print_r på $row i begge
tilfælle.

Og læs lidt mere i manualen. :)
Så vidt jeg husker er der eksempler, som svarer til ovenstående.

--
Mvh.

Niels Andersen



Rander (02-09-2001)
Kommentar
Fra : Rander


Dato : 02-09-01 13:02

Sun, 2 Sep 2001 09:00:21 +0200 brugte Niels Andersen 45 linier på at
fortælle dette til dk.edb.internet.webdesign.serverside.php:

[...]
>Og læs lidt mere i manualen. :)
>Så vidt jeg husker er der eksempler, som svarer til ovenstående.

Jeg HAVDE faktisk læst i manualen! mysql-manualen... Måske man skulle have
kigget i php-manualen istedet...

--
Lars Rander, www.rander.dk ICQ#: 987520 ** Pil ikke ved min adresse **
Sjathelt og beskytter af det svage køn (udnævnt af diktator SEJ 5/6-99)

Gud kommer egentlig fra Gudhjem. (Lars Henrik, 5 år)


Søg
Reklame
Statistik
Spørgsmål : 177506
Tips : 31968
Nyheder : 719565
Indlæg : 6408561
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste