Avatar billede Slettet bruger
10. august 2005 - 15:41 Der er 24 kommentarer og
1 løsning

MySQL - Hente, gemme og ændre bestemte oplysninger via PHP

Hej eksperter!
Jeg vil (som titlen antyder) gerne vide præcis hvordan man henter, ændrer og sletter oplysninger i specifikke celler i en tabel i en database via PHP (Jeg bruger MySQL som db)... Hvordan sletter man desuden alt indhold i en tabel?
Det var lidt godt og blandet... Håber på hurtigt svar!
Avatar billede Slettet bruger
10. august 2005 - 15:42 #1
(UUUPS!!! Der er fejl i titlen!)
Avatar billede jaw Nybegynder
10. august 2005 - 16:13 #2
1. DELETE FROM tabel WHERE id = 1 - vil slette rækken, hvor feltet id er 1

2. TRUNCATE TABLE tabel vil tømme hele tabellen
Avatar billede Slettet bruger
10. august 2005 - 20:46 #3
Det lyder godt...
Hvordan henter jeg så et bestemt felt i en række?
Avatar billede jaw Nybegynder
10. august 2005 - 20:57 #4
Til udskrift?

Det vil være:
SELECT feltnavn FROM tabelnavn
SELECT * FROM tabelnavn
SELECT feltnavn FROM tabelnavn WHERE felt = '$variabel'

Et par eksempler :)
Avatar billede Slettet bruger
11. august 2005 - 13:18 #5
Ok... Dit første eksempel henter.. Hvad?
Dit andet henter det hele...
Dit tredje henter... Et felt hvor der i samme serie/række/hvad-det-nu-hedder er et felt der hedder 'felt' og indeholder '$variabel'?
Avatar billede jaw Nybegynder
11. august 2005 - 13:22 #6
Mit første eksempel henter feltnavnet "feltnavn" fra tabellen med navnet "tabelnavn".
Andet eksempel henter korrekt alle felter og række fra tabellen.
Tredje henter feltet i række hvor et felt indeholder værdien $variabel. Det være sig f.eks. at du vil hente mail-feltet fra rækken, hvor brugernavnet er "jens". Så vil du få jens' mailadresse.
Avatar billede Slettet bruger
11. august 2005 - 16:34 #7
Så dit første eksempel henter feltnavn fra alle rækker?
Og hvordan sætter man data ind?
Avatar billede jaw Nybegynder
11. august 2005 - 16:37 #8
INSERT INTO tabel (felt1, felt2, felt3) VALUES ('indhold felt 1','$variabel2', '$variabel3')

INSERT INTO tabel SET `felt1` = 'indhold felt 1', `felt2` = '$variabel2', `felt3` = '$variabel3')
Avatar billede Slettet bruger
12. august 2005 - 14:27 #9
3 spørgsmål:

Overskrives eventuel eksisterende data med denne metode?
(INSERT INTO tabel (felt1, felt2, felt3) VALUES ('indhold felt 1','$variabel2', '$variabel3')

+

Hvad er forskellen på...:
INSERT INTO tabel (felt1, felt2, felt3) VALUES ('indhold felt 1','$variabel2', '$variabel3')
Og:
INSERT INTO tabel SET `felt1` = 'indhold felt 1', `felt2` = '$variabel2', `felt3` = '$variabel3')

+

Henter 'SELECT feltnavn FROM tabelnavn' feltnavn fra alle rækker?
Avatar billede Slettet bruger
12. august 2005 - 14:28 #10
(Nu skal jeg nok snart lade være at spørge om mere!)
Avatar billede jaw Nybegynder
12. august 2005 - 14:31 #11
1. Nej, en INSERT overskriver ikke, men indsætter en ny række.

2. Der er sådan set ingen forskel, bare 2 måder at opnå det samme. Personligt bruger jeg altid den første løsning, men det er op til én selv.

3. Ja, den vil hente feltnavn fra alle rækker. Det kan indsnævres på mange måde, bl.a. ved at angive en WHERE-sætning der begrænser din søgning.

Hvis du vil opdatere din tabel så hedder det UPDATE, og så ligner sætningen INSERT nr. 2. Altså f.eks.:
UPDATE tabel SET `felt1` = '$variabel1', `felt2` = '$variabel2' WHERE id = 1
Avatar billede Slettet bruger
12. august 2005 - 17:22 #12
Og så oversrives den?
(Bare send et svar!)
Avatar billede Slettet bruger
12. august 2005 - 17:23 #13
(*oversrives: overskrives)
Avatar billede Slettet bruger
12. august 2005 - 17:56 #14
Jeg kan ikke få det til at virke... Hvis du har en tabel med felterne 'bruger' og 'id', hvordan skal scriptet så præcist være hvis jeg vil udskrive indholdet 'bruger' i rækken hvor 'id' fx. er 'hf2ke'?
Avatar billede Slettet bruger
12. august 2005 - 17:56 #15
*(indholdet 'bruger': indholdet af 'bruger')
Avatar billede Slettet bruger
12. august 2005 - 17:57 #16
(jeg kludrer lidt)
Avatar billede jaw Nybegynder
13. august 2005 - 15:52 #17
Med UPDATE så kan man godt sige at du overskriver. Eller nærmere opdaterer/retter felter i rækken.

Mht. udskrivningen tror jeg du mener:

<?
//connect
$q = mysql_query("SELECT bruger FROM tabel WHERE id = 'hf2ke'") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  echo $row['bruger'];
}
?>
Avatar billede Slettet bruger
13. august 2005 - 19:24 #18
Er det nødvendigt at bruge $q?
Kan man skrive:

<?php
while($row = mysql_fetch_array(mysql_query("SELECT bruger FROM tabel WHERE id = 'hf2ke'"))) {
  echo $row['bruger'];
}
?>
Avatar billede jaw Nybegynder
14. august 2005 - 13:07 #19
Det må du jo lade komme an på en prøve. Umiddelbart kan man nok, men jeg vil bestemt holde mig til den anden løsning. Bl.a. fordi at du nu ikke har mulighed for at smide or die(mysql_error()) på.
Avatar billede Slettet bruger
14. august 2005 - 20:01 #20
Ok, det gør jeg...
Tak for din tålmodighed, nu fik jeg svar på alle mine spørgsmål!
Avatar billede jaw Nybegynder
14. august 2005 - 20:06 #21
Det var godt, og selv tak :)
Avatar billede maqhem Nybegynder
06. oktober 2005 - 21:06 #22
Hvis jeg så bare vil finde ud af, om der findes en værdi i tabellen "MinTabel" i rækken "Users" der hedder "USER no 54", hvad gør jeg så?
Avatar billede jaw Nybegynder
06. oktober 2005 - 21:31 #23
$q = mysql_query("SELECT COUNT(*) FROM minTabel WHERE users = 'USER no 54'");
if(mysql_result($q, 0) > 0) {
  echo "Der findes en række med disse data";
}

f.eks.
Avatar billede maqhem Nybegynder
07. oktober 2005 - 07:17 #24
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\programmer\easyphp\www\scripts\opret database og tabel\make.php on line 11

det skriver den når jeg propper følgende stykke kode ind:

$q = mysql_query("SELECT COUNT(*) FROM mytb WHERE user = $user");
if (mysql_result($q, 0) > 0) {
    bla, bla...
}else{
    og noget andet...
}
Avatar billede terrak Nybegynder
07. oktober 2005 - 07:22 #25
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