PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datei auslesen


Hushi2
09.09.2002, 14:36:49
Hallo ...
ich bins wiedermal mit einer LAIENFRAGE ?

Habe eine Datei test.txt worin die User Kommentare zu Artikeln aufgeben können.
Das klappt auch gut !

Aufbau:
Datum;0815;Text,Name;
Datum;88;Text,Name;
Datum;99Text,Name;
Datum;0815;Text,Name;
usw.

Nun sollen die User auch die vorhandenen Kommentare zu den Artikeln lesen können !
d.H. es soll ein Link generiert werden, der automatisch in der text.txt nach den entsprechenden Datensätzen sucht !

Also:
Kommt eine Nr vor, so soll der Kommentar (ganze Zeile mit Datum usw. ) ausgegeben werden.
Ist eine NR doppelt vorhanden, so sollen dann natürlich beide (oder mehrere) untereinander dargestellt werden !
Ist die NR nicht vorhanden soll ein beliebiger Text ausgegen werden (z.B. kein Kommentar vorhanden)

Geht sowas ?

Ben20
09.09.2002, 18:00:18
Ließ die Zeile reihenweise aus und bau sie mit explode in ein Array um, wenn die Nummer übereinstimmt, gibt den Wert aus, falls nicht, geh' zum nächsten Datensatz.


$array0 = file("text.txt");

for($i =0; $i < sizeof($array0); $i++) {
$array1 = explode(";", $array0[$i]);

if($array1[1] == $gewuenschteNr) {
echo $array1[2];
}
}


Sollte so gehen, mußt das Script halt noch anpassen.

Hushi2
09.09.2002, 20:28:47
$fp = fopen ("text.txt","r");
while ($data = fgetcsv ($fp, 1000, ";"))
{
echo"$data[1]$data[2]";
echo"<br>";
}
fclose ($fp);
?>

bekomms nur so hin !
Also alle Daten !
Wie und wo müsste das $array() hin ???
$array0 = file("text.txt");

for($i =0; $i < sizeof($array0); $i++) {
$array1 = explode(";", $array0[$i]);

if($array1[1] == $gewuenschteNr) {
echo $array1[2];
}
}

Ben20
09.09.2002, 21:44:13
fopen brauchst Du nicht, das macht file() automatisch. In deinem Fall entspricht wohl $data meinem $array1 . Dementsprechend müßtest Du auf $data[2] = $gewuenschteNr prüfen.

Hushi2
10.09.2002, 00:25:43
Also:
wie soll der Code nun aussehen ???
*ratlosschau !

MiH
10.09.2002, 08:35:51
so wie's bereits oben steht. :)

Hushi2
10.09.2002, 11:35:05
meine Güte, mache mir viel zu viel Gedanken.
Funktioniert !
DANKE !

Gibt es noch eine Möglichkeit einen Text zu schreiben, wenn kein entsprechender Eintrag gefunden wurde ?

Und wie kann ich automatisch den Wert für $gewuenschteNr setzen lassen ?

Am liebsten mit irgen einem Link !
z.B. <a href="diesesscript.php?$gewuenschteNr=999>
Geht das ?

Wird die Datei wieder ordnungsgemäß geschlossen ?

MiH
10.09.2002, 12:04:02
klar geht das.
info.php?id=12345
und dann
f($array1[1] == $_GET["id"]) {

Hushi2
10.09.2002, 12:21:03
Dies ist jetzt das Script:
<?
$array0 = file("text.txt");
for($i =0; $i < sizeof($array0); $i++) {
$array1 = explode(";", $array0[$i]);
if($array1[1] == $zahl) {
$ja=ja;
echo "<b>Datum: </b>".$array1[0]."<br>";
echo "<b>Text: </b>".$array1[2]."<br>";
echo "<b>Von: </b>".$array1[3]."<br>";
echo "<hr>";
}
}
If($ja<>ja){
echo"Kein Kommentar vorhanden";
}
?>

Wo ich das einfügen ?
f($array1[1] == $_GET["id"]) {

MiH
10.09.2002, 13:31:08
so wies oben steht.
if($array1[1] == $_GET["zahl"]) {

zahl muss dann über index.php?zahl=123 übergeben werden.

Hushi2
10.09.2002, 14:02:23
Habs eingebaut und bin fast verzweifelt.
Bis ich drauf gekommen bin, das der $_GET ein Befehl aus PHP 4.2 x ist !
Auf dem Server läuft aber noch 4.01 daran lags.
hab jetzt einfach $id eingesetzt jetzt funzt es!

DANKE !
Würde das ganze auch funzen, wenn die Daten in einer MySQL-Tabelle stehen ?
Wie muss der Befehl aussehen um eine Tabelle aus meiner MySQL-Tabelle abzufragen !

BZW:
Wie muss der Code für file= ??? für eine MYSQL Tabelle aussehen ?

MiH
10.09.2002, 14:47:25
du musst ein select machen:
select * from news where id = '$id';

dann hast du eben den einen eintrag.

Hushi2
11.09.2002, 12:32:38
<?
$array0 = file("text.txt");
for($i =0; $i < sizeof($array0); $i++) {
$array1 = explode(";", $array0[$i]);
if($array1[1] == $zahl) {
$ja=ja;
echo "<b>Datum: </b>".$array1[0]."<br>";
echo "<b>Text: </b>".$array1[2]."<br>"; *
echo "<b>Von: </b>".$array1[3]."<br>"; *
echo "<hr>";
}
}
If($ja<>ja){
echo"Kein Kommentar vorhanden";
}
?>

Kann ich noch eine If-Abfrage innerhalb der If-Abfrage einbauen ?
Möchte, wenn das Feld $array1[2] leer ist, kein Eintrag
Möchte, wenn das Feld $array1[3] = 3 ein Bild namens 3.jpg anzeigen !
Ist das möglich ?
Wie muss der Tag an der Stelle aussehen ???
(mit * markiert )