PHP array stehe auf dem Schlauch

bambid

Mitglied
Hallo zusammen

Ich habe folgendes Problem:
Ich habe eine Datenbank bei dieser hat es einige felder (id, titel, variable, beschreibung)

Nun habe ich die folgende Abfrage gemacht:
$query1 = "SELECT `titel` FROM `daten` WHERE `beschreibung` is NULL";
$result1 = mysql_query($query1);
$result1 = mysql_fetch_array($result1);
$select1 = $result1; // $daten = array("asc", "desc"); (Inhalt von $select)
echo $select1;

doch dies ergibt bei mir im Echo "Array"

sollte da im Echo nicht alle Titel mit Komma getrennt aufgelistet werden wie es in einem Array sein sollte.

Ich möchte, nur so als Tipp, nach dieser Abfrage bei der Beschreibung jeder Zeile einfügen:
Dies ist Titel $titel

$titel soll ja dann die entsprechende titel sein bei welchem ich gerade in die Beschreibung schreibe.

Das ist dann das nächste was ich versuchen werde. Doch dies ist dann der nächste Schritt.

Für jede Hilfe bin ich sehr dankbar.

MfG bambid
 
Hallo,

du fetcht das ganze als array. Also bekommst du halt auch ein Array;) kannst dir ja eine foreach schreiben die dein array ausgibt oder ein while;)

beispiel:
PHP:
$x=0;
while($x<count($select1) {
echo $select1[$x]
$x++;
}
// Um den Inhalt des ganzen Array testweise zu sehen, schreib mal folgendes in deinen code:
echo '<pre>'.print_r($select1, true).'</pre>';

Sollte nur ein Beispiel sein, kannst es auch mit einer for lösen oder foreach ;) wie dus gerne hättest.
 
Nein, ein Array ist keine kommagetrennte Liste von Werten. Ein Array ist ein Datentyp in dem eine beliebig lange Liste von Werten eingetragen werden kann um diese Werte durch Sortierung, Umordnung oder Manipulation für den eigenen Zweck optimal zu verarbeiten.

Schreib statt

Code:
echo $select1;

eine kleine for-, while- oder foreach-Schleife um die in dem Array enthaltenen Werte auszugeben und/oder in extra Variablen zu speichern. Beispiel:

Code:
foreach($select1 as $key => $value) {
 echo $key." hat den Wert ".$value."<br />";
}

Da dein Statement ohnehin nur die Spalte "title" in das Array schreibt, kannst Du auch einfach per

Code:
echo $select1[0];

dessen Wert ausgeben lassen.

Achtung: Das setzt natürlich alles voraus, dass dein SQL-Statement nur genau 1 Ergebnis ergibt. Wenn Du mehr Ergebnisse erhälst, solltest Du eine while-Schleife verwenden um diese einzeln ausgeben zu können.
 
Hallomdanke für den tip:
Also ich habe nun nach einigem probieren mit der while schlaufe auch etwas versucht, doch leider werden die daten nicht in die datenbank geschrieben!

PHP:
while($row = mysql_fetch_object($ergebnis))
{
  mysql_query ("INSERT INTO daten (id, titel, variable, beschreibung) VALUES (NULL, $row->titel,bilder,dies ist bild $row->titel");
}
Doch leider funktioniert dies nicht so!

Es sollte eine neue zeile ergeben mit diesen daten!
Und dann wieder eine mit den nächsten daten!

Wie erstelle ich das?

Mfg bambid
 
Wenn Du nur Datensätze kopieren willst, brauchst Du nur ein einzelnes SQL-Statement und keine while-Schleife:

Code:
INSERT INTO daten (titel, variable, beschreibung)  SELECT `titel`, `bilder`, `titel` FROM `daten` WHERE `beschreibung` is NULL

Ansonsten kann man zu deinem Code-Beispiel nur sagen, dass es, wenn Du es in genau der Form nutzt, natürlich falsch ist. "dies ist ein bild $row->titel" kann sicher nicht so gespeichert werden. Wenn Du dir konkret helfen lassen willst, sag was Du wirklich vor hast und zeig den richtigen, von dir verwendeten Code.
 
Zurück