Avatar billede ibandersson Juniormester
08. februar 2014 - 16:32 Der er 13 kommentarer og
1 løsning

Mysql forespørgsel med PHP

Jeg har måske bare ikke fattet ret meget af Mysql forespørgsler, jeg kan godt få noget udfra tabelerne, men denne forespørgsel herunder kan jeg bare ikke få til at virke.

Har prøvet alt...med "" '' og "''"

require_once("../ini/conn_mysqli.php");
echo $usermail = $action;
//$id_user = mysql_query("SELECT id FROM drop_bruger WHERE mail ='$usermail'");
$query = mysqli_query($conn_mysqli,"SELECT `id` FROM `drop_bruger` WHERE `mail`='$usermail)'");

while($row = mysqli_fetch_array($query))
  {
  echo $row["id"];
  }



id bruges hertil
            echo $id = $row["id"];
                    $query = mysqli_query($conn_mysqli,"SELECT * FROM drop_bruger WHERE id='{$id}'");
                    while ($row = mysqli_fetch_array($query))
                    {

hvis jeg skriver f.eks. 2 i "WHERE id=2);" så funker det.
Avatar billede Slater Ekspert
08. februar 2014 - 16:37 #1
"SELECT `id` FROM `drop_bruger` WHERE `mail`='$usermail)'"

- Hvad laver den parentes der?
Avatar billede arne_v Ekspert
08. februar 2014 - 19:40 #2
det ligner en typo som giver en SQL fejl

brug af mysqli med varible direkte i SQL streng misser ioevrigt lidt pointen med mysqli
Avatar billede ibandersson Juniormester
08. februar 2014 - 23:35 #3
Forklarer tak, arne
Avatar billede ibandersson Juniormester
08. februar 2014 - 23:36 #4
Det er jo kun et udsnit, der er jo en ( i den anden ende
Avatar billede ibandersson Juniormester
08. februar 2014 - 23:52 #5
Dette funker ...
require_once("../ini/conn_mysql.php");
echo $usermail = $action;
//$id_user = mysql_query("SELECT id FROM drop_bruger WHERE mail ='$usermail'");
$query = mysql_query("SELECT * FROM drop_bruger WHERE mail='$usermail'");

while($row = mysql_fetch_array($query))
  {
  echo $row["id"];
  }

                echo $id = 2;
                    $query = mysql_query("SELECT * FROM drop_bruger WHERE id='$id'");
                    while ($row = mysql_fetch_array($query))
                    {



Dette funker ikke...

require_once("../ini/conn_mysql.php");
echo $usermail = $action;
//$id_user = mysql_query("SELECT id FROM drop_bruger WHERE mail ='$usermail'");
$query = mysql_query("SELECT * FROM drop_bruger WHERE mail='$usermail'");

while($row = mysql_fetch_array($query))
  {
  echo $row["id"];
  }

                echo $id = $row["id"];
                    $query = mysql_query("SELECT * FROM drop_bruger WHERE id='$id'");
                    while ($row = mysql_fetch_array($query))
                    {


hvorfor ikke ................................
Avatar billede arne_v Ekspert
09. februar 2014 - 03:53 #6
Hvad forventer du at:

echo $id = $row["id"];

goer?
Avatar billede ibandersson Juniormester
09. februar 2014 - 10:35 #7
Vise mig, (derfor Echo midlertidig)at den øverste forespørgsel har retuneret et id nr fra DB. Det id der tilhører mail adressen som kommer fra "$action" der sendes over i "$usermail".

som så bruges til udvalg i db.

Dette id bruges så i forespørgsel 2 til at vise udvalgt bruger til ændring af tabel indhold. og det virker, hvis jeg manuelt skriver f.eks. 8 i  $id = $row["id"]; som dette  $id = 8;

hilse Ib
Avatar billede arne_v Ekspert
09. februar 2014 - 16:20 #8
Nu har jeg testet og:

echo $id = $row["id"];

virker faktisk ligesom:

$id = $row["id"];
echo $id;

saa det er naeppe problemet.

Saa nu gaar min mistanke paa at while loekke loeber ned efter sidste raekke og at du i.s.f.

while($row = mysql_fetch_array($query))
{
  echo $row["id"];
}
$id = $row["id"];
echo $id;

skal bruge:

while($row = mysql_fetch_array($query))
{
  echo $row["id"];
  $id = $row["id"];
}
echo $id;
Avatar billede ibandersson Juniormester
09. februar 2014 - 20:29 #9
det er problemet med at bruge $usermail i DB strengen

Det virker ikke når jeg bruger VAR $usermail men skriver jeg mail adressen ind manuelt virker det fint.

virker:
require_once("../ini/conn_mysql.php");
echo $usermail = $action;
$query = mysql_query("SELECT * FROM drop_bruger WHERE mail='ibmohn@hotmail.com'");

while($row = mysql_fetch_array($query))
{
  $id = $row["id"];
}
                $query = mysql_query("SELECT * FROM drop_bruger WHERE id='$id'");
                    while ($row = mysql_fetch_array($query))
                    {

virker ikke:
require_once("../ini/conn_mysql.php");
echo $usermail = $action;
$query = mysql_query("SELECT * FROM drop_bruger WHERE mail='$usermail'");

while($row = mysql_fetch_array($query))
{
  $id = $row["id"];
}
                $query = mysql_query("SELECT * FROM drop_bruger WHERE id='$id'");
                    while ($row = mysql_fetch_array($query))
                    {

bla bla bla viser bruger udfra id
}


-----------------
Echo i echo $usermail = $action; bruger jeg bare for at se om der kommer nogen ind fra den forgående side. og det gør der.
Avatar billede arne_v Ekspert
09. februar 2014 - 20:42 #10
Indeholder $action det den skal?
Avatar billede ibandersson Juniormester
09. februar 2014 - 20:53 #11
ja, jeg echoer resultatet og det er rigtigt og den er i db.

Så det eneste problem jeg har er at db strengen ikke virker når jeg bruger $usermail.

$query = mysql_query("SELECT * FROM drop_bruger WHERE mail='$usermail'");

Det er det jeg ikke fatter en dyt af, jeg jo bruger den samme opsætning i
$query = mysql_query("SELECT * FROM drop_bruger WHERE id='$id'");

mærkeligt
Avatar billede arne_v Ekspert
09. februar 2014 - 21:04 #12
Og det er ikke et problem med mellemrums tegn eller forskel paa store og smaa bogstaver?
Avatar billede ibandersson Juniormester
09. februar 2014 - 22:50 #13
godt set arne, det var afsenderen af action, den havde et ; efter ?>. i
<a href="mydrop_login_udfyld_bruger.php?action=<?echo $mail?>">her</a>

jeg kommer nok tilbage til en dygtig fyr som dig, da jeg skal til at lave en logged ind status i toppen af siden, så folk kan se dem selv som logged ind.

men skriv lige et svar. og tak
Avatar billede arne_v Ekspert
09. februar 2014 - 23:07 #14
svar
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