Avatar billede hyggelig75 Juniormester
27. maj 2019 - 21:34 Der er 11 kommentarer

get user data

hej jeg er ved at lave en hundeweb side hvor brugerne kan register deres hunde men jeg er rendt ind i et problem når brugerne ligge deres hunde ind med deres DHL nummer viser den alle hunde ved alle bruger , men jegksla have lavet såen den kun vi brugerne de hunde de selv har lagt op ???
har brugt denn koden men den viser alle hunde

<?php
  try {
  $link= new PDO('mysql:host=localhost;dbname=dogs', "root", "");
  $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $query = "SELECT * FROM hunde";
  //first pass just gets the column names
  print "<table> ";
  $result = $link->query($query);
  //return only the first row (we only need field names)
  $row = $result->fetch(PDO::FETCH_ASSOC);
  print " <tr> ";
  foreach ($row as $field => $value){
  print " <th>$field</th> ";
  } // end foreach
  print " </tr> ";
  //second query gets the data
  $data = $link->query($query);
  $data->setFetchMode(PDO::FETCH_ASSOC);
  foreach($data as $row){
  print " <tr> ";
  foreach ($row as $name=>$value){
  print " <td>$value</td> ";
  } // end field loop
  print " </tr> ";
  } // end record loop
  print "</table> ";
  } catch(PDOException $e) {
  echo 'ERROR: ' . $e->getMessage();
  } // end try
 
?>

men her kommer det sjove brugerne er på en databade med et DHLnummer og hundende ligger på en anden data base med deres DHL nummer hvordan får jeg det til at funger ?? håber i kan hjælpe
Avatar billede Rune1983 Ekspert
28. maj 2019 - 07:37 #1
Rette database kaldet til?
SELECT * FROM hunde WHERE DHLnummer = XXX
Avatar billede hyggelig75 Juniormester
28. maj 2019 - 09:36 #2
rune det virker desvære ikke *S* for så får jeg bare denne fejl.
ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'XXX' in 'where clause'
Avatar billede Rune1983 Ekspert
28. maj 2019 - 12:51 #3
Du skal sætte brugerens DHLnummer ind i stedet for XXX
Avatar billede hyggelig75 Juniormester
28. maj 2019 - 13:34 #4
ja men det kan jeg jo ikke når det er brugerne der skal have info. der kommer til at være over 600 bruger så hvordan får jeg det til at tage DHLnummer fra bruger automatisk så hver enkel bruger får deres egne info
Avatar billede Rune1983 Ekspert
28. maj 2019 - 13:46 #5
Brugeren er vel logget ind med sit DHLnummer ??
Avatar billede hyggelig75 Juniormester
28. maj 2019 - 14:04 #6
nej er logge ind med sin email men har lave hunde register om til at den bruger email osse

men når det er to forskelige data baser hvordan får jeg den til at hente fra hunde register med email ??
Avatar billede olsensweb.dk Ekspert
28. maj 2019 - 15:47 #7
>nej er logge ind med sin email men har lave hunde register om til at den bruger email osse
ligger du noget i SESSION når brugeren logger ind, kunne være du kunne anvende det til noget

>men når det er to forskelige data baser
mener du her 2 forskællige tabeller i sammen database ??

>hvordan får jeg den til at hente fra hunde register med email ??
join din hundetal med din brugertabel
https://www.tutorialspoint.com/mysqli/mysqli_using_joins.htm
Avatar billede hyggelig75 Juniormester
28. maj 2019 - 17:04 #8
olsensweb.dk har kigge længe på det du skrev men det giver ikke mening i mit tilfælde

da user id 1  har 10 hunde register med  med id 1 16 32 98 105 osv og den du hentyder til giver kun id 1 til id 1 og ikke multi id tilføgleser så skal bruge noget der kan sammenkører EMAIL

alså userid 1 email: hyggelig1975@gmail.com

og hunde id Email: hyggelig1975@gmail.com X 10 steder
Avatar billede olsensweb.dk Ekspert
28. maj 2019 - 17:37 #9
>da user id 1  har 10 hunde register med

tbl_user
id, email, navn, brugernavn, password.......

tbl_hund (dhl nummeret kunne også være en nøgle istedet for id)
id, navn, user_id, dhl_nummer.......
i ovenstående tilfælde kan en hund kun have 1 ejer,



skal en hund kunne ejes af flere, skal der laves en 3 tabel der mapper hund og user
ala

tbl_user
id, email, navn, brugernavn, password......


tbl_hund
id, navn, dhl_nummer.....

tbl_map_user_hund
user_id, hund_id
Avatar billede hyggelig75 Juniormester
28. maj 2019 - 18:01 #10
olsensweb.dk det tror jeg vil virke men hvordan pokker skriver jeg dette kan du hjælpe mig ???
Avatar billede olsensweb.dk Ekspert
29. maj 2019 - 16:08 #11
>hvordan pokker skriver jeg dette kan du hjælpe mig ???
har ikke tid pt, men her lidt du kan lege med

test data
CREATE TABLE `tbl_hunde` (
  `id` int(11) NOT NULL,
  `name` text COLLATE utf8_danish_ci NOT NULL,
  `dhl_nummer` text COLLATE utf8_danish_ci NOT NULL COMMENT 'skal måske være en int',
  `user_id` int(11) NOT NULL COMMENT 'skulle måske hedde ejer id'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


INSERT INTO `tbl_hunde` (`id`, `name`, `dhl_nummer`, `user_id`) VALUES
(1, 'terry', 'abc1234', 9),
(2, 'balder', 'xyz123', 10),
(3, 'fido', '1234567', 1),
(4, 'pluto', '654', 1);


CREATE TABLE `tbl_users` (
  `id` int(11) NOT NULL,
  `dob` date NOT NULL,
  `firstname` varchar(255) COLLATE utf8_danish_ci NOT NULL,
  `lastname` varchar(255) COLLATE utf8_danish_ci NOT NULL,
  `username` varchar(255) COLLATE utf8_danish_ci NOT NULL,
  `password` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


INSERT INTO `tbl_users` (`id`, `dob`, `firstname`, `lastname`, `username`, `password`) VALUES
(1, '2010-03-05', 'rip', 'andemad', '1', '1234'),
(3, '2009-12-04', 'rap', 'and', '3', '1234'),
(4, '2015-07-03', 'rup', 'and', '4', '1234'),
(5, '2012-07-04', 'mickey', 'mouse', '5', '1234'),
(7, '2013-07-07', 'bimmer', 'vildmand', '7', '1234'),
(8, '2017-12-24', 'jule', 'mand', '8', '1234'),
(9, '0000-00-00', 'tintin', '', 'tin', '1234'),
(10, '0000-00-00', 'poul', 'thomsen', 'dus_med_dyrene', '1234');


ALTER TABLE `tbl_hunde`
  ADD PRIMARY KEY (`id`);


ALTER TABLE `tbl_users`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_username_password` (`username`,`password`),
  ADD KEY `idx_lastname` (`lastname`);


ALTER TABLE `tbl_hunde`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

ALTER TABLE `tbl_users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;



prøv nedenstående 3 query'es i phpmyadmin med ovenstående test tabeller
SELECT * FROM `tbl_hunde` join tbl_users on tbl_hunde.user_id = tbl_users.id

SELECT * FROM `tbl_hunde` join tbl_users on tbl_hunde.user_id = tbl_users.id where tbl_hunde.user_id = 1

SELECT * FROM `tbl_hunde` join tbl_users on tbl_hunde.user_id = tbl_users.id where tbl_hunde.dhl_nummer = 1234567
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

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