Avatar billede vistrup Nybegynder
08. december 2011 - 20:41 Der er 11 kommentarer og
1 løsning

Tilføj, fjern og vis at db indhold.

Hej

Jeg har et lille problem, mener jeg selv. Er igang med at lave en side, hvor det skal være muligt at tilføje og fjerne ledige//udlejede lejligheder, som skal vises på startsiden. har tænkt det skal forgå på følgende måde.

1) En side hvor det er mulighed for at tilføjes en ledig lejlighed, som vælges ud fra en række med checkboxs, så der kan vælges flere på engang. Disse tilføjes så en db (mysql)

2) på startsiden vises hvilke lejeligheder der er ledig og man har mulighed for at trykke på dem (link til den pågældende lejelighed)

3) på en side er det efterfølgende mulighed for at fjerne de ledige lejligheder fra startsiden af. Altså skal de ledige lejemål trækkes ud fra db'en og vises på en eller anden måde (gerne checkbox igen så der kan vælges flere på engang), hvor man kan vælge hvilken/hvilke som skal slettes fra db'en og dermed ikke vises på startsiden.

pt. ser min mysql db ud som følgende:

tabel  - kolonne 1 - kolonne 2
alle  - navn      - adresse
ledige - navn      - adresse

Som i kan se har jeg oprette en tabel hvor alle lejlighederne er i, og troede jeg så på en smart måde kunne få dem vist (punkt 1) og udvælge hvilke der skulle være ledige og ligge disse (oplysnigner) over i tabellen ledige. Men har bare ikke kunne få det til at virke :S

Har prøvet at google det uden held og se andre ligende tilfælde her på eksperten.dk men der bliver ikke nævt, hvordan han har løst problemet.

takker for jeres hjælp på forhånd
Avatar billede vistrup Nybegynder
08. december 2011 - 20:44 #1
ps. ved godt hvordan man laver en forespørgelse til en db, samt indsætter data i den ;)

Det er det andet der går galt :(
09. december 2011 - 10:06 #2
Jeg forstår, at du har data om lejligheder gemt i databasen (er det en mysql database?) og at lejlighederne har forskellige status, nogle er ledige og andre er ikke ledige.  Du vil på startsiden, en offentlig side, vise de ledige lejligheder, sandsynligvis således at folk kan vælge en lejlighed for at få yderligere oplysninger med henblik på at leje lejlighede.  Så vil du have administrative sider, hvor administratoren kan se alle lejligheder og kan ændrre status og lignende.  Har jeg forstået problemstillingen korrekt?

Jeg tror du gøre det nemmere, hvis du ændrer databasen, således at du har alle lejligheder i en tabel, såsom

Lejligheder
id navn adresse status pris o.s.v
1 Søhuset Nygade1 ledig 1000 ...
2 Mithus Smøgen7 udlejet 2000 ...

Så skal startsiden indeholde en sql forespørgsel såsom:

$result = mysql_query("SELECT * FROM Lejligheder WHERE status = 'ledig'"); 
while($rows = mysql_fetch_array($result))
{
  ..her kommer koden der viser de ledige lejligheder med checkbox
}

På admin siden, hvor du vil se alle lejligheder, bliver forespørgslen så

$result = mysql_query("SELECT * FROM Lejligheder WHERE status = 'ledig'"); 

Når du så på admin siden har valgt de lejligheder hvor du vil have status sat til ledig sender du denne sql forespørgsel afsted, forudsat id'en for lejligheden der skal ændres sidder i $id:

mysql_query("UPDATE lejligheder SET status='ledig' WHERE id = $id");

Jeg forstår, at dit spørgsmål går videre, men jeg er spændt på at høre din reaktion på dette indlæg, (1) om jeg har forstået problemstillingen korrent, og (2) hvad du mener om min foreslåede database struktur.
Avatar billede vistrup Nybegynder
09. december 2011 - 10:47 #3
1) det er rigtig forstået at man på en offentlig side skal kunne se, hvilke der er ledige og gå til den pågældende lejeligheds side for at få nærmere informationer omkring lejligheden. Altså ikke noget med nogle checkbox på startsiden. På admin siden skal kunne tilføje og fjerne lejeligheder an på deres status.

2) det er en mysql database der benyttes. Som jeg ser det er det vigtigste at navnet på lejligheden er der, da det er denne der skal visses på den offentlige side (startsiden). Ellers tænker jeg, at jeg skal gemme filnavnet, som jeg allerede gør, for at kunne linke til lejligheden, samt den med ledig/udlejet som du kom med, så den ved hvilke der skal vises på den offentlige side.

Med navn på lejligheden mener jeg følgende: gadenavn+nr+lejelighedens initialer (fx østergade 67, 1.th.)
Avatar billede vistrup Nybegynder
09. december 2011 - 14:04 #4
nu melder der sig et side spørgsmål.

hvordan gør jeg sådan at de lejligheder jeg vil ændre til ledige sidder i $id?

kan næsten tænke mig til den skal være ved checkboxene eller?

Har det pt. til at se sådanne ud:
echo'
<form>
',$id=,'<input type="checkbox" name="lejlighed" value="',$row['lejelighed'],'" />', $row['lejelighed'],'<br/>
</form>';

men får en fejl: Parse error: syntax error, unexpected ','. Tror det er fordi definitionen af variablen er forkert eftersom jeg ikke har sat "" til variablen, men ved virkelig ikke hvordan jeg skal sætte dem eftersom " og ' er brugt :S
09. december 2011 - 14:42 #5
Hvordan går spørgsmålet så videre?  Du vil ved hjælp af php lave web-sider der viser lejligheder fra databasen og som kan generere indhold som skal sendes tilbage til databasen.  Hvor langt er du selv kommet? (Princippet på Eksperten er hjælp til selvhjælp).  Hvad jeg kan gøre er at skitsere hvordan du kan lave en simpel startside med en liste over ledige lejligheder og en knap til at vælge en lejlighed for at få yderligere oplysninger.  Jeg vil så foreslå, at du studerer det og selv prøver at bygge videre.  Når du, efter selv at have prøvet, går i stå, er tiden inde til at oprette nye spørgsmål for de specifikke problemer.  Jeg har selv haft stor glæde af denne tutorial:  http://www.w3schools.com/php/ .  (Der er medlemmer af Eksperten, der rynker på næsen af w3schools og som måske nu vil komme med kommentarer.  I så fald håber jeg man foreslår konkrete alternativer.)

Her er så lidt kode til en simpel startside med ledige lejligheder.  Jeg går ud fra, at din database tabel har felterne id, navn, adresse, status, og pris.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset="utf-8">
  <title></title>
</head>

<body>
<?php
require('connect.php');//forbindelse til databasen
//først overskrifterne i tabellen
echo "<table>";
echo "<tr>";
echo "<td>Nummer</td>";
echo "<td>Navn</td>";
echo "</tr>";
//så hentes de ledige lejligheder i databasen og vises i tabellen
$result = mysql_query("SELECT * FROM Lejligheder WHERE status = 'ledig'");
while($rows = mysql_fetch_array($result))
{
  $nummer = $rows['id'];
  $navn = $rows['navn'];
  echo "<tr><td>$nummer</td><td>$navn</td></tr>";
}
echo "</table>";

//så en funktion hvor kunden kan spørge om mere info for en bestemt lejlighed

echo "<form method='POST' action='detaljer.php'>";
echo "Vælg lejlighed <br>";
echo "Lejligheds nummer: ";
echo "<input type='text' name='nummer' />";
echo "<input type='submit' name='submit' value='klik'; />";
echo "</form>";

?>
</body>
</html>

Og så en side detaljer.php til at vise detaljerne for den valgte lejlighed

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset="utf-8">
  <title></title>
</head>

<body>
<?php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset="utf-8">
  <title></title>
</head>

<body>
<?php
require('connect.php');//forbindelse til databasen
//indfange nummeret på den lejlighed der blev valgt
$nummer = $_POST['nummer'];
//hente detaljerne for lejligheden
$result = mysql_query("SELECT * FROM Lejligheder WHERE id = $nummer");
//udskrive resultatet
//$row = mysql_result($result, 0);
echo "nummer = $nummer <br>";
echo "navn = ".mysql_result($result, 0, 1)."<br>";
echo "adresse = ".mysql_result($result, 0, 2)."<br>";
echo "pris = ".mysql_result($result, 0, 4)."<br>";
?>
</body>
</html>

//indfange nummeret på den lejlighed der blev valgt
$nummer = $_POST['nummer'];
//hente detaljerne for lejligheden
$result = mysql_query("SELECT * FROM Lejligheder WHERE id = $nummer");
//udskrive resultatet
//$row = mysql_result($result, 0);
echo "nummer = $nummer <br>";
echo "navn = ".mysql_result($result, 0, 1)."<br>";
echo "adresse = ".mysql_result($result, 0, 2)."<br>";
echo "pris = ".mysql_result($result, 0, 4)."<br>";
?>
</body>
</html>

Du kan se hvordan siden kommer til at se ud her og hvad der sker når du vælger en lejlighed:  http://christianjorgensen.be/vistrup.php
09. december 2011 - 14:43 #6
Jeg ser, at du sendte #4 mens jeg var i færd med at teste mit indlæg #5.  Prøv at se, om det svarer nogle af dine spørgsmål.
10. december 2011 - 08:16 #7
Med hensyn til #4:  Du skal lave en stor form hvor alle lejlighederne er i.  For hver lejlighed skal du så have <input type "checkbox" name="lejlighed" value="$id" />

Det kan du læse om blandt andet her: 
http://www.w3schools.com/html/html_forms.asp
Avatar billede vistrup Nybegynder
10. december 2011 - 11:52 #8
hej Christian. takker for din hjælp. vil prøve at gå videre med det på egen hånd nu :)
Avatar billede vistrup Nybegynder
10. december 2011 - 11:54 #9
så skulle lige finde ud af hvordan jeg lukkede tråden... hehe :)
10. december 2011 - 11:55 #10
I så fald beder jeg dig acceptere dette svar og lukke spørgsmålet.
Avatar billede vistrup Nybegynder
10. december 2011 - 11:55 #11
tror du skal lave en "svar" kommentar?
10. december 2011 - 11:57 #12
Vores indlæg krydsede hinanden.  For at lukke spørgsmålet og afgive points skal du nu acceptere mit svar, indlæg #10, ved at sætte flueben ved 'Accepter dette svar' og derefter klikke på feltet 'accepter svar og afgiv points'
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