Avatar billede mora Nybegynder
16. maj 2000 - 15:41 Der er 14 kommentarer og
2 løsninger

Using scalar variable

Jeg vil gerne hente alle variabler ud fra en mysql database(webregister_bruger) men jeg får fejlen Warning: Using scalar variable $row as an array or object in d:\inetpub\wwwroot\webiidk\www\webregister\login.php on line 25


Jeg bruger denne kode til at hente:
$result = mysql_query("select konto, fornavn, efternavn, email, firma from webregister_bruger where navn = '$user'");
$row    = mysql_fetch_array($result);
print "Kontotype: $row[konto]<br>";
print "Fornavn: $row[fornavn]<br>";
print "Efternavn: $row[efternavn]<br>";
print "E-mail: $row[email]<br>";
print "Firma: $row[firma]<br>";


Jeg bruger denne kode til at gemme:
mysql_query("insert into webregister_bruger (bruger, fornavn, efternavn, firma, email, konto) values ('$bruger', '$fornavn', '$efternavn', '$firma', '$email', 'gratis')");



Se evt. www.webii.dk/webregister
User: eks
Pass: eks
Avatar billede mora Nybegynder
16. maj 2000 - 15:42 #1
Brug lige eks2 i stedetfor.

http://www.webii.dk/webregister
user: eks2
pass: eks2
Avatar billede erikjacobsen Ekspert
16. maj 2000 - 15:50 #2
Det går jo galt hvis der ikke er nogen tupler i svaret - måske derfor

$result = mysql_query("select konto, fornavn, efternavn, email, firma from webregister_bruger where navn = '$user'");
      if ($row    = mysql_fetch_array($result) ) {
                  print "Kontotype: $row[konto]<br>";
                  print "Fornavn: $row[fornavn]<br>";
                  print "Efternavn: $row[efternavn]<br>";
                  print "E-mail: $row[email]<br>";
                  print "Firma: $row[firma]<br>"
    } else {
      print "den var jo tom";
  }

Det er halsløs gerning at fyre sql-kald af uden at checke for resultatet.
Avatar billede jinxed Nybegynder
16. maj 2000 - 15:51 #3
har du connected og selected først?
Avatar billede nerdyguy Nybegynder
16. maj 2000 - 16:11 #4
Eller lave en while ..

while ($row    = mysql_fetch_array($result) )
{
print "Kontotype: $row[konto]<br>";
print "Fornavn: $row[fornavn]<br>";
print "Efternavn: $row[efternavn]<br>";
print "E-mail: $row[email]<br>";
print "Firma: $row[firma]<br>"
}


/NerdyGuy
Avatar billede mora Nybegynder
16. maj 2000 - 18:41 #5
connected og selected - ja...

Efter at have indsat nerdyguy´s while, og sat den ; der manglede ind kommer denne fejl.

Warning: 0 is not a MySQL result index in d:\inetpub\wwwroot\webiidk\www\webregister\login.php on line 24

Linje 24: while ($row = mysql_fetch_array($result)){
Avatar billede jinxed Nybegynder
16. maj 2000 - 18:49 #6
eksisterer $user i tabellen?
Avatar billede nerdyguy Nybegynder
16. maj 2000 - 18:52 #7
Det burde virke !!
Fejlen ligger i din $result ...
Altså her:
$result = mysql_query("select konto, fornavn, efternavn, email, firma from webregister_bruger where navn = '$user'");

Så det er meget svært for os at fejlfinde !!
Strengen ser fejlfri ud ...!
Avatar billede nerdyguy Nybegynder
16. maj 2000 - 19:05 #8
Og ->jinxed ...Du mener vel navn ik'??
Avatar billede mora Nybegynder
16. maj 2000 - 19:35 #9
Doh... den hedder bruger :)

Der kommer ingen fejl nu, men den finder ikke dataerne, gemmer jeg forkert?
Avatar billede jinxed Nybegynder
16. maj 2000 - 20:09 #10
prøv med:

$result = mysql_query("select konto, fornavn, efternavn, email, firma from webregister_bruger where bruger = '$user'");
$row = mysql_fetch_array($result);
print "Kontotype: ".$row["konto"]."<br>";
print "Fornavn: ".$row["fornavn"]."<br>";
print "Efternavn: ".$row["efternavn"]."<br>";
print "E-mail: ".$row["email"]."<br>";
print "Firma: ".$row["firma"]."<br>";

Jinxed ; ]
Avatar billede mora Nybegynder
16. maj 2000 - 20:17 #11
Intet respons(ud over kontotype, fornavn etc.)
Avatar billede erikjacobsen Ekspert
16. maj 2000 - 20:59 #12
Nej, mora, prøv at høre hvad de kloge siger: du har en fejl i din SQL hvis den siger
"0 is not a MySQL result "

Du skal altid, altid, altid teste resultat af en SQL-forespørgsel. Og du skal aldrig,
aldrig, aldrig antage, at resultatet, hvis der er SQL-fejl indeholder flere tupler end 0.
Gør dette

$sql="select ......";
if (!($result=mysql_query($sql))) {
  echo mysql_errno().": ".mysql_error().": ".$sql);
}

og se hvad den siger. Noget er der jo galt.

Avatar billede erikjacobsen Ekspert
16. maj 2000 - 21:00 #13
hovsa, linien med echo havde en parantes for meget:

  echo mysql_errno().": ".mysql_error().": ".$sql;
Avatar billede mora Nybegynder
17. maj 2000 - 07:26 #14
Jeg kørte dette:

$sql="select konto, fornavn, efternavn, email, firma from webregister_bruger where bruger = '$user'";
if (!($result=mysql_query($sql))) {
  echo mysql_errno().": ".mysql_error().": ".$sql;
}

Den retunerede alle tekster samt et m:
eks2 er logget ind

Kontotype:
Fornavn:
Efternavn:
E-mail:
Firma:
m
Avatar billede mora Nybegynder
17. maj 2000 - 07:33 #15
Ser i...

I min opret bruger, gemmer jeg $bruger i bruger (mysql), det bliver gemt, men da $bruger ikke hedder bruger gemmer den et tomt bruger felt, det der skulle gemmes er $user.

- Beklager :)
Avatar billede mora Nybegynder
17. maj 2000 - 07:34 #16
Hvor 'm' kommer fra aner jeg ikke...
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