Avatar billede sijmonj Nybegynder
21. maj 2010 - 20:33 Der er 8 kommentarer og
1 løsning

mysqli php oop select problem

Hej, jeg ved ikke helt hvordan jeg udskriver fx. $brugernavn i den fil som skal vise alle nyheder, har lavet den her class


http://pastebin.com/8jDjAEvu

det jeg så gerne vil vide er hvordan jeg kan skrive fx.

<?php
echo "<h1>". $title ."</h1>";
?>

og så henter den title fra databasen
ved ihvertfald jeg skal skrive

$ny = new Nyheder();

men mere ved jeg ikke lige :P

håber i forstår :)
Avatar billede mcardle Nybegynder
22. maj 2010 - 00:54 #1
Du får svært ved at bruge den klasse for sig selv. Nyhedsklassen er en "slags" udvidelse af den klasse han bruger i forvejen.

Jeg ville bygge den fra start af, regner med det er noget du har taget et sted fra, for der mangler noget inden den kommer til at virke, i hvert fald.

Hvis du ved hvad du laver, så kan du arbejde videre på den klasse du skal arve fra. Jeg har nemlig set den klasse der før og den er ikke for begyndere.

Hvis du bare vil starte forfra, så kan du lave den simple metode.

Bare du ved lidt, så kan du lave din klasse med en __construct() der modtager alle dine data til databasen og lave en variable med din connection og så bare lave dine metoder således:

class Nyhder{
  private $conn;

  public function __construct($user, $pass, $host, $db){
    $this->conn = mysql_connect($host, $user, $pass);
    mysql_select_db($db);
  }

  public function Title($id){
    $getTitle = mysql_query("SELECT overskrift FROM nyheder WHERE id = '$id'", $this->conn);
    $showTitle = mysql_fetch_assoc($getTitle);
    return $showTitle["overskrift"];
  }
}

$ny = new Nyheder("localhost", "sijmonj", "1234", "min_side");
echo $ny->Title(1);

Håber du kan bruge det til noget.

//mcardle
Avatar billede mcardle Nybegynder
22. maj 2010 - 00:55 #2
Hov, class Nyheder{} ;oD


//mcardle
Avatar billede majbom Novice
22. maj 2010 - 10:24 #3
-> mcardle - hvad er det for en class du snakker om der ikke er for begyndere?

den spørger linker til ser ret simpel ud, den opretter forbindelse til en database og henter nyheder, that's it?
Avatar billede sijmonj Nybegynder
22. maj 2010 - 12:25 #4
jeg har selv lavet det hele og jeg har os en connect class, har bare ikke lige smidt den med da jeg ikke troede den var problemet

den ser sådan her ud


<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');


function connect() {
    $mysql = new mysqli('localhost', 'root', '', 'rapcom2') or die('Der var et problem med at connecte til databasen');
    return $mysql;
}



det jeg gerne vil kunne er at lave en while løkke og inde i den lave nogen div tags og så skrive

echo $title; // der hvor titlen skal udskrives
echo $indhold; // der hvor indholdet skal udskrives

osv. osv. :)

forstår i mig :)?
Avatar billede mcardle Nybegynder
24. maj 2010 - 00:29 #5
Jeg snakker bare om det link der var i starten af posten, med denne her kode:

require 'include/connect.php';
class Nyheder {
    function hent_nyheder() {
      $mysql = connect();
      $stmt = $mysql->prepare("SELECT id,overskrift,indhold,brugernavn,dato FROM nyheder ORDER BY id DESC") or die(mysql_error());
      $stmt->bind_result($id, $overskrift, $indhold, $brugernavn, $dato);
      $stmt->execute();
      $stmt->fetch();
    }

    function hent_kommentare() {
    }

    function opret_kommentare($brugernavn, $kommentar) {
    }
}

Hvis jeg ikke tager helt fejl, så er dette eksempel fra bogen: Advanced PHP, som jeg har liggende ved siden af mig. Mit eksempel er simpelt og var den måde jeg ville lave det på, med mindre du bruger den klasse i forvejen til at hente alle tingene ud.

Der mangler i hvert fald nogle metoder, bl.a. prepare, bind_result, execute og fetch, men hvis du har disse, men bare ikke vist dem, så kan du bare lave en while sådan her:

while($stmt->fetch()){
  echo "<div>".$stmt->fetch->title()."</div>";
}

Hvis du har lavet din metode med mysql_fetch_object()

Vi snakker muligvis forbi hinanden.

P.S. Du skal ikke poste dine koder herinde :o)
Avatar billede dkfire Nybegynder
24. maj 2010 - 13:30 #6
mcardle: Pas på med at blande mysql og mysqli sammen.
mysql_error kan ikke bruges sammen mysqli, brug i stedet $mysql->error.
Avatar billede mcardle Nybegynder
24. maj 2010 - 13:53 #7
Sorry, sorry, sorry... Jeg lukker bare r***n nu... :o) Det er mig der ikke fatter noget. Jeg har ikke arbejdet med mysqli og havde ikke set det var det vi lavede...

Jeg har nemlig, som sagt et eksempel fra Advanced PHP, hvor han laver en klasse der minder meget om den der i mysql.

Det kan være dkfire eller splazz kan hjælpe dig færdig og undskyld forviringen.

//mcardle
Avatar billede sijmonj Nybegynder
07. juni 2010 - 14:28 #8
tak for hjælpen smid svar :)
Avatar billede sijmonj Nybegynder
21. juli 2010 - 12:57 #9
lukker så :)
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