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)
Checkbox Hilfe benötigt [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Checkbox Hilfe benötigt


 
framic
14-07-2004, 17:54 
 
Hallo Community,

brauche mal wieder Eure Hilfe !

Ich versuche seit Tagen eine Selbstbucherliste für DPD zu erstellen.
Leider haben viele Ansätze ins Leere geführt ...

Im wesentlichen geht´s um folgendes :

In einen Formular möchte ich mehrere Bestellungen per checkbox auswählen, um diese anschließend in einem neuen Formular als Paketliste auszugeben.

Schwierig gestaltet sich wohl, daß ich der Checkbox keinen festen Wert zuweisen kann, da die Anzahl der Bestellungen bereits aus der Datenbank ausgelesen werden, und somit variabel sind

Hat da jemand eine Idee - vielleicht ein script, das man für sowas umbauen könnte ?
Oder kann mir jemand helfen, da ich mich in php nicht sooo dolle auskenne ???

Wäre dankbar für jede Hilfe

habe angefangen, die Werte aus der Datenbank auszulesen und mit checkboxen zu versehen :

<td class="dataTableContent"><?php echo $orders['customers_name']; ?></td>
<td class="dataTableContent" align="right"><?php echo $orders['orders_id']; ?></td>
<td class="dataTableContent" align="center"><?php echo tep_datetime_spc($orders['date_purchased']); ?></td>
<td class="dataTableContent" align="left"><?php echo $orders['payment_method']; ?></td>
<td class="dataTableContent" align="left"><?php echo $orders['orders_status_name']; ?></td>
<td align="left"><input type="checkbox" name="cbox[]" value="[]"></td>
</tr>


Die Ausgabe sollte in einem Formular folgendermaßen aussehen :

<tr bordercolor="#000000" class="Stil10">
<td>&nbsp;</td>
<td valign="middle" align="center">
<?php
$orders_history_query = tep_db_query("select track_num from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" .

tep_db_input($oID) . "'");
while ($orders_history = tep_db_fetch_array($orders_history_query)) {
echo ($orders_history['track_num']);
}
?>
</td>
<td align="center">2004<?php echo ($oID); ?></td>
<td><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 6, '<br>', ''); ?></td>
<td align="center">
<?php
$orders_history_query = tep_db_query("select track_num2 from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" .

tep_db_input($oID) . "'");
while ($orders_history = tep_db_fetch_array($orders_history_query)) {
echo ($orders_history['track_num2']);
}
?> </td>
<td align="center">Normalpaket</td>
<td>&nbsp;</td>
</tr>


Da ich das alles nicht so draufhabe, und nach dem Try-And-Error Prinzip arbeite, komme ich nicht weiter und brauche dringend

Eure Hilfe !

Bin für jeden Tip und Anhaltspunkt dankbar !

Gruß
framic

 
ExInfernis
16-07-2004, 01:04 
 
Muss erstmal nachfragen :

Zuerst wird eine Liste mit Paketen ausgegeben die jeweils über eine Checkbox ausgewählt werden können, oder ?

Dieses Formular wird abgeschickt, und was soll dann passieren ?

 
framic
16-07-2004, 01:26 
 
Hi ExInfernis,

danke erstmal für Deine Bemühungen !!!

Folgendes :
Ich habe die Ausgabe der Bestellungen auf einer Seite und jede Bestellung mit einer checkbox versehen.
Alle markierten checkboxen sollen auf einer anderen Seite die Datensätze aus zwei Tabellen als Liste anzeigen.

Habe zwischenzeitlich viel gelesen und ne menge Onlinekosten produziert, aber nicht wirklich was passendes gefunden.
Folgender Code hat ein bischen weitergeholfen, aber noch nicht so wirklich :

<form method="post" action="order_tracking_nn.php">
<td class="dataTableContent" align="left"><?php echo $orders['customers_name']; ?></td>
<td class="dataTableContent" align="center"><?php echo tep_datetime_spc($orders['date_purchased']); ?></td>
<td class="dataTableContent" align="left"><?php echo $orders['payment_method']; ?></td>
<td class="dataTableContent" align="left"><?php echo $orders['orders_status_name']; ?></td>
<td class="dataTableContent" align="left"><input type="checkbox" name="anzeigen[]" value="<? echo $orders['orders_id']; ?>">
</td>
</tr>
<?php
}
?>
<tr>
<td colspan="5"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<input type="submit" name="submit" value="anzeigen">
</form>


Als veranschaulichung folgendes Bild :
http://www.gebrauchte-karts.de/snap1.jpg

Die Zweite Seite enthält den Code zum Auslesen, leider aber nicht so, wie ich´s gerne hätte :

<?php
for ($i=0;$i<sizeof($anzeigen);$i++) {
echo "$anzeigen[$i] ";
}
?>


Folgendes Bild so die Ausgabe, wie sie mal sein soll, zeigen :
http://www.gebrauchte-karts.de/snap2.jpg

Die Ausgabe der Zahlen besteht zur Zeit nur aus den gecheckten OrderNummern, und die auch noch in einer Reihe.
So wie ich denke, hat das mit der Übergabe der Checkboxvalue zu tun, und die Ausgabe müßte in einer while Schleife sein, aber ich weiß leider nicht wie.

Was ich weiß ist,daß das alles viel mit php,sql und html Grundlagen zu tun hat.
Leider komme ich als Newbe mit try-and-error Diplom nicht weiter ...

Danke im voraus für die Hilfe !
Gruß
framic

 
ExInfernis
16-07-2004, 06:05 
 
Guten abend, oder is schon morgen ? ;)

DU bekommst ja nun von der Form einen Array $anzeigen[] mit den orderIDS mit denen du dann wieder auf die DB zur Ausgabe der Daten zugreifen kannst.

Dann müsste es eigentlich so gehen :

<table width="300" border="0" cellspacing="0" cellpadding="5">
<?PHP

foreach ($_POST['anzeigen'] as $var)

{
//Schleife wird für alle angeklickte Pakete durchlaufen

echo "<tr>";//Jedes Paket bekommt eine eigene Zeile in der Tabelle

$sql="Select * from WASWEISSICH where order_id='$var' LIMIT 1";
$query=@mysql_query($sql) or die (mysql_error());
$row=mysql_fetch_array($query);

//Ausgabe der Daten in eine Tabellenzeile

echo "<td>".$row['Datensatz1']."</td>\n";
echo "<td>".$row['Datensatz2']."</td>\n";
echo "<td>".$row['Datensatz3']."</td>\n";
echo "<td>".$row['Datensatz4']."</td>\n";
echo "</tr>\n";
}
?>
</table>

Deine DB-Abfrage wird wahrscheinlich etwas komplizierter sein, aber ansonsten müsste es so klappen, habs aber nicht getestet.

n8

 
framic
16-07-2004, 14:48 
 
:rocks:
YoYo, ...
das wars !!!
Danke ExInfernis !

Gerade als Du gepostet hast, bin ich ins Bett ...


Ich hätte da aber noch ne klitzekleinigkeit :dontknow:

Jetzt kann ich ja die Daten aus einer Tabelle auslesen.

Ich brauch aber noch zwei Felder aus einer anderen Tabelle...
in dieser ist auch orders_id als primary_key gesetzt, genau wie in der ersten Tabelle.

Weißt Du da vielleicht auch noch ne Lösung ?

Vielen vielen Dank an ExInfernis von framic

 
lx-club
16-07-2004, 14:53 
 
dann musst du die tabellen irgendwie verknüpfen...kenn jetzt diene tables nicht, aber denk mal en join wirds richten

 
framic
16-07-2004, 15:48 
 
Hi,

hab jetzt mal das Forum durchstöbert, auch einige Topics gefunden,
aber irgendwie ....


$sql="Select * from orders INNER JOIN orders_status_history ON orders.orders_id = orders_status_history.orders_id where orders_id='$var' LIMIT 1";


Geht aber leider nicht ....

Kurz zum besseren Verständnis (vor allem meinerseits !!!):
Ich habe 2 Tabellen : orders und orders_status_history

In beiden Tabellen ist orders_id das primary_key.

Nun möchte ich alle Datensätze aus der Tabelle [orders] mit den Feldern
(orders_id) , (delivery_name) , (delivery_adress) , usw
sowie aus der Tabelle [orders_status_history] mit den Feldern
(orders_id) , (track_num) und (track_num2)
auslesen, die der Variablen $var und orders_id ensprechen


:dontknow:

leider kommt dann immer noch :
Column: 'orders_id' in where clause is ambiguous

Das heist doch, das die Abfrage nicht eindeutig ist , oder ???

Kann mir das evtl jemand richtig stellen ???

Danke für Eure Bemühungen
Gruß framic

 
derHund
16-07-2004, 15:57 
 
dh., daß der name nicht eindeutig ist.
du solltest also noch den tabellennamen mit angeben, damit sql weiß, wodrauf du dich beziehst ...

 
asp2php
16-07-2004, 15:58 
 
Jupp, da order_id in beiden Tabellen als Spalte vorkommt musst du mit Tabellename.Spaltename ansprechen.

 
framic
16-07-2004, 17:36 
 
YES, ...

soweit so gut ...
ich komme der Sache langsam näher !

die Tabelle habe ich jetzt wie folgt angesprochen und es funktioniert :

$sql="Select * from orders INNER JOIN orders_status_history ON orders.orders_id = orders_status_history.orders_id where orders.orders_id='$var' LIMIT 1";


Um jetzt zum Bsp die Werte aus track_num der tabelle orders_status_history auszugeben, genügt aber wohl nicht :

echo "<td>".$row['track_num']."</td>\n";


(geht nicht : try-and-error)

Und nu ?

Gruß
framic

 
ExInfernis
16-07-2004, 19:22 
 
Mit

$sql="Select * from orders ...

hast du auch nur die Werte der Tabelle Orders ausgewählt, denke ich. Kenne mich mit Joins aber noch nicht so aus.

Mein bisher einziger Join (der funktioniert hat) :

$sql="Select tb1.*, tb2.* from tabelle1 tb1, tabelle2 tb2 WHERE ...

Kannst es ja mal probieren.

Mache meist auch "try and error"

 
framic
16-07-2004, 20:00 
 
Hi ExInfernis,

kriegs nicht hin ...

Auf jeden Fall hast Du recht, die Abfrage spricht nur auf die Tabelle orders an.

Die Tabelle orders_status_history wird garnicht gefunden.

Kann es auch daran liegen, daß die Felder varchar sind ? Habe irgendwo mal sowas gelesen ....

habe jetzt garkeinen Durchblick mehr ...

Zwischendurch möchte ich mich auch nochmal für Deine Mithilfe bei meinem Problem bedanken .
Gruß
Frank

 
lx-club
16-07-2004, 21:14 
 
hi...

ich habs zwar noch nicht ausprobiert aber versuch mal so: (die spalten die du noch ahben willst musst noch mit angeben.)



SELECT a.orders_id, a.delivery_name, a.delivery_adress
b. orders_id, b.track_num, b.track_num2
FROM orders a INNER JOIN orders_status_history b
ON a.orders_id = b.orders_id
WHERE a.orders_id = '".$var."'

 
framic
16-07-2004, 22:30 
 
@all

Vielen Dank für die sehr gute Hilfe in diesem Forum !

Hier haben auch Anfänger ´ne Chance

Code as follows :


$sql="SELECT a.orders_id, a.delivery_name, a.delivery_street_address,
a.delivery_postcode, a.delivery_city, b. orders_id, b.track_num,
b.track_num2 FROM orders a INNER JOIN orders_status_history b ON
a.orders_id = b.orders_id WHERE a.orders_id = '".$var."' AND b.track_num
IS NOT NULL LIMIT 1";



Viele Grüße
framic


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:43 Uhr.