Hej!
Jag hade förut denna funktion för att låta besökarna lämna sina kommentarer i en textfil där jag skiljde av olika data med ; sen tog jag ur datan med explode kan man göra likadant i mysql, alltså det som lagras är namn;epost;kommentar;tid;namn;epost;kommentar;tid
kan jag sen hämta ur detta och dela ut det i en HTML-kod.
Hoppas ni förstår, va svårt att skriva hur.
I kommentar lagras alltså datan med skiljetecknet ; kan man då ta ur datan och dela upp den ifrån mysql?
Tack!
Kommentarer
10 svar · 709 visningar · startad av @ndreas
Det enklaste hade nog varit om varje person hade haft en egen rad i textfilen. När du läser ifrån textfilen kör du en explode på varje rad, och får då fram att $namn = filen[radnummer][0]. Nu är jag dålig på det här med att läsa och skriva till textfiler, men det ska nog gå ganska lätt för dig med stöd från manualen.
testa nåt sånt här:
<?php
// ladda filen
$line = file('filen.txt');
// räkna antal rader
$rows = count($line);
// loop
for($i = 0; $i < $rows; $i++)
{
// skapa en array
$data = explode(";",$line[$i]);
// sen är det bara att skapa html:en
$html .= "Namn: " . $data[0] . " | Tid: " . $data[1] . "<br />\n"; // osv
}
echo $html;
?>
alltså, jag tror ni missuppfattade mig, jag vill hämta ur mysql på liknande sett som man gör med scriptet som du Morpheus (Örebro rules!) skickade.
jaha ja... förlåt för att jag mjissuppfattade dig... så du har all info i en kolumn i en tabell, eller hur är det?
Det verkar vara att inte utnyttja enkelheten i att arbeta med databas.
Jag skulle hellre gjort en tabell som hette "kommentarer" och innehöll kolumnerna
namn, epost, kommentar, tid, namn, epost, kommentar, tid
och när jag hämtade allt från "kommentarer" med "SELECT * FROM `kommentarer`" och en whilesats så fick jag i varje iteration ut en vektor med all info i.
så skulle jag också gjort, men jag försöker få reda på hur @ndreas har gjort... =P
@ndreas har (om jag inte missuppfattat allt) helt enkelt en textfil med ett nytt inlägg på vid var tredje semikolon rad och de olika delarna i meddelandet separerade med semikolon.
namn1;kommentar1;tid1;namn2;kommentar2;tid2;namn3 osv osv
@ndreas :
kod för att skapa tabell:
CREATE TABLE `kommentar` (
`id` INT NOT NULL AUTO_INCREMENT,
`namn` VARCHAR( 50 ) NOT NULL ,
`epost` VARCHAR( 50 ) NOT NULL ,
`kommentar` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM COMMENT = 'enkel kommentartabell';
visa.php
<?php
mysql_connect("host","user","pass");
mysq_select_db("mindatabas");
$qGetComments = "SELECT * FROM kommentar";
$rGetComments = mysql_query($qGetComments);
while ($comment = mysql_fetch_array($rGetComments))
{
echo $comment['namn'] .' - '. $comment['epost'] .' - '. $comment['kommentar'].'<br>';
}
?>
spara.php
Du förväntas ha skickat med ett formulär som innehöll fälten "namn", "epost" och "kommentar"
<?php
$qInsert = "
INSERT INTO kommentar VALUES (NULL, '".$_POST['namn']."', '".$_POST['epost']."', '".$_POST['kommentar']."')
";
mysql_query($qInsert);
?>
När du har fått den koden att fungera så har du lärt dig buggletning, stavelsrättning och hur man INTE kodar mot Databaser, MEN det visar i stort sett vad du skall göra
Kan man ta ut de första 5 kommentarerna med denna kod!
Koden verkar sjysst, ska leka med den när jag kommer hem.
Men kan man ta ut de 5 första kommentarerna med den här koden, skulle vara skitbra att ha så.
Tack på förhand!
Du är en underbar psykolog...psykolog!
SELECT * FROM kommentar LIMIT 0,5 ORDER BY id DESC
Jag tror det där fungerar, kan vara någon annan ordning på de sista grejerna. Testa dig fram vetja :)
Det var faktiskt inte något av detta jag ville ha, jag ville kunna lägga in namn, epost och kommentarer i en och samma row och sedan hänta ur dem, har löst det på mitt egna lilla säregna sett, men vem bryr sig, det funkar ju *jublar*