I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Ja, det er rigtigt nok, men jeg glemte lige at fortælle, at jeg normalt tømmer databasen hver dag, da support om handler flere emner, derfor går en masse dataer tabt hver dag. Derfor vil jeg gerne gemme dem i et eller andet sted og så kalde dem frem i et arkiv.
Da det er forskellige ting som dataer omhandler, derfor ser det ikke godt ud og supporten bliver uoverskuelig. Jeg vil gerne have en overskuelig support, hvor man evt. kunne lave en søge funktion og så gå ind i de forskellige kategorier og læse alle dataer. Nogle gange er der 100-200 "nyheder" i supporten på en dag. Det vil være godt, at alt det support ikke blot går tabt gang på gang.
Uden at love for meget, så kan du godt... Men for at kunne hjælpe, skal jeg nok have lidt mere info.
Altså, du indtaster "nyhederne" i nogen forms der gemmer det i databasen? Hvordan bliver det sorteret? Er det spørgsmål med tilhørende svar, eller hvordan? Hvordan foregår tømningen af tabellen?
For hvis du flytter det over i en anden tabel, er det intet problem at lave en søgefunktion, men du skal lige have styr på hvordan du vil sortere det. F.eks. hvis nogen poster hænger sammen med et id-nummer, f.eks. ID-nummer 1 har både et spørgmål med nr. 1 og et svar med nr. 1 eller lign.
CREATE TABLE `nyheder` ( `item_id` int(11) NOT NULL auto_increment, `overskrift` varchar(100) NOT NULL default '', `underoverskrift` text NOT NULL, `forfatter` varchar(50) NOT NULL default '', `email` varchar(50) NOT NULL default '', `tekst` text, `tekst_red` text, `fotofil` varchar(50) NOT NULL default '', `fototekst` varchar(200) NOT NULL default '', `creation_stamp` int(11) NOT NULL default '0', PRIMARY KEY (`item_id`) ) TYPE=MyISAM AUTO_INCREMENT=72 ;
Der har jeg selvfølgelig en administration, hvor jeg skriver tingene ind og så vil det fremgå af en side, som brugerne kan se. Jeg skriver flere opdateringer dagligt på et eller andet emne.
Det kunne jeg f.eks. kalde "Touren - 8. etape". Når dagen er omme, så vil jeg gerne gemme dette jeg har indtastet og nu ligger i tabellen nyheder.
Når jeg har gemt det, så skulle nyheder gerne blive tømt. Der er ikke svar tilknyttet til supporten. Det er måske bedre at alle det for nyheder i stedet for support. Hvis jeg skriver 10 nyheder, så vil jeg gerne gemme der som "Nyhederne den 10. juli 2004".
Den måde jeg tømmer tabellen på i øjeblikket er via phpmyadmin. "TØM" så er det hele tabt, som jeg har skrevet, det er lige surt i længden. ;-)
Først så synes jeg du opretter en ny tabel der f.eks. hedder: nyhed_arkiv. Den skal indeholde de samme felter (eller i hvert fald de felter du vil have overført, som du mener er vigtige) og så et felt der hedder dato af typen DATETIME.
Okey... Afprøv lige, om det her overfører fra nyheder til nyheder_arkiv:
<? $q = mysql_query("SELECT * FROM nyheder") or die(mysql_error()); $dato = date("Y-m-d"); while($row = mysql_fetch_array($q)) { //nu overfører vi alle data fra tabellen nyheder til nyheder_arkiv mysql_query("INSERT INTO nyheder_arkiv (idem_id, overskrift, underoverskrift, forfatter, email, tekst, tekst_red, creation_stamp, dato) VALUES ('$row[item_id]','$row[overskrift]','$row[underoverskrift]','$row[forfatter]','$row[email]','$row[tekst],'$row[tekst_red]','$row[creation_stamp]','$dato')") or die(mysql_error()); } ?>
Så har jeg bikset noget til dig. Nedenstående vil overføre al data fra nyheder til nyheder_arkiv, og derefter tømme nyheder. For at give de forskellige datoer en "overskrift", synes jeg du skal oprette en ny tabel indeholdende dato og så overskriften.
<? //connect
$q = mysql_query("SELECT * FROM nyheder") or die(mysql_error()); $dato = date("Y-m-d"); while($row = mysql_fetch_array($q)) { mysql_query("INSERT INTO nyheder_arkiv (overskrift, underoverskrift, forfatter, email, tekst, tekst_red, creation_stamp, dato) VALUES ('$row[overskrift]','$row[underoverskrift]','$row[forfatter]','$row[email]','$row[tekst]','$row[tekst_red]','$row[creation_stamp]','$dato')") or die(mysql_error()); echo"Overført: " . mysql_affected_rows() . " rækker<br>"; echo "Al data er flyttet fra <b>nyheder</b> til <b>nyheder_arkiv</b><br>"; }
if(mysql_num_rows($q) == 0) { echo"Overført: 0 rækker<br>"; echo"Al data er flyttet fra <b>nyheder</b> til <b>nyheder_arkiv</b><br>"; }
Men umiddelbart ser det fint ud. Jeg forstår dog ikke lige, hvordan du vil gøre det med at give den dato og navn? Det håber jeg du vil vise mig lidt mere.
Så vil jeg gerne give 200 point for det komplette script, det er kanon arbejde du har hjulpet mig med i dag!
Sådan... Først og fremmest, skal der oprettes en ny tabel (jeg har kaldt den nyheder_titel), som ser sådan ud:
DROP TABLE IF EXISTS `nyheder_titel`; CREATE TABLE `nyheder_titel` ( `id` int(11) NOT NULL auto_increment, `dato` datetime NOT NULL default '0000-00-00 00:00:00', `overskrift` varchar(255) NOT NULL default '', `id` int(11) NOT NULL default '0', UNIQUE KEY `id` (`id`) ) TYPE=MyISAM;
Hvor du så indtaster datoen og den titel du nu gerne vil have til en pågældende dag. (Dette kan jo også laves "automatisk" men lige pt. er det nu manuelt...)
Når det så er gjort, har jeg lavet det her, der indeholder en side med emner/datoer, en side med en oversigt over den valgte dato og til slut en side der viser det valgte emne på den valgte dato:
<?
//connect
//siden med dato-oversigt if(!isset($_GET['page'])) {
$q = mysql_query("SELECT *, DATE_FORMAT(dato,'%d.%m.%Y') AS date FROM nyheder_titel ORDER BY dato DESC") or die(mysql_error());
Du kan lege lidt med det, men hvis jeg skal komme med lidt "support" så er det nok sidste chance i morgen, da jeg muligvis tager væk 3 måneder tirsdag...
Jeg får fejl når jeg prøver og overfører til arkiv...
Overført: 1 rækker Al data er flyttet fra nyheder til nyheder_arkiv Overført: 1 rækker Al data er flyttet fra nyheder til nyheder_arkiv You have an error in your SQL syntax near 'Grady (COF), der kører i den grønne pointtrøje
Derudover kører Thomas Voe' at line 2 ------
Der er tegnet ' som den ikke vil godkende, hvad kan vi gøre ved det?
VALUES ('$row[overskrift]','$row[underoverskrift]','$row[forfatter]','$row[email]','$row[tekst]','$row[tekst_red]','$row[creation_stamp]','$dato')") or die(mysql_error());
skal så nok se ud sådan: VALUES ('$row[overskrift]','$row[underoverskrift]','$row[forfatter]','$row[email]','htmlentities($row[tekst])','htmlentities($row[tekst_red])','$row[creation_stamp]','$dato')") or die(mysql_error());
INSERT INTO `nyheder` VALUES (3, '8. Etape', '', 'Anders', 'anders@billeschou.net', 'De tre indlagte spurter kommer efter henholdsvis 14, 104 og 131 km. Det er Stuart O\'Grady (COF), der kører i den grønne pointtrøje<BR><BR>Derudover kører Thomas Voeckler (BLB) stadig i gult. Voeckler besidder også den hvide ungdomstrøje, men Sandy Casar (FDJ) kører i den i dag.', 'De tre indlagte spurter kommer efter henholdsvis 14, 104 og 131 km. Det er Stuart O\'\'Grady (COF), der kører i den grønne pointtrøje\r\n\r\nDerudover kører Thomas Voeckler (BLB) stadig i gult. Voeckler besidder også den hvide ungdomstrøje, men Sandy Casar (FDJ) kører i den i dag.', '', '', 1089544026);
Det dur heller ikke, jeg får samme fejl, men den når at overfør en række og under tekst i denne række står der:
htmlentities(Der er fire kategoriserede stigninger på etapen. Den første, kat. 3, kommer efter 51 km, den næste, kat. 4, lige efter med toppunkt efter 54,5 km. De to sidste er begge kat. 4 og ligger mod slutningen af etapen efter 127,5 km og 142,5 km. Paolo Bettini (QSD) er stadig iført den prikkede bjergtrøje.)
Jeg har måske ikke forklaret mig godt, nok men har prøvet og lurer dit script.
Jeg ser tog et problem i det. Nu har jeg 70 rækker med dataer i nyheder. Dem vil jeg overfører til arkiv. De 70 opdatering vil jeg gerne have trukket ud i et link og ikke i 70 links.
Jeg prøver lige at skriver et eksempel.
Jeg har en cykelopdatering.
Der er nu fire rækker i tabellen nyheder. Række 1: Armstrong stikker Række 2: Armstrong hentet Række 3: Armstrong stikker igen Række 4: Armstrong vinder
Jeg vil gerne gemme de 4 nyheder og overfører dem til nyhederarkiv. Derefter ligger der 4 rækker i arkivet. De fire rækker vil jeg gerne trække ud i en opdatering, som "Dagens etape i Tour de France".
Med andre ord, når man klikker ind på siden, hvor arkivet vises, så ser jeg et link, der hedder "Dagens etape i Tour de France". Klikker på den og så ser jeg opdatering hvor de fire rækker kommer efter hinanden...
Hvis jeg forstår dig ret, så er det præcis det jeg har... Der er et link for hver dag, hvor man så kommer ind og ser de forskellige rækker der har været den dag...
Så blev de overført, perfekt, men så skal vi jo blot have dem vist i arkivet..
Kan man lave sådan at når man er inde på overfor_filer_til_nyheder_arkiv.php at så skal man skrive en tekst, og klikke på en knap for at overfører. Teksten er den tilknyttende tekst, som kommer til at stå i nyheder_titel
Ja, det vil også være en fordel. På den måde, vil du aldrig komme ud for (evt. ved en fejl) at have to forskellige overskrifter til den samme dato.
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.