04. juli 2002 - 01:33Der er
18 kommentarer og 1 løsning
Textfield eller combo vise indhold fra MySQL-base, hvordan?
Hej! Arbejder med PHP og MySQL.
Hvordan fungerer det, hvis jeg skal have vist indholdet, eller noget af indholdet fra min database i et felt på en website, eks. textfield eller combobox?
Jeg har eks. en database med nogle navne og adresser, hvis jeg gerne vil have vist alle navne i et textfield/combo på en website, hvordan gør jeg så?
I min form, skal den så stå på POST eller GET?? Her er min PHPkode for at vise hele databasen direkte på baggrunden af en website:
Ved ikke om det kan bruges til noget? Tænker på om det er nogenlunde den samme måde, jeg gør det på, hvis jeg skal vise indholdet i en boks i stedet for!
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Hej! Det var ikke til at komme igennem her på siden i går :( Jeg kan ikke helt gennemskue koden. Hvad bruger man de der "\" til?
Ok, kommer her med et rigtigt eksempel: Jeg laver et nyhedssytem med PHP og MySQL. Databasen er oprettet med et par felter "ID,SUBJECT,DATE,TEXT,NAME". Jeg kan fint indsætte nye indlæg med forms, men man skulle jo gerne kunne slette indlæg også.
Derfor havde jeg tænkt, at det skulle virke via en comboboks, som eks. viser alle overskrifterne for de indlæg der er i db. På den måde skal brugeren bare vælge en overskrift i combo'en og trykke slet. Herefter skal det valgte indlæg forsvinde fra db. Så comboen skal simpelthen hente SUBJECT i db!
Er det en forkert måde at gøre det på?? Har du forslag til hvordan koden skal se ud med en combo?
Her er lidt kode fra min fil, ved godt at det er helt forkert, men måske det hjælper dig med at rette i det:
Aha...ok!! Det er måske en god ide at kunne slette flere, men jeg havde bare tænkt mig at slette en af gangen, da det sikkert er lettere at kode...er jo en slags begynder i det her, så jeg tager det stille og roligt ;) Kan du vise mig hvordan det ser ud med en combo??
Ups... der var lige et par småting der måtte rettes til, men nu skulle det virke. Du skal bare lige oprette forbindelse til databasen og så sætte de rigtige feltnavne ind.
Jeg har lavet det sådan at du kan have det på en og samme side!
---------------------------------
<?php if($nyheder){ // åben forb. til databasen for($i = 0; $i < count($nyheder); $i++){ mysql_query("DELETE FROM nyheder WHERE id = $id"); } // luk forb. til databasen } ?>
<form action="<?=$PHP_SELF;?>" method="post"> <select name="nyheder[]" size="10" multiple> <?php connect(); // her åbnes forb. til databasen $foresp = mysql_query("SELECT * FROM nyheder ORDER BY dato"); while($news = mysql_fetch_array($foresp)){ ?> <option value="<?=$news['id'];?>><?=$news['subject']?></option> <?php } close(); // her lukkes forb. til databasen ?> </select> <input type="submit"> </form>
Hej Muddi!! Sidder og kikker lidt på det nu. Min Dreamweaver går amok med gule koder (fejl) efter, at jeg har indsat linien med: <option value="<?=$news['id'];?>><?=$news['subject']?></option>
Er det noget du har testet?? Kan desværre ikke finde ud af hvordan det skal gøres :(
Kan ikke se hvad det første PHP script gør?? Hvordan virker variablen $nyheder eller hvorfor er den med?? Hva bruger vi den til??
Er du sikker på at det hele skal stå i den rækkefølge??
<?php if($nyheder){ // åben forb. til databasen connect(); for($i = 0; $i < count($nyheder); $i++){ mysql_query("DELETE FROM nyheder WHERE id = ".$nyheder[$i]); } // luk forb. til databasen close(); } ?>
<form action="<?=$PHP_SELF;?>" method="post"> <select name="nyheder[]" size="10" multiple> <?php connect(); // her åbnes forb. til databasen $foresp = mysql_query("SELECT * FROM nyheder ORDER BY dato"); while($news = mysql_fetch_array($foresp)){ ?> <option value="<?=$news['id'];?>"><?=$news['subject']?></option> <?php } close(); // her lukkes forb. til databasen ?> </select> <input type="submit" value="send"> </form>
Denne kode virker! Den har jeg lige testet på min egen server, og det fungerer som det skal!!! :D
Dreamweaver flipper skråt fordi den tror du laver et tag i et andet tag, hvilket normalt ikke er lovligt - medmindre det ene tag er et serverside-tag, såsom ASP, JSP eller PHP!
Variablen nyheder indeholder et array med alle de id der skal slettes fra tabellen nyheder. Du kan se dette array ved at tilføje dette nederst i scriptet:
print_r($nyheder);
Det vil komme til at se således ud:
Array ( [0] => 28 [1] => 29 )
Det betyder at den sletter posterne som har id = 28 og id = 29 i tabellen!
ps. du skal lige huske at indsætte din egen kode til at åbne forb. til databasen og til at vælge databasen!
Det behøver ikke at stå helt i den rækkefølge, man kunne godt skrive:
<form action="<?=$PHP_SELF;?>" method="post"> <select name="nyheder[]" size="10" multiple> <?php connect(); // her åbnes forb. til databasen $foresp = mysql_query("SELECT * FROM nyheder ORDER BY dato"); while($news = mysql_fetch_array($foresp)){ ?> <option value="<?=$news['id'];?>"><?=$news['subject']?></option> <?php } close(); // her lukkes forb. til databasen ?> </select> <input type="submit" value="send"> </form>
<?php if($nyheder){ // afvikles kun hvis arrayet $nyheder ik er tomt // åben forb. til databasen connect(); // SLET DENNE for($i = 0; $i < count($nyheder); $i++){ mysql_query("DELETE FROM nyheder WHERE id = ".$nyheder[$i]); } // luk forb. til databasen close(); // SLET DENNE } ?>
Tak for hjælpen!! Jeg kikker på det i dag. Hvis du siger, at du har testet det, ja så skal det jo også virke.
Synes godt om
Ny brugerNybegynder
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.