PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   mit while , if , for direkt in Variable schreiben (http://www.selfphp.de/forum/showthread.php?t=12245)

wwwwww 22.01.2006 00:03:27

mit while , if , for direkt in Variable schreiben
 
Die folgende Nachricht zum Thema stammt von: carsten schlichting, 21. Januar 2006, 22:51

hallo

weiß zufällig jemand, ob man mit while, if , for usw auch direkt in variablen schreiben kann und wie sowas ungefähr aussehen würde.

ich mein ungefähr und natürlich theoretisch so:

PHP-Code:

$ergebnis=while(dsatz=mysql_fetch_assoc($res)){
           echo
"<td>".$dsatz['name']."</td>"
           
usw.
          };


echo wird wahrscheinlich falsch sein, aber vielleicht gibt es da ja was anderes.

PHP-Code:

echo =' html code'.$ergebnis.'htmlcode'


das würde bei mir alles sehr einfach machen.

Vielleicht weiß ja jemand was??


grüße aus Stuttgart
carsten

feuervogel 22.01.2006 02:39:03

AW: mit while , if , for direkt in Variable schreiben
 
ja, es gibt etwas, das nennt sich eval(). das ist aber sicher die unfeine art, das problem zu lösen.

warum schreibst du den code, den du immer wieder an mehreren stellen brauchst und anscheinend nicht mehrmals tippen willst, nicht in eine funktion und rufst diese auf?

meikel (†) 22.01.2006 04:00:09

AW: mit while , if , for direkt in Variable schreiben
 
Zitat:

Zitat von wwwwww
weiß zufällig jemand, ob man mit while, if , for usw auch direkt in variablen schreiben kann und wie sowas ungefähr aussehen würde.

Ja klar kann man das.

Zitat:

ich mein ungefähr und natürlich theoretisch so:
PHP-Code:

$ergebnis=while(dsatz=mysql_fetch_assoc($res)){
           echo
"<td>".$dsatz['name']."</td>"
           
usw.
          };



Da das syntaktisch falsch ist, beginnt jetzt das große Rätselraten, was Du möchtest.

Eventuell suchst Du das:
PHP-Code:

define('NL'"\n");

$sql 'SELECT feld1, feld2, feld3 FROM tabelle WHERE dies = das';
$res mysql_query($sql) OR die(mysql_error());

$text '<table>' NL;

while(
$dsatz mysql_fetch_assoc($res))
{
   
$text .= '<tr>' NL;
   foreach (
$dsatz AS $name => $wert)
   {
       
$text .= '<td>' $name '</td>' '<td>' $wert '</td>' NL;
   }
   
$text .= '</tr>' NL;
}
$text .= '</table>' NL;

# irgend was

echo $text;

# was anderes 


JB 23.05.2006 01:00:23

AW: mit while , if , for direkt in Variable schreiben
 
Ich möchte hier anknüpfen, mit meinem Problem:

Also ich hab nun sämtliches hier aus dem Post ausprobiert, komme aber auf keinen grünen Zweig. Mein Grundproblem ist die von carsten ähnlich (wie bekomme ich eine variable aus einer while schleife).

PHP-Code:

  $connection mysql_connect($dbhost$dbuser$dbpw) or die($errmsg1);
  
$db_select mysql_select_db($tname$connection) or die($errmsg2);
  
$result mysql_query("SELECT id FROM beitrag WHERE send='0' AND freigabe='1' ORDER BY id DESC");
  while (
$eintrag mysql_fetch_array($result)) 
     {
    
$gid=$eintrag['id'];
             
$test="$gid";
    }
  @
mysql_close($connection); 

Die Anzahl der id ist von Abfrage zu Abfrage verschieden. Das Ergebnis möchte ich gerne zusammengefasst in eine Variable haben. Diese wird nicht als echo ausgegeben, sondern dann später in eine andere Datenbank gespeichert.
Gibt es da eine lösung, bzw. kann mir jemand die lösung von meikel genauer erklären. die umsetzung habe ich leider nicht geschafft.

JB

xabbuh 23.05.2006 09:19:32

AW: mit while , if , for direkt in Variable schreiben
 
Zitat:

Zitat von JB
Die Anzahl der id ist von Abfrage zu Abfrage verschieden. Das Ergebnis möchte ich gerne zusammengefasst in eine Variable haben.

Was bedeutet zusammengefasst für dich (Summe, Durchschnitt etc.)?

KTB 23.05.2006 09:33:16

AW: mit while , if , for direkt in Variable schreiben
 
Wahrscheinlich will er in seinem Beispiel alle id's in eine Variable speichern.
Da gibt es zwei Möglichkeiten:
Entweder per Array, oder du schreibst alles in einem String in eine Variable und zerpflückst ihn dann ggf.
Momentan überschreibt das Script jedes mal den Inhalt die Variable test, so dass dort nur der letzte Wert steht.

JB 23.05.2006 12:05:43

AW: mit while , if , for direkt in Variable schreiben
 
Gut, das war vielleicht ungenügend erklärt.
Also, die ID soll als Text gespeichert werden (nicht zusammengewählt im sinne von Summe).

PHP-Code:

 $connection mysql_connect($dbhost$dbuser$dbpw) or die($errmsg1); 
  
$db_select mysql_select_db($tname$connection) or die($errmsg2); 
  
$result mysql_query("SELECT id FROM beitrag WHERE send='0' AND freigabe='1' ORDER BY id DESC"); 
  while (
$eintrag mysql_fetch_array($result))  
     { 
     
$gid=$eintrag['id'];
     
$text=$eintrag['title']; 
     echo 
"<font class='check'>$gid - $text</font><br>"
    } 
  @
mysql_close($connection); 

Vielleicht ist es so besser erklärt. Das Echo würde ja jedesmal die beiden Variablen ausgeben. Nun möchte ich aber nicht, dass die untereinander ausgegeben werden, sondern dass der vollständige Inhalt der Schleife in eine variable gespeichert wird, damit ich diesen als einen Inhalt in eine weitere Datenbank speichern kann.

@xabbuh: Nicht als Summe (zusammenzählen), sondern nacheinander. Sry, vielleicht etwas doof erklärt von mir gewesen.

@KTB: Wie würde das mit dem String funktionieren?
Zerpflücken brauche ich im übrigen nicht, da dies Variable dann immer im gesamten ausgegeben werden würde.

feuervogel 24.05.2006 00:20:09

AW: mit while , if , for direkt in Variable schreiben
 
dann hänge die variablen doch einfach an einen string mit dem . operator dran...?

$string = "1";

$string .= " 2";

$string .= " 3";

usw halt in der schleife...

p.s.: sie in einem array zu speichern und dieses dann zu serialisieren ermöglicht auch die speicherung in einer datenbank.

JB 24.05.2006 00:51:47

AW: mit while , if , for direkt in Variable schreiben
 
und wieder einmal.....
.... ist die lösung doch einfacher als ich zuerst dachte.
Ich glaube ich sollte aufhören, ich denke zu kompliziert.

@feuervogel
Erneut gilt Dir mein Dank. *verneig* (hätte man zumindestens im mittelalter gemacht)

Dein Tipp war goldrichtig.

thx, for all

EDIT: Jetzt habe ich doch noch ein kleines Prob: Wie funktioniert das mit dem aray und was ist serialisieren?

feuervogel 24.05.2006 20:48:50

AW: mit while , if , for direkt in Variable schreiben
 
du machst ein array

$array = array();

while( $res = mysql_fetch... ) {

$array[] = $res[ 'id' ];

}

nun hast du ein array mit ids.

desweiteren benutzt du serialize:

$serializedArray = serialize( $array );

jetzt ist $serializedArray ein string den man wunderbar in der datenbank in einer zelle speichern kann.

wenn du in ausliest musst du den string natürlich unserializen mit

$unserializedArray = unserialize( $res[ 'array_mit_ids' ] );


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:31:32 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.