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)
Variablen aus dem query [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Variablen aus dem query


 
YourHammer
16-05-2006, 18:23 
 
Alle Einträge des querys weitergeben und nicht nur Einen!

Derzeit klappt es mit dem ersten Echo das alles wiedergegeben wird.
Wenn ich das Ergebnis aber in eine Variable stecke, hab ich nur mehr einen Eintrag davon.

Ich muss aber alle Einträge in die Variable stecken und kenne den Grund nicht warum es nicht richtig funktioniert.

<?php
error_reporting( E_ALL );
$HOST = "localhost";
$ID = "xx1";
$PW = "xx2";
$DB1 = "xx3";
$conn_id = mysql_connect($HOST,$ID,$PW);
mysql_select_db($DB1,$conn_id) or die ("Konnte keine Verbindung zur Datenbank herstellen");


$sql = "select ArtNumber from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
while ($row = mysql_fetch_assoc($result))
echo $row['ArtNumber']."\n"; // Dieses Echo zeigt alle Einträge dieser Spalte an!
//So würde ich es in der Variable brauchen.
$shop_artikelnr = $row['ArtNumber']."\n"; // Hier möchte ich das Ergebnis in eine Variable stecken!

mysql_free_result($result);

echo "$shop_artikelnr"; // Und hier testweise diese Variable wiedergeben!
//Aber es wird nur ein ergebnis gezeigt und nicht wie bei
//den anderen Echo alle Einträge dieser Spalte.

?>

Hier nur ne Übersicht der Tabelle:

`ArtNumber` varchar(80) NOT NULL default '',
`Title` varchar(80) NOT NULL default '',
`Description_short` mediumblob NOT NULL,
`DisplayPrice` varchar(80) NOT NULL default '',
`Img_url` varchar(80) NOT NULL default '',
`DeepLink1` varchar(250) NOT NULL default '',
`ProductCategoryID` varchar(80) NOT NULL default '',
`ProductCategoryName` varchar(80) NOT NULL default '',
`PricePrefix` varchar(80) NOT NULL default '',
`Price` varchar(80) NOT NULL default '',
`PriceSuffix` varchar(80) NOT NULL default '',
`Currency_Symbol` varchar(80) NOT NULL default '',
`Description` mediumblob NOT NULL,
`Img180_url` varchar(80) NOT NULL default ''
) TYPE=MyISAM;

 
Quetschi
16-05-2006, 18:26 
 
Hallo,

die Problembeschreibung bitte nächstes mal als normalen Text hier posten - die Komments im PHP-Code bitte nur zur unterstüzung nutzen.

suchst du sowas?

$shop_artikelnr .= $row['ArtNumber']."\n"; der Punkt vorm =-zeichen - teste mal.

 
YourHammer
16-05-2006, 18:33 
 
Fehler:

Notice: Undefined variable: shop_artikelnr in /home/www/web1/html/123.php on line 53

$shop_artikelnr .= $row['ArtNumber']."\n";

 
Quetschi
16-05-2006, 18:35 
 
gut - und der Unterschied zu der Zeile die ich dir gepostet hab ist welcher? ;)

EDIT
PHP ist streng eingestellt bei dir - setz mal die Variable vor deiner while-Schleife.

 
YourHammer
16-05-2006, 18:39 
 
Sry wegen EDIT!

Notice: Undefined variable: row in /home/www/web1/html/123.php on line 51

Notice: Undefined variable: shop_artikelnr in /home/www/web1/html/123.php on line 51

Hab Root auf meinen Server wenn nötig.

 
Quetschi
16-05-2006, 18:43 
 
mach mal ganz einfach $shop_artikelnr = "";VOR der while-Schleife - ist nur ein Hinweis dass die Variable noch nicht definiert wurde - was in PHP nicht Pflicht ist (die Notices könnte man in der php.ini abstellen, aber machs ned und programmier stattdessen sauber ;) )

 
YourHammer
16-05-2006, 18:45 
 
Das war das Problem.

Das Script ist etwas grösser und ich häng seit 14Std an den blöden Fehler.

Danke fürs Zeit nehmen!

 
Quetschi
16-05-2006, 18:51 
 
Original geschrieben von YourHammer
Das Script ist etwas grösser und ich häng seit 14Std an den blöden Fehler. Das ist eindeutig zu lang :D

 
YourHammer
17-05-2006, 00:24 
 
So mein Problem ist wieder rum das er jeweils nur einen Eintrag macht und dann aufhört.


Zusätzlich trägt er bei den "AAAHIERAAA" gekennzeichneten Stellen mehrere Einträge rein obwohl nur einer rein gehört und die anderen schon in die nächsten. Aber das ist ein Neben Effekt denk ich.

Danke im vorraus!

$sql = "select ArtNumber from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$shop_artikelnr = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['ArtNumber']."\n";
$shop_artikelnr .= $row['ArtNumber']."\n";
}
mysql_free_result($result);
//echo "$shop_artikelnr";
////Artikel Nummer vom Shop auslesen Ende

////Artikel Titel vom Shop auslesen Start
$sql = "select Title from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$titel = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['Title']."\n";
$titel .= $row['Title']."\n";
}
mysql_free_result($result);
//echo "$titel";
////Artikel Titel vom Shop auslesen Ende

////Artikel Beschreibung auslesen Start
$sql = "select Description_short from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$beschreibungk = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['Description_short']."\n";
$beschreibungk .= $row['Description_short']."\n";
}
mysql_free_result($result);
//echo "$beschreibungk";
////Artikel Beschreibung auslesen Ende

///Artikel Preis auslesen Start
$sql = "select DisplayPrice from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$preis_euro = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['DisplayPrice']."\n";
$preis_euro .= $row['DisplayPrice']."\n";
}
mysql_free_result($result);
//echo "$preis_euro";
////Artikel Preis auslesen Ende

////Artikel Img Url auslesen Start
$sql = "select Img_url from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$image_url = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['Img_url']."\n";
$image_url .= $row['Img_url']."\n";
}
mysql_free_result($result);
//echo "$image_url";
////Artikel Img Url auslesen Ende

////Artikel Affili Link auslesen Start
$sql = "select DeepLink1 from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$link = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['DeepLink1']."\n";
$link .= $row['DeepLink1']."\n";
}
mysql_free_result($result);
//echo "$link";
////Artikel Affili Link auslesen Ende

////Artikel Kat auslesen Start
$sql = "select ProductCategoryID from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$cat_idshop = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['ProductCategoryID']."\n";
$cat_idshop .= $row['ProductCategoryID']."\n";
}
mysql_free_result($result);
//echo "$cat_idshop";
////Artikel Kat auslesen Ende

////Artikel Kat Name auslesen Start
$sql = "select ProductCategoryName from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$cat_nameshop = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['ProductCategoryName']."\n";
$cat_nameshop .= $row['ProductCategoryName']."\n";
}
mysql_free_result($result);
//echo "$cat_nameshop";
////Artikel Kat Name auslesen Ende

////Artikel prefix auslesen Start
$sql = "select PricePrefix from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$laa1 = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['PricePrefix']."\n";
$laa1 .= $row['PricePrefix']."\n";
}
mysql_free_result($result);
//echo "$laa1";
////Artikel prefix auslesen Ende

////Artikel Preis auslesen Start
$sql = "select Price from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$preis = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['Price']."\n";
$preis .= $row['Price']."\n";
}
mysql_free_result($result);
//echo "$preis";
////Artikel Preis auslesen Ende

////Artikel Preis suffix auslesen Start
$sql = "select PriceSuffix from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$laa2 = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['PriceSuffix']."\n";
$laa2 .= $row['PriceSuffix']."\n";
}
mysql_free_result($result);
//echo "$laa2";
////Artikel Preis suffix auslesen Ende

////Artikel Preis zeichen auslesen Start
$sql = "select Currency_Symbol from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$euro = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['Currency_Symbol']."\n";
$euro .= $row['Currency_Symbol']."\n";
}
mysql_free_result($result);
//echo "$euro";
////Artikel Preis zeichen auslesen Ende

////Artikel Beschreibung auslesen Start
$sql = "select Description from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$beschreibungg = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['Description']."\n";
$beschreibungg .= $row['Description']."\n";
}
mysql_free_result($result);
//echo "$beschreibungg";
////Artikel Beschreibung auslesen Ende

////Artikel Bilder g auslesen Start
$sql = "select Img180_url from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$image_url1 = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['Img180_url']."\n";
$image_url1 .= $row['Img180_url']."\n";
}
mysql_free_result($result);
//echo "$image_url1";
////Artikel Bilder g auslesen Ende


$sql = "INSERT INTO $tabelle1 (xx, xxx, xxx, xxx, xxx, kgal, igal, top, high,
date, AAAHIERAAA, xxx, xx, xx, xx, xx5, xx, cxx, xxd, rxxe, noxice, aucxe,
zusxpe, location, locaxp, shixng, intxnal, exs, cxd, cloxd, quxy, suxd, pxws,
paxer, gxe, ruxe, ixid, cax2, sxzi, uxle, loxty, preisfall, vixtion, bidxer, mxice, privxtion, trade)
VALUES ('" . $artikelnr . "', '" . $mitgliederidshop . "', '" . $titel . "', '" . $dienull . "'
, '" . $dienull . "', '" . $dienull . "', '" . $dienull . "', '" . $dienull . "', '" . $dienull . "'
, '" . $datumstart . "', '" . $AAAHIERAAA . "', '" . $laaa . "', '" . $laaa . "', '" . $laaa . "'
, '" . $laaa . "', '" . $laaa . "', '" . $laaa . "', '" . $katnr . "', '" . $preis . "', '" . $dieenull . "'
, '" . $preis . "', '" . $auktiont . "', '" . $zustand . "', '" . $ortartikel . "', '" . $plz . "'
, '" . $dienull . "', '" . $internat . "', '" . $datumende . "', '" . $dieenull . "'
, '" . $dienull . "', '" . $dieeins . "', '" . $dienull . "', '" . $dienull . "', '" . $dieeins . "'
, '" . $garantie . "', '" . $ruckna . "', '" . $dieenull . "', '" . $dienull . "', '" . $dienull . "'
, '" . $untertitel1 . "', '" . $stadt12 . "', '" . $dieenull . "', '" . $dienull . "'
, '" . $dienull . "', '" . $dieenull . "', '" . $dienull . "', '" . $dienull . "');";
$result = mysql_query($sql) OR die(mysql_error());


$sql = "INSERT INTO $tabelle2 (id, desn, vddn, rdddrt, dsn, pdnt, fesr, feark, zstz
, udng, vsg, psto, veseis, cadption, sedp)
VALUES ('" . $artikelnr . "', '" . $beschreibungg . "'
, '" . $text1 . "', '" . $text2 . "', '" . $text3 . "', '" . $zahlart . "', '" . $dienull . "', '" . $dienull . "'
, '" . $zahlungshinweis . "', '" . $weisung . "', '" . $verpackung . "', '" . $porto . "'
, '" . $versicherung . "', '" . $laaa . "', '" . $sellerip . "');";
$result = mysql_query($sql) OR die(mysql_error());

 
muh (newbie)
17-05-2006, 01:12 
 
mysql_real_escape_string?

 
onemorenerd
17-05-2006, 01:14 
 
Wenn man seinen Code ordentlich formatiert, macht man es sich und anderen (uns) leichter!

while ($row = mysql_fetch_assoc($result))
echo $row['ArtNumber']."\n";
$shop_artikelnr = $row['ArtNumber']."\n";

$shop_artikelnr gehört nicht mehr zur While-Schleife, weswegen auch ein .= statt = nichts bringt.

Darf ich vorstellen: { und sein Kumpel }.
Schau mal, wo die beiden am liebsten rumhängen.
while ($row = mysql_fetch_assoc($result)) {
echo $row['ArtNumber']."\n";
$shop_artikelnr .= $row['ArtNumber']."\n";
}
echo $shop_artikelnr;

 
YourHammer
17-05-2006, 01:28 
 
Hat nichts daran geändert.

Der Code war leider so lang das ich ihn hier grob unterteilen musste. Sry.

 
onemorenerd
17-05-2006, 01:37 
 
$sql = ...
echo $sql;
$result = ...

Ausgabe? (Bitte nicht posten, ist bestimmt tierisch lang.)

 
YourHammer
17-05-2006, 01:49 
 
$sql = "INSERT INTO $tabelle2 :

gibt genau einen Insert aus und alle werte. Aber keine weiteren


$sql = "INSERT INTO $tabelle1:

Und hier macht er auch ein Insert aber bei 3 Spalten will er gleich alle Ergebnisse reinschreiben. Die würden zwar in der richtigen Spalte sein aber sollten in den nächsten Zeile stehen.

Aber auch wieder nur ein Insert.

 
onemorenerd
17-05-2006, 02:10 
 
Dein Code ist mir etwas zu groß, wir versuchen es mal mit einem Beispiel. (current() und next() dienen als Ersatz für mysql_fetch_*() und $array ist quasi die DB.)

So machst du es zur Zeit:
<?php
$array = array(1, 2, 3);
while ($row = current($array)) {
next($array);
$var .= $row;
echo "row=$row, var=$var<br>";
}
$sql = "INSERT INTO table (col1, ...) VALUES ('$var', ...";
echo $sql;
?>

So willst du es eigentlich haben:
<?php
$array = array(1, 2, 3);
while ($row = current($array)) {
next($array);
$var[] = $row;
echo "row=$row, var=array(".implode(', ', $var).")<br>";
}

$sql = "INSERT INTO table (col1, ...) VALUES";
foreach ($var as $val) {
$sql .= " ('$val', ...),";
}
$sql = substr($sql, 0, -1);
echo $sql;
?>

 
YourHammer
17-05-2006, 02:31 
 
Puhh...

ganz umdichten kann ich das nicht...

Dieser Abschnitt wiederholt sich ja ständig und fragt immer wieder was anderes ab.

Willst du diese Abschnitte in einen zusammen fassen?
Deine Abkürzung vom Code äh.. ist mir leider zu kurz..

$sql = "select ArtNumber from $tabelle order by ArtNumber ";
$result = mysql_query($sql) OR die(mysql_error());
$shop_artikelnr = "";
while ($row = mysql_fetch_assoc($result)) {
//echo $row['ArtNumber']."\n";
$shop_artikelnr .= $row['ArtNumber']."\n";
}
mysql_free_result($result);
//echo "$shop_artikelnr";

 
onemorenerd
17-05-2006, 02:39 
 
Du mußt den Code nicht immer wiederholen. Kannst alle Spalten einer Tabelle mit nur einer Query abfragen.

Lies http://dev.mysql.com/doc/refman/5.1/en/select.html - dann ist dein Code auch nicht viel länger als mein Beispiel da oben.


Und wenn du das geschafft hast, liest du http://dev.mysql.com/doc/refman/5.1/en/insert-select.html - das reduziert deinen Code auf nur 2 Zeilen.
Statt "14 Stunden"! ;)

 
YourHammer
17-05-2006, 02:47 
 
Ich hab es ja nur umständlich gemacht weil ich nicht weiterkam.

Die Beiträge hab ich sogar gestern Nacht schon einige male besucht.

Mein Problem war am Anfang alle Spalten der DB in einzelne Variablen zu schmeissen.

Das will ich machen um noch andere Variablen mit einzufügen.
Diese Variablen werden später mal für ein Formular verwendet und es sind derzeit einfach werte eingetragen.
Und diese sollten in jede Zeile der Spalte mit eingetragen werden...

Darum komm ich da nicht weiter.

Na ja mal gucken was die Nacht so bringt.

Big thanks!

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:52 Uhr.