/ 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
Warning: mysql_fetch_array():
Fra : Christoffer


Dato : 08-04-05 20:24

Jeg er kommet til et problem som siger:

"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
resource in /customers/buur.info/buur.info/httpd.www/mdk/site/profil.php on
line 114"

Koden på profil.php hedder

$resultat = mysql_query("SELECT * FROM brugere WHERE id =
'".$_GET["id"]."'");

while ($raekke = mysql_fetch_array($resultat)){ <<< Linje
114
print $raekke["brugernavn"];
}

Det skal dertil siges at man kommer ind på siden fra
www.buur.info/mdk/site/profiler.php som henviser til siden på følgende måde

$query = mysql_query("SELECT id, brugernavn FROM bruger ORDER BY id DESC")
or print mysql_error();

while ($row = mysql_fetch_array($query)) {
print "<a
href='profil.php?id=".$row["id"]."'>".$row["brugernavn"]."</a><br>";
}


Fejlen er ?? Er langt fra god nok til selv at kunne udlede den




 
 
Martin (08-04-2005)
Kommentar
Fra : Martin


Dato : 08-04-05 23:44

Christoffer wrote:
> Jeg er kommet til et problem som siger:
>
> "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
> resource in /customers/buur.info/buur.info/httpd.www/mdk/site/profil.php on
> line 114"

> $resultat = mysql_query("SELECT * FROM brugere WHERE id =
> '".$_GET["id"]."'");
>
> while ($raekke = mysql_fetch_array($resultat)){ <<< Linje
> 114
> print $raekke["brugernavn"];

prøv at printe din sql sætning ud sådan her:
$sql = "SELECT * FROM brugere WHERE id = '".$_GET["id"]."'";
print $sql;

og se hvad der sker (men det er næsten sikkert det er $_GET["id"] der er tom

Benny Nissen (09-04-2005)
Kommentar
Fra : Benny Nissen


Dato : 09-04-05 12:06

Martin wrote:

> prøv at printe din sql sætning ud sådan her:
> $sql = "SELECT * FROM brugere WHERE id = '".$_GET["id"]."'";
> print $sql;

prøv med ' omkring id i stedet for ". Du starter jo strengen iden med ",
så id kommer inden i sql-strengen. Altså:

$sql = "SELECT * FROM brugere WHERE id = '".$_GET['id']."'";

--
Benny

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


Dato : 09-04-05 12:51

On 2005-04-09, Benny Nissen <news@bennynissen.dk> wrote:
> Martin wrote:
>
>> prøv at printe din sql sætning ud sådan her:
>> $sql = "SELECT * FROM brugere WHERE id = '".$_GET["id"]."'";
>> print $sql;
>
> prøv med ' omkring id i stedet for ". Du starter jo strengen iden med ",
> så id kommer inden i sql-strengen. Altså:
>
> $sql = "SELECT * FROM brugere WHERE id = '".$_GET['id']."'";

Det gør ingen forskel, 'id' og "id" er ækvivalente.

--
Med venlig hilsen
- Jacob Atzen

Benny Nissen (09-04-2005)
Kommentar
Fra : Benny Nissen


Dato : 09-04-05 13:56

Jacob Atzen wrote:

>>$sql = "SELECT * FROM brugere WHERE id = '".$_GET['id']."'";
>
>
> Det gør ingen forskel, 'id' og "id" er ækvivalente.
>
Ja, det kan jeg faktisk godt se. Problemet må stadig være, at
$_GET['id'] er tom.

--
Benny

Christoffer (09-04-2005)
Kommentar
Fra : Christoffer


Dato : 09-04-05 14:38

> Ja, det kan jeg faktisk godt se. Problemet må stadig være, at $_GET['id']
> er tom.
Har fulgt et link jeg fik i dobbeltposten jeg fik tjekket for åbenlyse fejl
ved den her:
$query = "SELECT * FROM . . .";
$sql = mysql_query($query) or die("Fejl: ".mysql_error()."<br><br>SQL:
$sql");

Har rodet med min kode og får ikk længere fejlmeddelser
$id = $_GET['id'];
$query = "SELECT brugernavn, email, alder FROM bruger where id = '$id'
";
$sql = mysql_query($query) or die("Fejl: ".mysql_error()."<br><br>SQL:
$sql");

print "Navn: $brugernavn <br> Telefon: $email<br />";

Problemet er bare at variablerne ikk udskrives, så om id faktisk er tom som
du foreslår, eller jeg ikk har forstået de forskellige php-guides rigtigt og
ikk har defineret variablerne rigtigt ved jeg ikke.

Christoffer




Thomas Jari (09-04-2005)
Kommentar
Fra : Thomas Jari


Dato : 09-04-05 15:16

On Sat, 9 Apr 2005 15:38:16 +0200, "Christoffer"
<christoffer@buur.info> wrote:

>> Ja, det kan jeg faktisk godt se. Problemet må stadig være, at $_GET['id']
>> er tom.
>Har fulgt et link jeg fik i dobbeltposten jeg fik tjekket for åbenlyse fejl
>ved den her:
> $query = "SELECT * FROM . . .";
> $sql = mysql_query($query) or die("Fejl: ".mysql_error()."<br><br>SQL:
>$sql");
>
>Har rodet med min kode og får ikk længere fejlmeddelser
>$id = $_GET['id'];
> $query = "SELECT brugernavn, email, alder FROM bruger where id = '$id'
>";
> $sql = mysql_query($query) or die("Fejl: ".mysql_error()."<br><br>SQL:
>$sql");
>
> print "Navn: $brugernavn <br> Telefon: $email<br />";
>
>Problemet er bare at variablerne ikk udskrives, så om id faktisk er tom som
>du foreslår, eller jeg ikk har forstået de forskellige php-guides rigtigt og
>ikk har defineret variablerne rigtigt ved jeg ikke.

Hvad sker der hvis du sætter variablerne i SQL-sætningen ind i {}


--
Mvh
Thomas Jari
Alt Webdesign I/S
http://www.altwebdesign.dk

Christoffer (09-04-2005)
Kommentar
Fra : Christoffer


Dato : 09-04-05 15:35


> Hvad sker der hvis du sætter variablerne i SQL-sætningen ind i {}
Har prøvet mig frem med forskellige metoder, men ingen forbedringer :(



Christoffer (10-04-2005)
Kommentar
Fra : Christoffer


Dato : 10-04-05 15:26

Har løst det på følgende måde
<?php

include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$res = mysql_query("SELECT * FROM bruger where
id='$_GET[id]'") or die("Fejl: ".mysql_error()."<br><br>SQL: $sql");
while($row = mysql_fetch_array($res)){
echo "Navn: <b><code>$row[brugernavn]</code></b>
<br>
E-mail: <b><code>$row[email]</code></b><br>";
}
?>



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