Avatar billede nicoolai Nybegynder
28. februar 2007 - 18:12 Der er 11 kommentarer og
1 løsning

MySQL til array

Hej Eksperter

Hvordan henter jeg alt fra en tabel ud, og ind i et array?

Databasen er MySQL

På forhånd tak
Nicolai
Avatar billede mcardle Nybegynder
28. februar 2007 - 18:30 #1
Du kan bruge den her kode...

<?php
$con = mysql_connect("localhost","Brugernavn","Password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
  mysql_select_db("Din database", $con);
  $result = mysql_query("SELECT * FROM tabel");
  while($row = mysql_fetch_array($result))
  {
  $array[] = $row['Første_tabel'];
  }
  mysql_close($con);
?>
Avatar billede jakobdo Ekspert
28. februar 2007 - 19:12 #2
Og du kan burde faktisk kunne nøjes med:

$array[] = $row;

da $row er et array;
Avatar billede nicoolai Nybegynder
28. februar 2007 - 20:28 #3
Hej.

Det er et login script jeg skal bruge det til.

Når jeg bruger jeres kode, får jeg stadig denne meddelelse:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

min kode er således:

<?php
/** Sessions-motoren startes
*
*/
session_start();

// Forbind til server og vælg database.

function database() {

include("config.php");
$tbl_navn="login";

$con = mysql_connect("$host", "$db_user", "$db_pass");
if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
      mysql_select_db("$db_navn", $con);
      $result = mysql_query("SELECT * FROM $tbl_navn");
      while($row = mysql_fetch_array($result))
      {
      $array[] = $row;
      }
return $array;
}

/** Disse to funktioner skal bruges til
* at checke de indtastede værdier
* for ulovlige tegn;
* de tegn der er tilladt er defineret
* i variablen '$lovlige_tegn'.
*
*/

function validerBrugerNavn($navn){
  $lovlige_tegn = "a-zA-ZÅåØøÆæÁáÓóÍíÚúÝýÐðþößüÜÖ\_\-";
  // Kun bogstaver, inklusiv blandede skandinaviske specialtegn, tilladt

  $navnOK = (!ereg("[^$lovlige_tegn]",$navn))?true:false;
  return $navnOK;
}
function validerKodeOrd($kodeord){
  $lovlige_tegn = "a-zA-Z0-9\_\-";
  // kun bogstaver (ingen specialtegn!) og tal, samt underscore og bindestreg

  $kodeordOK = (!ereg("[^$lovlige_tegn]",$kodeord))?true:false;
  return $kodeordOK;
}

/** Og så starter selve login-processen...
*
*/

if(!isset($_SESSION["bruger_id"])){
  $_SESSION["bruger_id"] = "intet";
}

if(isset($_POST["brugernavn"]) && isset($_POST["adgangskode"])){

  // Vi checker via validerings-funktionerne
  // om der er ulovlige tegn i det indtastede;
  // hvis der er, ryger gæsten hen til 'fejllogin.html'
  if(!validerBrugerNavn($_POST["brugernavn"]) && !validerKodeOrd($_POST["adgangskode"])){
    header("Location:fejllogin.php");
    exit;
  }
  else {

    // Hvis det indtastede indeholder lutter lovlige tegn
    // åbner vi databasen og ser om brugerdata er korrekte
    $brugerliste = database();

    $godkendtLogin = "nej";
    // Så længe login ikke er godkendt er denne variabel == "nej"

      $sql="SELECT * FROM $tbl_navn";
    $result=mysql_query($sql)or die(mysql_error());
    $rows=mysql_fetch_array($result);
   
    $username=$rows[username];
    $password=$rows[password];
   
    foreach($brugerliste as $brugere){
      $navnErRigtigt = ($_POST["brugernavn"] == $username)?true:false;
      $kodenErRigtig = ($_POST["adgangskode"] == $password)?true:false;
      if($navnErRigtigt && $kodenErRigtig){
       
        // Hvis login er lykkedes sættes $_SESSION["bruger_id"]
        // samt session-variabler med de øvrige brugerdata
        // som man så kan skrive ud på siderne hvis man vil;
        // men man bør absolut undgå at kodeordet vises.


        $_SESSION["bruger_id"] = $rows["userid"];
        $_SESSION["bruger_navn"] = $rows["username"];
        $godkendtLogin = "ja";
      }   
    }

    // Hvis login ikke er godkendt smider vi gæsten
    // hen til vores fejllogin side
    if($godkendtLogin == "nej"){
      header("Location:fejllogin.php"); 
      exit;
    }
  }
}

/** Hvis gæsten har fået sat et eget $_SESSION["bruger_id"]
* er $logudknap tilgængelig
*
*/

if($_SESSION["bruger_id"] != "intet"){
  $logudknap = "<form action=\"\" method=\"get\"><input type=\"hidden\" name=\"redirect\" value=\"logud\"><input type=\"submit\" name=\"submit\" value=\"Log ud\" /></form>";

/* <a href="\$_SERVER[PHP_SELF]?logaf=true\">Log ud</a>
*/

}

/** Hvis gæsten lander på enhver given side uden at være logget på
* og dermed ikke har fået sat et eget $_SESSION["bruger_id"]
* føres vedkommende over til loginsiden 'login.html' 
*
*/

if(!isset($_SESSION["bruger_id"]) OR $_SESSION["bruger_id"] == "intet"){
  header("Location:login.php");
}

/** Hvis gæsten har klikket på 'Log af' linket
* nulstilles sessionen og gæsten bliver sendt
* til 'logud.html'
*
*/

if($_GET["logaf"] OR $_GET["redirect"] == "logud"){
  unset($_SESSION["bruger_id"]);
  unset($_SESSION["bruger_navn"]);
  session_unset();
  header("Location:logud.php");
  exit;
}
?>

ved linie 14 og 77, har jeg to database udtræk.

/nicoolai
Avatar billede jakobdo Ekspert
28. februar 2007 - 20:40 #4
Du mangler at angive: $tbl_navn den er jo tom!
Avatar billede mcardle Nybegynder
28. februar 2007 - 20:59 #5
Ja, $result = mysql_query("SELECT * FROM $tbl_navn");

$tbl_navn = "";
Avatar billede nicoolai Nybegynder
28. februar 2007 - 20:59 #6
Hej, nej den er defineret i variablen lige oven over det første db connect.
Avatar billede jakobdo Ekspert
28. februar 2007 - 21:04 #7
Ja, der står den jo til login!
Det er dog stadig en mærkelig fejl!
Prøv at udskriv sql'en inden du bruger den?
Avatar billede nicoolai Nybegynder
28. februar 2007 - 21:05 #8
lige under include("config.php")

$tbl_navn="login";
Avatar billede mcardle Nybegynder
28. februar 2007 - 21:07 #9
Prøv:

$result = mysql_query("SELECT * FROM ".$tbl_navn);
Avatar billede nicoolai Nybegynder
28. februar 2007 - 21:17 #10
Nu får jeg den her:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/www/frac/users/n/nmo/cms/sess.inc.php on line 20
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

:-)
Avatar billede nicoolai Nybegynder
28. februar 2007 - 21:23 #11
Når jeg tænker over det...

Kunne jeg så ikke droppe funktion database og slette variablen $brugerliste?
Derefter kunne jeg så ikke bare fjerne foreach lykken længere nede, men blot beholde indholdet af foreach løkken?

Vil scriptet så ikke fungere lige så godt?
Avatar billede nicoolai Nybegynder
16. juli 2007 - 10:46 #12
lukker
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