Zur Navigation

Id auslesen

1 Frank

Hallo Jörg,

ich habe folgendes Problem. Ich möchte mir aus meiner Datenbank die entsprechenden Daten auslesen lassen und beim Anklicken einer entsprechenden Checkbox möchte ich mir dann diese Inhalte ausdrucken lassen. Wie mache ich das? Bekomme das einfach nicht hin! :-( Kann mir jemand helfen?


<?php

$abfrage_kunden1 = mysql_query("SELECT * FROM Bestand WHERE kunde = '$auswahl' AND status = 'neu' ORDER BY datum ASC");
while($row_kunden1 = mysql_fetch_array($abfrage_kunden1))
{
    $kunden_id = $row_kunden1['id'];
    $kunden_kunde = $row_kunden1['kunde'];
    $kunden_bestand = $row_kunden1['bestand'];
    
    $z++ ;
?>
          <tr>
            <td><input name="id_<?= $z ?>" type="checkbox" value="<?echo $kunden_id ; ?>" class="eingabe4" /></td>
            <td><input name="kunde" type="text" value="<?php echo $kunden_kunde ; ?>" class="eingabe1" /></td>            
            <td><input name="bestand" type="text" value="<?php echo $kunden_bestand ; ?>" class="eingabe2" /></td>            
          </tr>

29.10.2007 08:59

2 Jörg Kruse

Hallo Frank,

befinden sich die Checkboxen in einem Formular, das auf eine andere Seite weiterleitet, auf der ausgedruckt werden soll?

Wenn du nur einen Datensatz ausdrucken möchtest, würde ich statt dessen Radio-Buttons verwenden. Die name Attribute sollten dabei überall gleich lauten. In dem Folgescript wertest du dann die übergebene Variable aus und holst den entsprechenden Datensatz aus der Datenbank und gibst ihn aus. Mit print() druckst du den Inhalt schließlich aus.

29.10.2007 11:45

3 Frank

Hallo Jörg,

ja es soll auf einer anderen Seite ausgedruckt werden. Es sollten auch Checkboxen bleiben, da ich ja auch mehrere Datensätze ausdrucken möchte.

Kannst du mir beim Code helfen ich bekomme das nicht hin. Wäre super nett! ;-)

29.10.2007 12:11 | geändert: 29.10.2007 12:13

4 Jörg Kruse

Wenn du mehrere IDs übertragen möchtest, müssen diese in einem Array gespeichert werden. Einem Array ids kannst du beispielsweise über ids[] ein weiteres Element hinzufügen

<td><input name="ids[]" type="checkbox" value="<?echo $kunden_id ; ?>" class="eingabe4" /></td>

Mit implode() kannst du auf der Folgeseite aus dem Array ein WHERE Statement mit OR Verknüfungen basteln, z.B.:

$query = mysql_query("SELECT * FROM Bestand  WHERE kunden_id = " . implode(" OR kunden_id = ", $_POST['ids'])");

29.10.2007 13:02 | geändert: 29.10.2007 13:04

5 Frank

Nun bekomme ich eine Fehlermeldung:
Parse error: syntax error, unexpected '"' in /var/www/localhost/htdocs/html/drucken.php on line 4

29.10.2007 13:57

6 Jörg Kruse

Wie schauen die ersten 4 Zeilen von drucken.php denn jetzt aus?

29.10.2007 14:31

7 Frank

<?php
include ('../inc/verb.php');

$ergebnis = mysql_query("SELECT * FROM Bestand WHERE kunde_id = " . implode(" OR kunde_id = ", $_POST['ids'])");
while($row_kunden1 = mysql_fetch_array($ergebnis))

29.10.2007 14:41 | geändert: 29.10.2007 14:42

8 Jörg Kruse

Ja, das letzte " war überflüssig, so sollte es gehen:

$ergebnis = mysql_query("SELECT * FROM Bestand WHERE kunde_id = " . implode(" OR kunde_id = ", $_POST['ids']));

29.10.2007 14:47

9 Frank

OK, das klappt! Jetzt erhalte ich jedoch wieder alle Ergebnisse angezeigt.

Sieht nun wie folgt aus:

Id kunde bestand
1 1 01
2 1 47
3 1 14

Wenn ich nun auf der Seite zuvor die Zweite Checkbox angeklickt habe möchte ich dann nur noch alles zur Id "2" angezeigt bekommen um das dann auszudrucken.

Wie mache ich das?

29.10.2007 15:07

10 Jörg Kruse

Wenn ich nun auf der Seite zuvor die Zweite Checkbox angeklickt habe möchte ich dann nur noch alles zur Id "2" angezeigt bekommen um das dann auszudrucken.

Dann sollte auch nur die "2" übertragen werden. Wie schaut das Formular mit den Checkboxen denn jetzt aus?

Und lass dir mal das Array in druck.php ausgeben:

echo "IDs: " . implode (',', $_POST['ids']);

29.10.2007 15:44