semikolon Problem

quidnovi

Erfahrenes Mitglied
for Schleife falsch

Hi Ihr's

mit folgendem Code
PHP:
	if(!empty($_GET['bestellen'])){
        $sql = "SELECT * FROM gesammelt where kennung = ".$_GET['bestellen']."";
        $res = mysql_query($sql)or die (mysql_error(). "<br /> " . $sql);
		$num = mysql_num_rows($res);
		
		while ($row = mysql_fetch_object($res)){
			$spalten = array($row->pid);
			 for ($i=0;$i<count($spalten);$i++){
			 	if ($i<(count($spalten)-1)){
			 		$s = $s.$spalten[$i].";";
			 	}
			 	else{
			 		$s = $s.$spalten[$i];
			 	}
			 }
			 $spalten2 = array($row->artNr);
			 for ($i=0;$i<count($spalten2);$i++){
			 	if ($i<(count($spalten2)-1)){
			 		$w = $w.$spalten2[$i].";";
			 		}
			 		else{
			 			$w = $w.$spalten2[$i];
			 		}
			 }
			 $spalten3 = array($row->menge,);
			 for ($i=0;$i<count($spalten3);$i++){
			 	if ($i<(count($spalten3)-1)){
			 		$e = $e.$spalten3[$i].";";
			 		}
			 		else{
			 			$e = $e.$spalten3[$i];
			 		}
			 }
			 $spalten4 = array($row->laenge);
			 for ($i=0;$i<count($spalten4);$i++){
			 	if ($i<(count($spalten4)-1)){
			 		$f = $f.$spalten4[$i].";";
			 		}
			 		else{
			 			$f = $f.$spalten4[$i];
			 		}
			 }
		}
	
			
			$pid 	= '&m_PID='.$s;
			$artNr 	= '&m_artnr='.$w;
			$menge 	= '&m_menge='.$e;
			$sonder = '&m_sonder='.$f;
			echo ($pid.$artNr.$menge.$sonder);
	}

erhalte ich folgendes Ergebnis:
Code:
&m_PID=435486481482&m_artnr=MZ20163MSYMZ50330MSCMZ90007MDOME50501MSC&m_menge=5111&m_sonder=0001,956

Aussehen muss es aber so:
Code:
&m_PID=435;486;481;482&m_artnr=MZ20163MSY;MZ50330MSC;MZ90007MDO;ME50501MSC&m_menge=5;1;1;1&m_sonder=0;0;0;1,956

Sprich, die Semikolon vor allen &m... und das Letzte am Ende des Strings, dürfen nicht sein.

Mit den oben angeführten for Schleifen funktioniert das aber nicht.

Könnt Ihr mir bitte helfen? Danke
 
Zuletzt bearbeitet:
Jetzt sind zwar die Semikolon drin, aber immer eines zuviel.
PHP:
session_start();

	 // Daten aus DB holen

	//Datenbankressourcen
	include_once('./dbRessourcen.inc');

	// Verbindung zur DB aufbauen
	if(!($connection = @ mysql_connect($server,$dbUser,$dbPw)))
		echo "Verbindungsfehler zur Datenbank: " . (mysql_error());

	// Verbindung zur Tabelle wochenbericht aufbauen
	if (!mysql_select_db($dbName, $connection))
		echo "Verbindungsfehler zu Datenbanktabelle berechnungstool: " . (mysql_error());
		
	// Bestellung durchführen, Übergabe an den Server
	if(!empty($_GET['bestellen'])){
        $sql = "SELECT * FROM gesammelt where kennung = ".$_GET['bestellen']."";
        $res = mysql_query($sql)or die (mysql_error(). "<br /> " . $sql);
		$num = mysql_num_rows($res);
		
		while ($row = mysql_fetch_object($res)){
			$spalten = array($row->pid.";");
			 for ($i=0;$i<count($spalten);$i++){
			 	if ($i<(count($spalten)-1)){
			 		$s = $s.$spalten[$i].";";
			 	}
			 	else{
			 		$s = $s.$spalten[$i];
			 	}
			 }
                         ...

sieht dann so aus:
Code:
&m_PID=866;894;&m_artnr=BZ50608BSC;BZ11085BSLL;&m_menge=1;1;&m_sonder=0;0;

Hier habe ich nun nach den letzten Zahlen jeweils noch so einen Strichpunkt drin.
Wie bekomme ich diese Strichpunkte nach 894, BZ11085BSLL, bzw. 0 weg?

Das Ganze könnte man sicher mit einer for Schleife zu lösen - bin aber draufgekommen, dass ich im Wald stehe. Werde noch ganz irr!

Könnte mir bitte jemand von Euch helfen? Danke im Voraus
 
Mein Vorschlag:
PHP:
if( !empty($_GET['bestellen']) ) {
	$sql = "SELECT * FROM gesammelt WHERE kennung = ".$_GET['bestellen']."";
	$res = mysql_query($sql)or die (mysql_error(). "<br /> " . $sql);
	$num = mysql_num_rows($res);
	$array = array(
		'pid'    => array(),
		'artNr'  => array(),
		'menge'  => array(),
		'laenge' => array(),
	);
	while( $row = mysql_fetch_object($res) ) {
		$array['pid'][]    = $row->pid;
		$array['artNr'][]  = $row->artNr;
		$array['menge'][]  = $row->menge;
		$array['laenge'][] = $row->laenge;
	}
	$pid    = '&m_PID='.implode(';', $array['pid']);
	$artNr  = '&m_artnr='.implode(';', $array['artNr']);
	$menge  = '&m_menge='.implode(';', $array['menge']);
	$sonder = '&m_sonder='.implode(';', $array['laenge']);
	echo $pid.$artNr.$menge.$sonder;
}
 
Zurück