php and PDO foreach statemant

Pagina: 1
Acties:
  • 266 views

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • sirkserac
  • Registratie: December 2017
  • Laatst online: 20-05-2023
Hoi,

ik zit met een probleem voor een bepaalde pagina war ik mee bezig ben. ik maak gebruik van enkele tabelen die ik met join koppel, so far so good. de bedoeling is nu dat als ik zoek op bepaalde datum, dat dan de leverancier 1 x word getoont en de bijhorende producten allemaal daar onder worden getoond maar krijg het niet voor elkaar. ben ook nog redelijk newbie in deze PDO / mysql statements.

dit is mijn page:
<?php

if (isset($_POST['submit']))
{

try
{

require "../config.php";
require "../common.php";

$connection = new PDO($dsn, $username, $password, $options);

$sql = "SELECT rma.rma_id, rma.rma_date_in, rma.rma_omschrijving_defect, klanten.klanten_bedrijf, klanten.klanten_contact, klanten.klanten_straat, klanten.klanten_postcode, klanten.klanten_stad, klanten.klanten_email, leveranciers.leveranciers_bedrijf, leveranciers.leveranciers_contact, leveranciers.leveranciers_straat, leveranciers.leveranciers_postcode, leveranciers.leveranciers_stad, leveranciers.leveranciers_email, devices.devices_date, devices.devices_serial, devices_type.devices_type_model
FROM rma
JOIN klanten on klanten.klanten_id = rma.klanten_id
JOIN leveranciers on leveranciers.leveranciers_id = rma.leveranciers_id
JOIN devices on devices.devices_id = rma.devices_id
JOIN devices_type on devices_type.devices_type_id = devices.devices_type_id
WHERE rma_date_in = :rma_date_in";

$devices = $_POST['rma_date_in'];
$statement1 = $connection->prepare($sql);
$statement1->bindParam(':rma_date_in', $devices, PDO::PARAM_STR);
$statement1->execute();

$result = $statement1->fetchAll();

}

catch(PDOException $error)
{
echo $sql . "<br>" . $error->getMessage();
}
}
?>
<?php require "templates/header.php"; ?>

<?php
if (isset($_POST['submit']))
{
if ($result && $statement1->rowCount() > 0)
{ ?>
<table>
<thead>
<tr>
<th>Leverancier</th>
</tr>
</thead>
<tbody>
<?php
foreach ($result as $row)
{ ?>
<tr>
<td><?php echo escape($row["leveranciers_bedrijf"]); ?></br><?php echo escape($row["leveranciers_contact"]); ?></br><?php echo escape($row["leveranciers_straat"]); ?></br><?php echo escape($row["leveranciers_postcode"]); ?></br><?php echo escape($row["leveranciers_stad"]); ?></br><?php echo escape($row["leveranciers_email"]); ?></td>
</tr>
<?php
} ?>
</tbody>
</table>

<h2>Resultaat</h2>

<table>
<thead>
<tr>
<th>#</th>
<th>Serienummer</th>
<th>Merk</th>
</tr>
</thead>
<tbody>
<?php
foreach ($result as $row)
{ ?>
<tr>
<td><?php echo escape($row["rma_id"]); ?></td>
<td><?php echo escape($row["devices_serial"]); ?></td>
<td><?php echo escape($row["devices_type_model"]); ?></td>
</tr>
<?php
} ?>
</tbody>
</table>
<?php
}
else
{ ?>
<blockquote><?php echo escape($_POST['rma_date_in']); ?> kan niet gevonden worden.</blockquote>
<?php
}
}?>

<h2>Vind device op basis van datum</h2>

<form method="post">
<label for="rma_date_in">Datum RMA</label>
<input type="date" id="rma_date_in" name="rma_date_in">
</br></br><input type="submit" name="submit" value="Zoek" class="button">
</form>

<form method="get" action="index.php">
<button type="submit" class="button">Home</button>
</form>


<?php require "templates/footer.php"; ?>
opzich werkt dit dus wel maar nu krijg ik bij elke device ook de leverancier te zien :-(

Ook vroeg ik me af of er in php iets bestaat om dan de output hiervan om te zetten naar pdf voor af te drukken? iemand een idee?

Alle reacties


Acties:
  • +1 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 23:08

Reinier

\o/

Leverancier is elke keer dezelfde, dus die kun je één keer tonen (van het eerste record bijv.). Daarna de resultset doorlopen en de producten tonen.
Of je maakt een extra query waarbij je alleen de leveranciersgegevens ophaalt.

Acties:
  • 0 Henk 'm!

  • sirkserac
  • Registratie: December 2017
  • Laatst online: 20-05-2023
Hoi, en hoe doe ik dat dan? zoals ik al zij ben redelijk newbie :-(

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sorry, maar dit is een Kan iemand even...? en/of scriptrequest en niet de bedoeling hier. Je plaatst hier wat code (in quote-tag i.p.v. een daarvoor bedoelde code tag) en geeft niet aan wat je zélf al gezocht, gevonden, geprobeerd hebt (wat wel de bedoeling is per onze Quickstart).

Ik verzoek je dan ook vriendelijk een nieuw topic te openen met bovenstaande tips en quickstart in acht genomen en dan komt 't vast helemaal goed ;) Newbie zijn we allemaal ooit geweest en hulp kunnen we allemaal op z'n tijd wel eens gebruiken maar het begint altijd met eigen inzet, documentatie lezen, debuggen (Debuggen: Hoe doe ik dat?) en zoeken/proberen. Kom je er dan niet uit dan heb je, als het goed is, een goed begrip van je probleem en kun je je probleem goed samenvatten en enkel de relevante(!) code plaatsen die nodig is voor ons om je te helpen. Newbie of niet, dat kan iedereen :>

[ Voor 29% gewijzigd door RobIII op 27-12-2017 12:46 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.