Autor Zpráva
emissary
Profil
Dobrý deň,

chcem sa spýtať, či neexistuje nejaká funkcia, ktorá by mi výsledok z dotazu na databázu dala do môjho požadovaného tvaru. Uvádzam kód:

Tabuľka v databáze:

CREATE TABLE student (
studentid SERIAL NOT NULL PRIMARY KEY,
name varchar(255)
);



Kód v PHP:

require_once('class.Student.php');

class StudentFactory {
    
    public function getStudent($id) { 
           $sql = "SELECT * FROM student WHERE studentid = $id";
           $data; // kód ktorý potrebujem vytvoriť

           if(is_array($data)  && sizeof($data)) {
              return new Student ($data[0]['studentid'], $data[0]['name'] );
           } else { 
              throw new Exception("Student s identifikátorom $id neexistuje"); 
           }
    }
}



Otázka teda znie, ako mám vytvoriť pripojenie k databáze. Resp. či to mám spravené dobre. A chcem vedieť, či existuje nejaká funkcia, ktorá dokáže $result previesť takto:

$id = 1;
$sql = "SELECT * FROM student WHERE studentid = $id";
$mysqli = new MySQLi('localhost', 'admin', '12345', 'school'); //Vôbec netuším, či sa PHP komplet postará o objekt MySQLi ktorý bude schopný fungovať s použitím rôznych metód ako je vidieť v riadku nižšie.
$result = $mysqli->query($sql);

$data = nejaka_funkcia($result); //existuje nejaká funkcia ktorá by dokázala spraviť v data pole v takom tvare ako použijem v riadku nižšie? 

$idStudenta = $data[0]['studentid'];
$nameStudenta = $data[0]['name'];

echo "Toto je študent $nameStudenta s ID $idStudenta.<br>\n";
echo "Toto je študent $data[0]['name'] s ID $data[0][studentid].<br>\n";

// $data[0]['name'] = 'name' je názov stĺpca v tabuľke databáze ako aj 'studentid' v $data[0]['studentid']
peta
Profil
while + http://us2.php.net/manual/en/mysqli-result.fetch-assoc.php
Je to v dokumentaci i s prikladem. Misto print_r to jen ulozis do pole $data[]=...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: