Antworten auf deine Fragen:
Neues Thema erstellen

Problem mit MySQL auslesen und ausgeben in PHP

r00kie

Noch nicht viel geschrieben

Hallo Community, ich habe folgende PHP Funktion geschrieben, mit der ich gerne meine Werte aus meiner Tabelle auslesen möchte, jedoch bekomme ich bei der Ausgabe immer nur das wort "Array" angezeigt. Jedoch stehen in meiner Tabelle andere Werte.

Die Funtion lautet wie folgt (wird im anschluss auch aufgerufen):
Code:
function read_comments()
{

    $error = connect();
    
    if ($error == 0)
    {
        $alle_news=array();
        $abfrage = "SELECT * FROM news ORDER BY id DESC";
        $qry = mysql_query($abfrage);
        
        if ($qry)
        {
            
            while($news=mysql_fetch_array($qry))
            {
                array_push($alle_news, $news);
                
            }    
            
            foreach($alle_news as $news)
            {
            echo $news;
            echo "<br>";
            }
        }
        else
        {
            $error=3;
        }
    }

    return $error == 0 ? $alle_news : $error;

}

read_comments();
 

sokie

Mod | Web

AW: Problem mit MySQL auslesen und ausgeben in PHP

Das liegt daran, dass $news auch schon ein array ist.
$news enthält zB die id als einen wert, ein anderer wird die überschrift sein, ein anderer der Beitragsinhalt etc... und das wiederum in jedem Element von $alle_news.
 

r00kie

Noch nicht viel geschrieben

AW: Problem mit MySQL auslesen und ausgeben in PHP

OK, wenn ich das jetzt richtig verstanden habe, muss ich ein array herausnehmen, ich habe mich dazu entschieden, $alle_news heraus zu nehmen. Leider klappt es auch nach der Änderung des Codes nicht:

Geänderter Code:
Code:
if ($error == 0)
    {
        //$alle_news=array();
        $abfrage = "SELECT * FROM news ORDER BY id DESC";
        $qry = mysql_query($abfrage);
        
        if ($qry)
        {
            
            while($news=mysql_fetch_array($qry))
            {
            echo $news;
            echo "<br>";
                
            }    
            
        }
        else
        {
            $error=3;
        }
    }



/Edit
: Habe den Fehler gefunden, habe vergessen anzugeben, welche Spalte ich ausgeben will.
 
Zuletzt bearbeitet:

tgreve

********

AW: Problem mit MySQL auslesen und ausgeben in PHP

Dein Problem ist, dass durch mysql_fetch_ARRAY ein Array zurückgegeben wird.
Je nachdem, wieviele Spalten deine Tabelle hat kannst du es zum Beispiel mit:
echo $news[0]."<br>";
echo $news[1]."<br>";
echo $news[2]."<br>";
ausgeben.

Aber das ist eine nicht so schöne Variante.
Mach es lieber mit:

$Datenvorhanden = 0;
$sql = "SELECT Spaltenname1, Spaltenname2, Spaltenname3 from news FROM news ORDER BY id DESC";
$ergebnis=mysql_query($sql,$verbindung);

while($row=mysql_fetch_array($ergebnis))
{
$Datenvorhanden = 1;
$spalten = mysql_num_fields($ergebnis);
for($i=0;$i<$spalten;$i++)
{
$Feldname=mysql_field_name($ergebnis,$i);
switch ($Feldname)
{

case Spaltenname1:
$Spaltenname1 = $row[$i];
echo $Spaltenname1."<br>";
break;

case Spaltenname2:
$Spaltenname2 = $row[$i];
echo $Spaltenname2."<br>";
break;

case Spaltenname3:
$Spaltenname3 = $row[$i];
echo $Spaltenname3."<br>";
break;

default:
echo $Feldname." Nicht vorhanden <br>";
}
}
}

if ($Datenvorhanden == 0)
echo "Keine Daten vorhanden!<br>";

----------------
Viel Erfolg weiterhin! :)

So, nochmal übersichtlicher formatiert: ;)

Code:
 $Datenvorhanden = 0;
 $sql = "SELECT Spaltenname1, Spaltenname2, Spaltenname3 from news  FROM news ORDER BY id DESC";
 $ergebnis=mysql_query($sql,$verbindung);
 
 while($row=mysql_fetch_array($ergebnis))
 {
     $Datenvorhanden = 1;
     $spalten = mysql_num_fields($ergebnis);
     for($i=0;$i<$spalten;$i++)
     {
         $Feldname=mysql_field_name($ergebnis,$i);
         switch ($Feldname)
         {
                         
             case Spaltenname1:
                $Spaltenname1 = $row[$i];
                echo $Spaltenname1."<br>"; 
                break;
 
             case Spaltenname2:
                $Spaltenname2 = $row[$i];
                echo $Spaltenname2."<br>"; 
                break;
                
               case Spaltenname3:
                  $Spaltenname3 = $row[$i];
                  echo $Spaltenname3."<br>"; 
                break;
             
                 default:
                 echo $Feldname." Nicht vorhanden <br>"; 
             }
         }
 }
 
 if ($Datenvorhanden == 0)
 echo "Keine Daten vorhanden!<br>";
Bitte zum Editieren der Beiträge die 'Edit' Funktion benutzen!
 
Zuletzt bearbeitet von einem Moderator:

r00kie

Noch nicht viel geschrieben

AW: Problem mit MySQL auslesen und ausgeben in PHP

hallo, hab es jetzt nochmal etwas umgeschrieben, danke für die schnelle hilfe!
Es geht alles super!
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.619
Beiträge
1.538.363
Mitglieder
67.540
Neuestes Mitglied
Alex Weidner
Oben