CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
22.01.2006, 00:03:27
|
Anfänger
|
|
Registriert seit: Aug 2005
Beiträge: 21
|
|
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
|
22.01.2006, 02:39:03
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
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?
Geändert von feuervogel (22.01.2006 um 02:45:37 Uhr)
|
22.01.2006, 04:00:09
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
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
|
23.05.2006, 01:00:23
|
Anfänger
|
|
Registriert seit: May 2005
Beiträge: 34
|
|
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
|
23.05.2006, 09:19:32
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
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.)?
|
23.05.2006, 09:33:16
|
Member
|
|
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
|
|
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.
__________________
In der Ruhe liegt die Kraft!
|
23.05.2006, 12:05:43
|
Anfänger
|
|
Registriert seit: May 2005
Beiträge: 34
|
|
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.
|
24.05.2006, 00:20:09
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
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.
Geändert von feuervogel (24.05.2006 um 00:20:41 Uhr)
|
24.05.2006, 00:51:47
|
Anfänger
|
|
Registriert seit: May 2005
Beiträge: 34
|
|
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?
Geändert von JB (24.05.2006 um 01:26:59 Uhr)
|
24.05.2006, 20:48:50
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
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' ] );
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:58:29 Uhr.
|