/ 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
Problemer med SQL udtræk
Fra : belial


Dato : 04-03-05 11:43

Jeg programmerer normalt i ASP men har en opgave, som skal løses med
PHP. Ergo er jeg helt blank inden for dette område. Jeg har fået lavet
et SQL kald til MySQL databasen, men får en underlig fejlmeddelelse. SQL
strengen er:

$sql = mysql_query("SELECT * FROM resultater WHERE resultater_navn LIKE
'%".$_GET["soegning"]."%' AND resultater_kalenderid = '958' ");

Fejlen jeg får er: Kunne ikke udføre (Resource id #2) fra databasen: You
have an error in your SQL syntax near 'Resource id #2' at line 1

Prøver jeg at skrive SQL sætningen får jeg bare "Resource id #2"
efterfuldt af fejlmeddelelsen.

Problemet er bl.a., at jeg laver en remote connection til databasen og
jeg har ingen muligheder for at se, hvad der rent faktisk ligger i
databasen. Jeg har bare navnet på nogle at de tabeller der ligger i
databasen.

Er der nogen der kan hjælpe mig videre?


 
 
Michael Rasmussen (04-03-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 04-03-05 12:04

On Fri, 04 Mar 2005 11:43:25 +0100, belial wrote:

>
> $sql = mysql_query("SELECT * FROM resultater WHERE resultater_navn LIKE
> '%".$_GET["soegning"]."%' AND resultater_kalenderid = '958' ");
>
Er resultater_kalenderid en string? Hvis det er en decimal, skal du udlade
' '. resultater_kalendarid = 958.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


belial (04-03-2005)
Kommentar
Fra : belial


Dato : 04-03-05 12:09


> Er resultater_kalenderid en string? Hvis det er en decimal, skal du udlade
> ' '. resultater_kalendarid = 958.
>

Tak for hurtigt svar.

Det har jeg prøvet at det giver helt den samme fejl. Jeg har også prøvet
helt at udlade AND resultater_kalenderid = '958', men det giver stadig
helt den samme fejl.


Peter Brodersen (04-03-2005)
Kommentar
Fra : Peter Brodersen


Dato : 04-03-05 12:54

On Fri, 04 Mar 2005 12:03:54 +0100, Michael Rasmussen <mir@miras.org>
wrote:

>Er resultater_kalenderid en string? Hvis det er en decimal, skal du udlade
>' '. resultater_kalendarid = 958.

Det gør ingen forskel i MySQL.

--
- Peter Brodersen

Jacob Atzen (04-03-2005)
Kommentar
Fra : Jacob Atzen


Dato : 04-03-05 12:33

On 2005-03-04, belial <666DIESPAMMERSWINE@esenet.dk> wrote:
> $sql = mysql_query("SELECT * FROM resultater WHERE resultater_navn LIKE
> '%".$_GET["soegning"]."%' AND resultater_kalenderid = '958' ");
>
> Fejlen jeg får er: Kunne ikke udføre (Resource id #2) fra databasen: You
> have an error in your SQL syntax near 'Resource id #2' at line 1
>
> Prøver jeg at skrive SQL sætningen får jeg bare "Resource id #2"
> efterfuldt af fejlmeddelelsen.

[snip]
> Er der nogen der kan hjælpe mig videre?

Måske kan følgende inspirere dig:

<http://php-faq.dk/index.php/Hvorfor_f%E5r_jeg_%22Warning:_supplied_argument_is_not_a_valid_MySQL_result_resource%22>

Ellers prøv at vise lidt mere kode. Jeg kan i alt fald ikke gætte
problemet ud fra din beskrivelse.

--
Med venlig hilsen
- Jacob Atzen

belial (04-03-2005)
Kommentar
Fra : belial


Dato : 04-03-05 12:37


> Ellers prøv at vise lidt mere kode. Jeg kan i alt fald ikke gætte
> problemet ud fra din beskrivelse.

Her er hele koden:

$sql = mysql_query("SELECT * FROM resultater WHERE resultater_navn LIKE
'%".$_GET["soegning"]."%' AND resultater_kalenderid = '958' ");

// echo $sql;

$result = mysql_query($sql);

if (!$result) {
echo "Kunne ikke udføre ($sql) fra databasen: " . mysql_error();
exit;
}

if (mysql_num_rows($result) == 0) {
echo "Ingen rækker fundet, intet at skrive";
exit;
}

while ($row = mysql_fetch_assoc($result)) {
echo $row["resultater_navn"];
echo $row["resultater_alder"];
echo $row["resultater_klub"];
}

mysql_free_result($result);

?>


Kristian Thy (04-03-2005)
Kommentar
Fra : Kristian Thy


Dato : 04-03-05 15:23

belial wrote:
> Her er hele koden:
>
> $sql = mysql_query("SELECT * FROM resultater WHERE resultater_navn LIKE
> '%".$_GET["soegning"]."%' AND resultater_kalenderid = '958' ");
>
> // echo $sql;
>
> $result = mysql_query($sql);
[...]

Du kalder mysql_query to gange på samme. Det er en dårlig ide - for $sql
er nemlig en resource, ikke en tekststreng (og den er tilsyneladende
resource id# 2 at dømme ud fra OP).

Prøv med $result = $sql; i stedet eller brug bare $sql i stedet for
$result længere nede.

\\kristian
--
Thomas Madsens fremragende guide til sikring af Windows:
http://home18.inet.tele.dk/madsen/windows/tjenester/

belial (07-03-2005)
Kommentar
Fra : belial


Dato : 07-03-05 08:31

> Du kalder mysql_query to gange på samme. Det er en dårlig ide - for $sql
> er nemlig en resource, ikke en tekststreng (og den er tilsyneladende
> resource id# 2 at dømme ud fra OP).
>
> Prøv med $result = $sql; i stedet eller brug bare $sql i stedet for
> $result længere nede.

Det var lige det der skulle til! Tak for hjælpen.


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste