Avatar billede pylle Nybegynder
21. oktober 2013 - 00:18 Der er 6 kommentarer og
1 løsning

Tildeling af variabler til row data fra MySql

<?php
include("../connect.php");
$conn = mysql_connect("$_SERVER","$_brugernavn", "$_kode") or die(mysql_error());
mysql_select_db("$_databasenavn",$conn)  or die(mysql_error());


$query = "SELECT * FROM min_tabel";
$result = mysql_query($query) or die (mysql_error);

$result_array = array();
while($row = mysql_fetch_row($result))
{
    $result_array = $row;
    $string = implode(",",$result_array);
   
    echo $string."</br>";
}   
if ($string1 == $string_noget ) {
      "gør noget";
      } else {
      "gør noget andet";     
      }         
if ($string2 == $string_noget_andet ) {
      "gør noget";
      } else {
      "gør noget andet";     
      }     
?>
Avatar billede pylle Nybegynder
21. oktober 2013 - 16:15 #1
Så ville det jo nok være smart at tilføje spørgsmålet! hermed

Er det muligt at tildele forskellige variabler til dataudtræk fra  en hel row, fra en MySql så man  kan arbejde videre med dem i stedet for kun at echo den ud ?
Avatar billede cht22 Professor
30. oktober 2013 - 16:28 #2
Ja du kan lave et array:

<?php
$data = array();

$con = mysql_connect("$db_host","$db_user","$db_pass");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("$db_name", $con);

$result = mysql_query("SHOW COLUMNS FROM tabel");

if($row = mysql_fetch_array($result)) {
  $data[] = $row['Field'];
}

mysql_close($con);

for ($i = 0; $i <= (count($data)-1); $i++) {
echo $data[$i] . " - ";
}
?>
Avatar billede pylle Nybegynder
30. oktober 2013 - 19:11 #3
Hej cht22
det eneste output jeg får er

ID -  og kun een gang
Avatar billede cht22 Professor
30. oktober 2013 - 19:45 #4
Ja det er fordi der skal stå while i stedet for if. Det her skal rettes:

if($row = mysql_fetch_array($result)) {
  $data[] = $row['Field'];
}

Skal erstattes med:

while($row = mysql_fetch_array($result)) {
  $data[] = $row['Field'];
}

Så får du resten af kolonnerne.
Avatar billede pylle Nybegynder
30. oktober 2013 - 20:28 #5
Jo nu får jeg alle kolonne navnene !
men det var jo alle linjerne med data der skulle havne i hver sin variabel ?
Avatar billede cht22 Professor
30. oktober 2013 - 21:13 #6
Det kan man også godt:

<?
$con = mysql_connect("$db_host","$db_user","$db_pass");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}

$columns = array();
$found_id = FALSE;

mysql_select_db("$db_name", $con);

$result = mysql_query("SHOW COLUMNS FROM mintabel");

while($row = mysql_fetch_array($result)) {
  $columns[] = $row['Field'];
  if (strtolower($row['Field']) == "id")
      $found_id = TRUE;
}

mysql_close($con);


$con = mysql_connect("$db_host","$db_user","$db_pass");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("$db_name", $con);

if ($found_id)
$result = mysql_query("SELECT * FROM mintabel ORDER by ID desc LIMIT 0 , 30");
else
$result = mysql_query("SELECT * FROM mintabel LIMIT 0 , 30");

while($row = mysql_fetch_array($result)) {
  echo "<table width=100% cellspacing=0 cellpadding=10 border=1>";
  foreach($columns AS $eachcolumn) {
  echo "<tr>";
  echo "<td>" . $eachcolumn . "</td>";
  echo "<td>" . $row[$eachcolumn] . "</td>";
  echo "<tr>";
  }
  echo "</table><br>";
}

mysql_close($con);
?>

Man behøver måske ikke connecte til databasen to gange, det kan du rette hvis du vil.
Avatar billede pylle Nybegynder
30. oktober 2013 - 21:55 #7
Nu funker det! tak for hjælpen og det store arbejde
nu vil jeg nærlæse det, og finde ud af hvad der sker :)
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