Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
zeilenumbruch und echo problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
zeilenumbruch und echo problem


 
DarkAngel52457
16-12-2005, 20:47 
 
Hallo ich habe da ein kleines problem aber da ich noch ein echter anfäger in sachen php bin, verzweifel ich dran hier mal das script

$ip = get_ip();
if($ip == "1.1.1.1") {
$connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die("ERROR");
$selectDB = @mysql_select_db($dbName) or die("ERROR");
$what1=$_GET["what"];
$what = str_replace("|", "%", $what1);
$query=mysql_query("SELECT * FROM db WHERE what LIKE '$what' ORDER BY time DESC LIMIT 0,3") OR die(mysql_error());
while($get=mysql_fetch_array($query)){
unset($time, $what, $status, $high, $low, $why);
$time=$get[time];
$what=$get[what];
$status=$get[status];
$high=$get[high];
$low=$get[low];
$why=$get[why];
if(!$time) {
echo "-1"; break;
} else {
echo "$what $time $status $high $low $why\n";
}
}
}


also soweit geht es ja bekomme die ausgabe also das erste problem ist halt das wenn nichts gefunden wir mir nicht "-1" angezeigt wird und mein 2tes problem ist das ich ich mir ja 3 zeilen ausgeben lasse was gut geht aber das ich nach der letzten zeile noch eine leerzeile bekomme.
Kann man das irgendwie ändern mit der leerzeile

Danke

 
DarkAngel52457
16-12-2005, 23:58 
 
also habe mich jetzt nochmal etwas genauer hier im forum umgesehen und muss sagen respeckt echt sehr informative und hat mir auch geholfen einen fehler schonmal zu beseitigen und zwar mit der ausgabe von "-1"

$query=mysql_query("SELECT * FROM db WHERE what LIKE '$what' ORDER BY time DESC LIMIT 0,3") OR die(mysql_error());
$get_count=mysql_num_rows($query);
if($get_count == 0){
echo "-1";
}else{
while($get=mysql_fetch_array($query)){
unset($time, $what, $status, $high, $low, $why);
$time=$get[time];
$what=$get[what];
$status=$get[status];
$high=$get[high];
$low=$get[low];
$why=$get[why];
echo "$what $time $status $high $low $why\n";
}
}
}


aber das problem mit dem letzten zeilenumbruch besteht weiterhin wäre dankbar wenn mir da einer helfen könnte oder mir sagen kann wie ich es am besten lösen kann

 
Wurzel
17-12-2005, 00:13 
 
1. warum tust du das?unset($time, $what, $status, $high, $low, $why);
$time=$get[time];
$what=$get[what];
$status=$get[status];
$high=$get[high];
$low=$get[low];
$why=$get[why];
du kannst $get[why] (besser $get['why']) auch direkt verwenden und sparst die variablenkopiererei

2. beschäftige dich mit stringverkettung und arrays:while($get=mysql_fetch_array($query)){
$out[] = $get['what'];
}
echo implode("\n", $out); die verkettung findest du selber ;)

 
DarkAngel52457
17-12-2005, 06:44 
 
$query=mysql_query("SELECT * FROM db WHERE what LIKE '$what' ORDER BY time DESC LIMIT 0,3") OR die(mysql_error());
$get_count=mysql_num_rows($query);
if($get_count == 0){
echo "-1";
}else{
while($get=mysql_fetch_array($query)){
$out[] = $get['what'];
}
echo implode("\n", $out);
}
}



hi ich habe es nun so aber mit dieser sache stringverkettung das verstehe ich leider irgendwie nicht und weiß nicht wie ich damit umgehensoll oder wo es überhaupt hin soll hatte zwar hinbekommen das er mir die daten alle ausgibt aber nicht wie es sollte denn es wurde mir nicht

"diesunddas 1134331714 on 2 1 darum" wieder gegen sondern

"diesunddas
1134331714
on
2
1
darum"

alles untereinander was ja nicht richtig ist hoffe es könnte mir jemand behilflich sein dabei

 
hhcm
17-12-2005, 07:26 
 
Der erste Parameter für Implode ist das Trennzeichen, wenn du das Script an der Console ausführst steht alles untereinander ( \n ) wenn du das nicht willst tausche es einfach gegen --> " " <--

 
DarkAngel52457
18-12-2005, 01:54 
 
hi erstmal danke für eure hilfe also habe es nun so


$ip = get_ip();
if($ip == "1.1.1.1") {
$connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die("ERROR");
$selectDB = @mysql_select_db($dbName) or die("ERROR");
$what1=$_GET["what"];
$what = str_replace("|", "%", $what1);
$query=mysql_query("SELECT * FROM db WHERE what LIKE '$what' ORDER BY time DESC LIMIT 0,3") OR die(mysql_error());
while($get=mysql_fetch_array($query)){
$out[] = $get['what'];
$out[] = $get['time'];
$out[] = $get['status'];
$out[] = $get['high'];
$out[] = $get['low'];
$out[] = $get['why'];
}
echo implode("\n", $out);
}
}


was mir die daten ja untereinander screibt und wenn ich es mit

echo implode(" ", $out); schreibe kommen die daten zwar nebeneinander aber halt alle aber ich würde es gerne haben das ich wnn ich dann im quell test gucke es so steht

diesunddas1 1134331714 on 2 1 darum
diesunddas2 1134331714 on 2 1 darum
diesunddas3 1134331714 on 2 1 darum

also das was zusammen gehört in einer zeile und dann eine neue zeile und zum schluss keinen zeilen umbruch mehr der leer ist
hoffe ich drücke mich richtig aus.

danke

 
hhcm
18-12-2005, 09:56 
 
while($get=mysql_fetch_array($query))
{
$out = array();
$out[] = $get['what'];
$out[] = $get['time'];
$out[] = $get['status'];
$out[] = $get['high'];
$out[] = $get['low'];
$out[] = $get['why'];
echo implode(" ", $out) . "\n";
}


Sowas?

 
Wurzel
18-12-2005, 11:25 
 
Original geschrieben von hhcm
Sowas? bissi lang, oder?
while($get=mysql_fetch_array($query))
{
$out[] = implode(" ", $get);
}
echo implode("\n", $out); ^^ reicht doch, wenn er explizit die spalten ausliest, die er anzeigen will
ansonsten ansonsten würd ich es eher so machen:
while($get=mysql_fetch_array($query))
{
$out[] = $get['what'].' '.$get['time'].' '.$get['status'].' '.etc,pp;
}
echo implode("\n", $out);

 
hhcm
18-12-2005, 11:39 
 
Besser lang als für ihn unverständlich... :p

 
DarkAngel52457
18-12-2005, 20:05 
 
super danke euch hat nun wunderbar geklappt

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:48 Uhr.