Anzeige - [Interessiert an einer Anzeige?]
(?) Tags raten (?) array, query (edit)
 
Reply to this topicStart new topicStart Poll
> Array aus Query generieren
radarin
GIHD mbH
  Geschrieben am: Di 17.01.2006, 02:03
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


Hallo Liste

Ich möchte ein Array erstellen

CODE
$liste = array("computer", "speicher", "laufwerk");


Der Inhalt soll allerdings aus der Datenbank kommen

CODE

$sql = "SELECT begriff FROM tabelle";
$result = mysql_query ($sql);


Wie muss ich das lösen? Meine Versuche haben bis jetzt immer in Fehlermeldungen geendet...

Gruss René
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
 
Joel
Enzian Media GmbH
#2 Geschrieben am: Di 17.01.2006, 08:39 (+06:36)
Report PostQuote Post

AyomRank 7
**************

Gruppe: Member (aktiv)
Beiträge: 1436
Mitglied seit: 17.06.2004


Hallo René,

QUOTE

$result = mysql_query( "SELECT begriff FROM tabelle" );
while( $row = mysql_fetch_array( $result ) ) {
  $liste[] = $row['begriff'];
}


So sollte es funktionieren. Viel Glück tongue.gif.

Gruess,
Joel


--------------------
EagleFind.com - Die visuelle Suchmaschine
Enzian Media bietet Entwicklung von Websites, Videos und Webcam-Streaming.

Suxedoo
Top
PMUsers WebsiteICQ
Top
 
radarin
GIHD mbH
#3 Geschrieben am: Di 17.01.2006, 20:50 (+12:10)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


Danke Joel, aber es klappt trotzdem nicht.

Folgendes funktioniert:

CODE

function GlossarFilter($Nachricht)
{
$Glossars = array("SPI", "Port", "RAM");
foreach($Glossars as $Glossar)
{
$Nachricht = str_replace($Glossar, "<a href=\"test.php?link=$Glossar\">".$Glossar."</a>", $Nachricht);
}
return $Nachricht;
}

$Nachricht = "Die Begriffe SPI, RAM oder Port sagen nicht allen Usern etwas.";
$Nachricht = GlossarFilter($Nachricht);
echo $Nachricht;


Die Begriffe in der Nachricht welche im Array definiert sind ($Glossars = array("SPI", "Port", "RAM")wink.gif werden als Link dargestellt.
Nun möchte ich aber die Begriffe (SPI, Port, RAM) aus der Datenbank mittels Query holen, sodass im Array immer alle erfassten Begriffe des Glossars vorhanden sind und so in den Beschreibungen immer alle Begriffe verlinkt sind.

Ich hoffe ich habe mich verständlich ausgedrückt. Habs auch schon mit Google versucht, habe aber keine Lösung gefunden, die die DB ins Array kommt. bekomme immer Fehlermeldungen, leider..
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
radarin
GIHD mbH
#4 Geschrieben am: Do 19.01.2006, 02:34 (+29:44)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


Danke Stefan, aber das hilft auch nicht. So funktioniert es mit fix def. Wörtern:

$Glossars = array("SPI", "Port", "RAM");

Die Drei wörter sollen nun aber aus der DB kommen. Das Array von Dir sieht so aus:

Array ( [0] => Paketfilter [1] => Port [2] => SPI )
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
radarin
GIHD mbH
#5 Geschrieben am: Do 19.01.2006, 13:06 (+10:31)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


Danke, bekomme leider gar nix oder nur Fehlermeldungen...

Was ich will ist ein Glossar. Begriff und text (Erklärung) in der DB, das wird als Liste ausgegeben. Kommt im Text ein Begriff vor der bereits in der Db erfasst ist, soll dieser damit verlinkt sein. Dafür habe ich einen Badword-Filter angepasst. Statt gegen Sterne oder 'zensur' zu ersetzen, ersetze ich gegen einen Link. Das klappt soweit perfekt. Es wäre aber umständlich, wenn ich jeden Begriff den ich in die DB eintrage im File ebenfalls ins Array schreiben müsste, das soll eben automatisch funktionieren.

Ich hab schon versucht den String im Array so zu erstellen:

CODE

$ii = 1;
$wordlist = "";
while($rst = mysql_fetch_array($result,MYSQL_BOTH))
 {
 if($wordlist==""){$wordlist="\"".$rst[begriff];}else{$wordlist = $wordlist."\",\"".$rst[begriff];}
 
 
 $ii ++;
 }//endwhile
 $wordlist=$wordlist."\"";


echo "WordList: ".$wordlist."<br>";

//$Glossars = array("SPI", "Port", "RAM"); Diese Zeile funktioniert im original
$Glossars = array($wordlist);


Das funktioniert aber auch nicht.
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
radarin
GIHD mbH
#6 Geschrieben am: Fr 20.01.2006, 06:28 (+17:22)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


Ist es wirklich nicht möglich die Daten anstatt fix im Quelltext aus der DB zu integrieren..?
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
radarin
GIHD mbH
#7 Geschrieben am: Fr 20.01.2006, 23:36 (+17:08)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


Datenbankabfrage und Array erstellen:

CODE

$sql = "SELECT begriff FROM daten";
$rs = mysql_query ($sql);

while($daten = mysql_fetch_array($rs))
{
 $glossars[] = $daten['begriff'];
}

print_r($glossars);


Array: ( [0] => Paketfilter [1] => Port [2] => SPI )

Die Funktion im 'Original':

CODE

function LinkFilterGlossar($NachrichtGlossar)
{
$LinksGlossar = array("SPI", "Port", "RAM"); //Liste einlesen
foreach($LinksGlossar as $LinkGlossar)
{
$NachrichtGlossar = str_replace($LinkGlossar, "<a href=\"test.php?link=$LinkGlossar\">".$LinkGlossar."</a>", $NachrichtGlossar);
}
return $NachrichtGlossar;
}

$NachrichtGlossar = "Ein Chip mit RAM hat weder Port noch SPI";
$NachrichtGlossar = LinkFilterGlossar($NachrichtGlossar);
echo$NachrichtGlossar;


Gibt den Text korrekt aus:

Ein Chip mit RAM hat weder Port noch SPI

Nun passe ich die Zeile //Liste einlesen an:

CODE

$LinksGlossar = $glossars;


Warning: Invalid argument supplied for foreach()

foreach($LinksGlossar as $LinkGlossar)

Ist die modifizierte Zeile korrekt? Warum plötzlich der Fehler, wenn es doch gehen sollte? Hoffe Du kannst mit der Meldung was anfangen
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 

#8 Geschrieben am: Sa 21.01.2006, 00:40 (+01:03)
Report PostQuote Post

AyomRank 1
**

Gruppe: Member (inaktiv)
Beiträge: 0
Mitglied seit: --


Hallo radarin,

Anscheinend finktioniert ja jeder Teil für sich.

Poste doch mal deine Funtkion im ganzen, so wie sie nicht funktioniert oder noch besser Funtkionsaufruf und -funktion zusammenhängend.

Gruss

Tümmel
Top
PMEmail Poster
Top
 
radarin
GIHD mbH
#9 Geschrieben am: Sa 21.01.2006, 06:17 (+05:37)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


Scheint ja wirklich eine Knacknuss zu sein. Also nochmals der Code der den vorhin erwähnten Fehler bringt am Stück (Array aus DB):

CODE

<?php
include("config.inc");

$database = mysql_connect($dbhost, $dbuser, $dbpasswd);
mysql_select_db($dbname, $database);

$sql = "SELECT begriff".  
      " FROM daten";
 $rs = mysql_query ($sql);
 
 while($daten = mysql_fetch_array($rs)) {
 $glossars[] = $daten['begriff'];
 }
 print_r($glossars);
 
function LinkFilterGlossar($NachrichtGlossar)
{
$LinksGlossar = $glossars;
foreach($LinksGlossar as $LinkGlossar)
{
$NachrichtGlossar = str_replace($LinkGlossar, "<a href=\"test.php?link=$LinkGlossar\">".$LinkGlossar."</a>", $NachrichtGlossar);
}
return $NachrichtGlossar;
}

$NachrichtGlossar = "Ein Chip mit RAM hat weder Port noch SPI";
$NachrichtGlossar = LinkFilterGlossar($NachrichtGlossar);
echo$NachrichtGlossar;

mysql_close($database);
?>


Und so wie er grundsätzlich funktioniert mit manuellem Array:

CODE

<?php
include("config.inc");

$database = mysql_connect($dbhost, $dbuser, $dbpasswd);
mysql_select_db($dbname, $database);

$sql = "SELECT begriff".  
      " FROM daten";
 $rs = mysql_query ($sql);
 
 while($daten = mysql_fetch_array($rs)) {
 $glossars[] = $daten['begriff'];
 }
 print_r($glossars);
 
function LinkFilterGlossar($NachrichtGlossar)
{
$LinksGlossar = array("SPI", "Port", "RAM");
foreach($LinksGlossar as $LinkGlossar)
{
$NachrichtGlossar = str_replace($LinkGlossar, "<a href=\"test.php?link=$LinkGlossar\">".$LinkGlossar."</a>", $NachrichtGlossar);
}
return $NachrichtGlossar;
}

$NachrichtGlossar = "Ein Chip mit RAM hat weder Port noch SPI";
$NachrichtGlossar = LinkFilterGlossar($NachrichtGlossar);
echo$NachrichtGlossar;

mysql_close($database);
?>


Ich habe auch schon versucht den Textstring fürs Array so zu generieren:

CODE

$ii = 1;
$wordlist = "";
while($rst = mysql_fetch_array($result,MYSQL_BOTH))
 {
 if($wordlist==""){$wordlist="\"".$rst[begriff];}else{$wordlist = $wordlist."\",\"".$rst[begriff];}
 
 
 $ii ++;
 }//endwhile
 $wordlist=$wordlist."\"";


echo "WordList: ".$wordlist;


WordList: "Paketfilter","Port","SPI"

CODE

$LinksGlossar = array($wordlist);


Gibt zwar keinen Fehler, aber es werden auch keine Links ersetzt...

Identische Schreibweise der Begriffe, aber warum geht das mit der Variablen nicht..?
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 

#10 Geschrieben am: Sa 21.01.2006, 12:55 (+06:38)
Report PostQuote Post

AyomRank 1
**

Gruppe: Member (inaktiv)
Beiträge: 0
Mitglied seit: --


Hallo Randarin,

Eigentlich funtkioniert dein script ja.
Nur ist $glossars in der Funktion lokal unbekannt. (Geltungsbereich für Variablen)

fügt mal als erstes in funktion

global $glossars

ein.

Gruss

Tümmel
Top
PMEmail Poster
Top
 
radarin
GIHD mbH
#11 Geschrieben am: Sa 21.01.2006, 14:21 (+01:26)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


Super Tuemmel! Besten Dank!

Das war genau das was noch gefehlt hat. Jetzt scheint es zu funktionieren. Wenn es fertig ist steht es in meinem Downloadbereich zur Verfügung.

Auch den Anderen Danke, grundsätzlich hattet ihr ja auch recht biggrin.gif
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/10166

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Schrift mit bestimmter farbe generieren Klegs 100 1 So 27.07.2008, 21:15
Array in Funktion übernehmen radarin 254 3 Mo 16.06.2008, 22:56
pdf generieren pangu 139 2 So 11.05.2008, 18:07
MySQL Query msolt 176 3 Mo 10.03.2008, 17:00
Suche Mysql-Query MarkusH 149 4 Fr 7.03.2008, 21:04
Generieren von User-IDs cr4m0 236 12 Fr 29.02.2008, 21:52
Einzelne Werte im Array nachträglich öndern radarin 109 2 Sa 9.02.2008, 19:52
Prüfen ob Element ein Array ist pl_90 506 2 Mo 24.12.2007, 12:37
Array auslesen G.P. 235 2 Mi 26.09.2007, 14:51
MYSQL query Invertieren Daniel_CB 202 3 Mi 5.09.2007, 19:13




Anzeige - [Interessiert an einer Anzeige?]



Anzeigen


[Interessiert an einer Anzeige?]