Gå til innhold

hente info fra database, kjøpe PHP bok?


Anbefalte innlegg

Videoannonse
Annonse

nei. :blush:

 

dette funka:

$user = "root"; //Ditt brukernavn for databasen
$pass= ""; //Ditt valgte passord
$host = "localhost"; //Din egen lokale database

//Kopler til database-serveren, eller "velger den" om du vil
$connection = mysql_connect($host, $user, $pass);

//En databaseserver (som din egen pc) kan ha flere databaser -> som inneholder flere tabeller.
//Vi må velge en database vi skal bruke. "test" i dette tilfellet.
mysql_select_db("min_db");

//Nå kan vi gjøre søk eller innsettinger i tabeller denne databasen inneholder!
$query = 'SELECT * FROM min_tabell'; 
$resultat = mysql_query($query) or die("Could not execute query: " . mysql_error());
?>

men hva nå liksom? det er en tabell med 2 kolonner og 3 rader. det skal dukke opp, men hvordan? hvor kan jeg eventuelt lese mer om alt dette? php.net/manual har vel ikke noe om databaser?

Endret av hockey500
Lenke til kommentar

noen som kan forklare denne kodesnutten?

$array = mysql_fetch_array($resultat);
foreach ($array as $key => $val) {
  echo 'Index: '.$key.'<br>';
  echo '<br>';

 

og lønner det seg å kjøpe bok? hvilken er best?

Endret av hockey500
Lenke til kommentar

Å investere i en bok har mange fordeler det, men du har så utrolig mange andre muligheter på nettet, for å ikke snakke om dokumentasjonen til php.net i seg selv. Er det noe jeg ikke vet hvordan fungerer, er det bare å slå det opp på php.net.

feks. lim inn "foreach" i boksen oppe til høyre og tast <enter>, vips har du godt utfyllende beskrivelse av funksjonen + eksempler + egne brukeres kommentarer og tips. Bare se her.

Lenke til kommentar

<?php

$user = "root"; //Ditt brukernavn for databasen

$pass= ""; //Ditt valgte passord

$host = "localhost"; //Din egen lokale database

 

//Kopler til database-serveren, eller "velger den" om du vil

$connection = mysql_connect($host, $user, $pass);

 

//En databaseserver (som din egen pc) kan ha flere databaser -> som inneholder flere tabeller.

//Vi må velge en database vi skal bruke. "test" i dette tilfellet.

mysql_select_db("min_db");

 

//Nå kan vi gjøre søk eller innsettinger i tabeller denne databasen inneholder!

$query = 'SELECT * FROM min_tabell WHERE Navn ="Hakon"';

$resultat = mysql_query($query) or die("Could not execute query: " . mysql_error());

//printe ut noe innhold

$array = mysql_fetch_array($resultat);

foreach ($array as $key) {

echo 'Index: '.$key .'<br>';

}

?>

 

noen som kan fortelle meg hvorfor resultatet blir:

Index: Hakon

Index: Hakon

Index: 15

Index: 15

 

???

det jeg vil ha er:

 

Håkon 15

osv osv

 

det er 11 rader i tabellen

Lenke til kommentar

jeg får det bare ikke til:

//Nå kan vi gjøre søk eller innsettinger i tabeller denne databasen inneholder!
$query = 'SELECT * FROM server WHERE Navn ="Karo"'; 
$resultat = mysql_query($query) or die("Could not execute query: " . mysql_error());
//printe ut noe innhold
$tabell = '<table border="1">';
echo $tabell;
echo '<tr><td bgcolor="#999999"><b>Navn</b></td><td bgcolor="#999999"><b>Alder</b></td></tr>';
$arr = mysql_fetch_row($resultat);
foreach ($arr as $value) {
  echo "<td>".$value."</td>";
}
echo "</tr>";
$query2 ='SELECT * FROM server WHERE Navn="Karlern"';
$resultat2 = mysql_query($query2) or die(mysql_error());
$arr2=mysql_fetch_row($resultat2);
foreach($arr2 as $value2) {
echo "<td>".$value2."</td>";
}
echo "</tr></table>";
?>

det er det nærmeste jeg har kommet.

det funker jo, men det er tungvint og skulle gjerne fått koden til å printe ut hele tabellen og legge hver verdi i en celle i tabellen. det der er kun siste del av koden, som dere sikkert skjønte. kan noen være så snille å komme med koden for å printe ut hele tabellen fra MySQL og legge den inn i en tabell?

(for de som lurer er Karo bikkja mi og karlern = Karl André, en kompis)

 

en ting til:

foreach($array as $verdi){
}
foreach($array as $key => $verdi{
}

noen som kan forklare forskjellen på de 2?

Lenke til kommentar

Følgende er sakset fra dokumentasjonen

foreach

The first form loops over the array given by array_expression. On each loop, the value of the current element is assigned to $value and the internal array pointer is advanced by one (so on the next loop, you'll be looking at the next element).

 

The second form does the same thing, except that the current element's key will be assigned to the variable $key on each loop.

 

DET VIL SI, at dersom du trenger navnet på kolonnen, altså 'navn' i ditt tilfelle, så bruker du den siste. Dersom du kun trenger verdien ($value, altså karo eller karlern i ditt tilfelle) så bruker du den første.

 

Skal prøve å komme med et eksempel.

array mysql_fetch_row ( resource result )

Returns a numerical array that corresponds to the fetched row.

 

Forsøker å gjøre det samme som deg:

$sql = "SELECT * FROM server WHERE Navn ='Karo'";
//MERK: dobbelt anførselstegn rundt hele sql-setningen, enkelt anførselstegn rundt verdien.

$resultat = mysql_query($query) or die("Could not execute query: " . mysql_error());
//Dersom du har flere rader med Navn = 'Karo', så looper denne gjennom hver eneste en.

//Hva mysql_fetch_row() gjør står over. Returnerer altså den enkleste formen for tabell hvor verdien er kolonnene i tabellen,
//for hver enkelt rad.

echo '<table style="border: 1px solid black;">';
while($rad_variabel = mysql_fetch_row($result))
{
      echo "<td>" . $rad_variabel[0] . "</td>";
      echo "<td>" . $rad_variabel[1] . "</td>";
      echo "<td>" . $rad_variabel[2] . "</td>";
      //osv, avhengig av hvor mange kolonner du har i tabellen din.
}
echo "</table>";

Nytt eksempel, mer det du vil ha som output kanskje:

$sql = "SELECT * FROM server WHERE Navn ='Karo'";
$resultat = mysql_query($query) or die("Could not execute query: " . mysql_error());
echo '<table style="border: 1px solid black;">';
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
      echo "<td>" . $row['Navn'] . "</td>";
      echo "<td>" . $row['ID'] . "</td>";
      echo "<td>" . $row['bursdag'] . "</td>";
}
echo "</table>";

Eller

echo "<table border=\1\">";
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
      echo "<tr>";
      foreach($row as $index => $verdi)
      {
             echo "  <td>" . $index . " = </td>";
             echo "  <td>" . $verdi . "</td>";
      }
      echo "</tr>";
}
echo "</table>";

Håper du forstår hvordan det fungerer nå! :thumbup:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...