Gå til innhold

[Løst] henting av data i DB


Anbefalte innlegg

jeg har litt problem med og laget et skript slik jeg ønsker . 

jeg har 2 tabeller - 

bruker tabell og plass tabell 
id                        id
brukernavn         sted 

sted 

 

jeg trenger hjelp med og sortere desse inn på 1 siden . 

jeg ønsker det litt mer slik som dette . 

Sted : 
Brukernavn 
brukernavn 

nytt sted: 
brukernavn 

brukernavn 

at brukerene blir sortert etter sted . .
noen så kan hjelpe meg med dette ? 

Lenke til kommentar
Videoannonse
Annonse

Kan løses på forskjellige måter, f.eks. ved å mellomlagre i en multi dimentional array:

 

Noe ala dette

// hent fra db: SELECT ... FROM tabell ORDER BY sted, brukernavn
$data = database-oppslag-her;

$sortedData = [];

// organiser 
foreach ($data as $d)
{
    $place = $d['sted'];
    $sortedData[$place][] = $d['brukernavn'];
}

// output
foreach ($sortedData as $place => $userNames)
{
    echo '<h3>' . $place . '</h3>';

    foreach ($userNames as $userName)
    {
        echo '<div>' . $userName . '</div>';
    }
}
  • Liker 1
Lenke til kommentar

Kan løses på forskjellige måter, f.eks. ved å mellomlagre i en multi dimentional array:

 

Noe ala dette

// hent fra db: SELECT ... FROM tabell ORDER BY sted, brukernavn
$data = database-oppslag-her;

$sortedData = [];

// organiser 
foreach ($data as $d)
{
    $place = $d['sted'];
    $sortedData[$place][] = $d['brukernavn'];
}

// output
foreach ($sortedData as $place => $userNames)
{
    echo '<h3>' . $place . '</h3>';

    foreach ($userNames as $userName)
    {
        echo '<div>' . $userName . '</div>';
    }
}

 

jeg testet denne men jeg fikk ikke noe resultat med denne . bare blank skjerm 

Endret av tjumsen
Lenke til kommentar

Har du bare kopiert og limt den inn som den er? Eller har du gjort nødvendige modifikasjoner for å hente data fra databasen?

 

At du bare får blank skjerm betyr at feilmeldinger ikke er slått på, legg til dette i toppen av fila

error_reporting(E_ALL);
ini_set('display_errors', 1);
Lenke til kommentar

Har du bare kopiert og limt den inn som den er? Eller har du gjort nødvendige modifikasjoner for å hente data fra databasen?

 

At du bare får blank skjerm betyr at feilmeldinger ikke er slått på, legg til dette i toppen av fila

error_reporting(E_ALL);
ini_set('display_errors', 1);

 

Warning: Invalid argument supplied for foreach() in /Applications/MAMP/htdocs/2017/mrfl/test.php on line 15

 

$data = mysql_query( " SELECT sted, firma FROM `fotograf` ORDER BY sted, firma " ); 

 jeg har bare endret denne linjen 
 
$data = mysql_query( " SELECT sted, firma FROM `fotograf` ORDER BY sted, firma " ); 
$sortedData = [];
 
// organiser 
foreach ($data as $d)
{
    $place = $d['sted'];
    $sortedData[$place][] = $d['firma'];
}
 
// output
foreach ($sortedData as $place => $userNames)
{
    echo '<h3>' . $place . '</h3>';
 
    foreach ($userNames as $userName)
    {
        echo '<div>' . $userName . '</div>';
    }
}
Endret av tjumsen
Lenke til kommentar

IKKE bruk mysql funksjonene, de er utdaterte, bruk mysqli. Har du fulgt en guide må du finne noe av nyere dato.

 

mysqli_query returnerer en resource, du må bruke f.eks mysqli_fetch_assoc() for å få data du kan bruke til noe matnyttig.

  • Liker 1
Lenke til kommentar

sikkert enkelt men jeg lurer på hvordan jeg kan få frem ID sammen med firma navnet . 
jeg har fått til at alle navnet kommer opp men ikke ID . jeg får du frem den siste ID som ligger i listen 
hva kan jeg gjør med det ? 

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);
 
$con=mysqli_connect("localhost","root","root","****");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }   
       
        // hent fra db: SELECT ... FROM tabell ORDER BY sted, brukernavn
$sql="SELECT * FROM fotograf ORDER BY sted, firma ";
$data = mysqli_query($con,$sql);
$sortedData = [];
 
// organiser 
foreach ($data as $d)
{
    $place = $d['sted'];
    $id = $d['id'];
    $sortedData[$place][] = $d['firma'];
}
 
// output
foreach ($sortedData as $place => $userNames)
{
    echo '<h3>' . $place . '</h3>';
 
    foreach ($userNames as $userName)
    {
        echo '<div><p><a href="fotograf.php?id='. $id .'"><strong>' . $userName . ' </strong></a></div>';
    }
   
}
?>
Lenke til kommentar

Når du organiserer dataene som blir ikke id med

foreach ($data as $d)
{
    $place = $d['sted'];
    $sortedData[$place][] = $d;
}
Hva du gjør i output delen får blir "hjemmelekse" ;)

 

Litt hjelp, midlertidig legg til

echo '<pre>' . print_r($sortedData, true) . '</pre>';
før // output for å se hvordan $sortedData ser ut.

 

For å pirke litt, ikke bruk SELECT * med mindre du skal ha med alle felt, der er bedre å spesifisere de feltene du trenger.

Å skrive ut database feilmeldinger ( mysqli_connect_error() ) til skjerm kan være ett sikkerhetsproblem, da feilmeldingen kan vise informasjon du ikke ønsker å vise. Men dette ser ut som ett lære prosjekt, og da er ikke det like viktig, men greit å være klar over.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...