Tinyint met zelfde ID's filteren
ik heb een volgende probleem met mijn garage website. Ik probeer in mijn back-end in de gaten te houden wel offertes zijn geaccepteerd en welke niet. Daarvoor heb ik de volgende code gebruikt:
Code (php)
1
<?php $quote2 = $wpdb->get_results("SELECT Accepted FROM ReparationQuotes Where ReparationId = '" . esc_sql($rep->Id) ."'", OBJECT); ?>
En om deze te kunnen laten zien heb ik de volgende code gebruikt:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<td class="post-title page-title column title">
<strong><?php if ($quote2) : ?>
<?php if($quote2[0]->Accepted == 0) echo '<p style="background-color: red;">No</p>' ?>
<?php if($quote2[0]->Accepted == 1) echo '<p style="background-color: green;">Yes</p>' ?>
<?php else: ?>
<p style="background-color: gray;">Geen offerte</p>
<?php endif; ?> </strong>
</td>
<strong><?php if ($quote2) : ?>
<?php if($quote2[0]->Accepted == 0) echo '<p style="background-color: red;">No</p>' ?>
<?php if($quote2[0]->Accepted == 1) echo '<p style="background-color: green;">Yes</p>' ?>
<?php else: ?>
<p style="background-color: gray;">Geen offerte</p>
<?php endif; ?> </strong>
</td>
Hij laat inderdaad zien of er offertes zijn geplaatst, of deze zijn geaccepteerd de ja of de nee.
Maar hier komt het probleem. Er zijn uiteraard meerdere garages die offertes plaatsen op één aanvraag.
Nu pakt het systeem de laatste offerte, dus als nummer twee wel geaccepteerd is en nummer drie niet dan laat hij de laatste zien.
Hoe kan ik het zo maken dat als er een "1" (Geaccepteerd) staat in dezelfde reperatieID dat deze dan gepakt wordt en niet de laatste?
Alvast bedankt, en ik hoop dat ik het duidelijk hebt gemaakt.
Met vriendelijk groet,
Henk Rensenbrink
Gewijzigd op 31/01/2015 13:47:48 door Henk Rensenbrink
Want dat zou mijn eerste ingeving zijn.
Bart V B op 31/01/2015 13:53:42:
Heb je het wel in een loop staan?
Want dat zou mijn eerste ingeving zijn.
Want dat zou mijn eerste ingeving zijn.
Kunt u dit nader uitleggen?
Bedankt trouwens voor de super snelle reactie.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = "SELECT * FROM table";
$result = mysql_query($sql);
while($row = mysql_fetch_asscoc($result)
{
// hier kijken of het true of false is en je resultaten printen.
}
?>
$sql = "SELECT * FROM table";
$result = mysql_query($sql);
while($row = mysql_fetch_asscoc($result)
{
// hier kijken of het true of false is en je resultaten printen.
}
?>
Heb je ergens zo'n while loop staan? Of een foreach() loop?
Mogelijk bedoel je iets als:
en dan iets als
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
// als het resultaat niet leeg is
if !empty(($quote2)) {
?>
<table>
<?php
// loop door alle regels heen
foreach (quotes2 as quote) {
?>
<tr>
<td class="post-title page-title column title">
<?php echo $quote->ReparationId; ?>
</td>
<td class="post-title page-title column title">
<?php if($quote->Accepted == 0) echo '<p style="background-color: red;">No</p>' ?>
<?php if($quote->Accepted == 1) echo '<p style="background-color: green;">Yes</p>' ?>
</td>
</tr>
<?php
}
?>
</table>
<?php
// als het resultaat wel leeg is
} else {
?>
<p style="background-color: gray;">Geen offerte</p>
<?php
}
?>
// als het resultaat niet leeg is
if !empty(($quote2)) {
?>
<table>
<?php
// loop door alle regels heen
foreach (quotes2 as quote) {
?>
<tr>
<td class="post-title page-title column title">
<?php echo $quote->ReparationId; ?>
</td>
<td class="post-title page-title column title">
<?php if($quote->Accepted == 0) echo '<p style="background-color: red;">No</p>' ?>
<?php if($quote->Accepted == 1) echo '<p style="background-color: green;">Yes</p>' ?>
</td>
</tr>
<?php
}
?>
</table>
<?php
// als het resultaat wel leeg is
} else {
?>
<p style="background-color: gray;">Geen offerte</p>
<?php
}
?>
Quote:
Waarschijnlijk wordt er maar 1 record opgehaald: in de SQL staat "WHERE ReparationId = ...".
Waarschijnlijk niet, want de topicstarter zei al:
Quote:
Er zijn uiteraard meerdere garages die offertes plaatsen op één aanvraag.
Waarschijnlijk werkt het zo: iemand wil een reparatie laten verrichten (reparation(id)).
Garages kunnen dan gaan "bieden" met offertes (reparationquotes).
Vervolgens kiest de gebruiker een garage (accepted == 1).
Maar het staat niet op voorhand vast of er al een offerte gekozen is.
Het probleem komt deels voort (denk ik) omdat je je interface voor twee verschillende zaken wilt gebruiken:
- (indien er nog geen offerte gekozen is) de lijst van offertes
- (indien er een offerte gekozen is) de uitgekozen offerte
Klopt deze situatiebeschrijving zo een beetje?
Ik wilde niet zeggen dat er maar 1 offerte moest worden opgehaald, maar dat dat met deze SQL nu waarschijnlijk wel gebeurde.
En dat dat dus waarschijnlijk niet de bedoeling is. Zoals ook uit jouw situatiebeschrijving blijkt.
Op de administrator pagina krijg je een complete lijst met verscheidene reparaties die aangevraagt zijn.
vandaar de reparationID, dus een tabel met verscheidene reparaties die per reparatie een eigen ID hebben.
Nu is het natuurlijk zo dat ik bij de reparaties niet alle offertes hoef te zien, ik wil alleen weten of de persoon die een reparatie heeft aangevraagt tenminste één offerte heeft geaccepteerd.
@Jan: Op de manier hoe jij je code hebt geplaatst zou ik alle offertes binnen halen en laten zien welke geaccepteerd zijn. Het enige wat ik wil zien is:
1. Geen offerte.
2. Wel offertes maar geen één geaccepteerd.
3. Yes, voor tenminste één offerte geaccepteerd ook al staan er meerdere offertes op één reparatie.
Hier even ter verduidelijking de complete table zoals deze gespecificeerd wordt in de administrator pagina.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
global $wpdb;
$result = $wpdb->get_results("SELECT * FROM Reparation ORDER BY Id DESC", OBJECT);
$result2 = $wpdb->get_results("SELECT * FROM ReparationQuotes ORDER BY ReparationId DESC", OBJECT); ?>
<table class="wp-list-table widefat fixed posts">
<thead>
<tr>
<th style="" class="manage-column column-title sortable desc" id="titleId" scope="col">
<a href="&orderby=Title&order=asc"><span>ID</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="titleopdracht" scope="col">
<a href="&orderby=Title&order=asc"><span>Titel</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="titleofferte" scope="col">
<a href="&orderby=Title&order=asc"><span>Aantal offerte</span><span class="sorting-indicator"></span></a>
</th>
<th style=""class="manage-column column-title sortable desc" id="titleofferte" scope="col">
<a href="orderby=title&order=ASC"><span>Postcode</span><span class="sorting-indicator"></span></a>
</th>
<th style=""class="manage-column column-title sortable desc" id="titleplaats" scope="col">
<a href="&orderby=Title&order=asc"><span>Plaats</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="title" scope="col">
<a href="&orderby=Name&order=asc"><span>Naam</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="title" scope="col">
<a href="&orderby=Email&order=asc"><span>Email</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="title" scope="col">
<a href="&orderby=Created&order=asc"><span>Aangemaakt</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="titleaccept" scope="col">
<a href="&orderby=Created&order=asc"><span>Geaccepteerd?</span><span class="sorting-indicator"></span></a>
</th>
</tr>
</thead>
<tbody id="the-list">
<?php
if(count($result) > 0) {
foreach($result as $rep) {
$quote = $wpdb->get_results("SELECT COUNT(Id) as total FROM ReparationQuotes WHERE ReparationId = '" . esc_sql($rep->Id) . "'", OBJECT);
foreach ($result2 as $q2) {
$quote2 = $wpdb->get_results("SELECT Accepted FROM ReparationQuotes Where ReparationId = '" . esc_sql($rep->Id) ."'", OBJECT);
}
?>
<tr class="post-540 type-post status-publish format-standard has-post-thumbnail hentry category-blog category-reparaties alternate iedit author-self level-0"
id="post-540">
<td class="post-title page-title column-titleId">
<strong><a title="<?php echo $rep->Id; ?>" href="" class="row-title"><?php echo $rep->Id; ?></a></strong>
</td>
<td class="post-title page-title column-titleopdracht">
<strong><a title="<?php echo $rep->Title; ?>" href="" class="row-title"><?php echo $rep->Title; ?></a></strong>
</td>
<td class="post-title page-title column-title" id="titleofferte">
<strong><a title="<?php echo $quote[0]->total; ?>" href="" class="row-title"><?php echo $quote[0]->total; ?></a></strong>
</td>
<td class="post-title page-title column-titleofferte">
<strong><a title="<?php echo $rep->Zipcode; ?>" href="" class="row-title"><?php echo $rep->Zipcode; ?></a></strong>
</td>
<td class="post-title page-title column-titleplaats">
<strong><a title="<?php echo $rep->City; ?>" href="" class="row-title"><?php echo $rep->City; ?></a></strong>
</td>
<td class="post-title page-title column-title">
<strong><a title="<?php echo $rep->Name; ?>" href="" class="row-title"><?php echo $rep->Name; ?></a></strong>
</td>
<td class="post-title page-title column-title">
<strong><a title="<?php echo $rep->Email; ?>" href="" class="row-title"><?php echo $rep->Email; ?></a></strong>
</td>
<td class="post-title page-title column-title">
<strong><a title="<?php echo $rep->Created; ?>" href="" class="row-title"><?php echo $rep->Created; ?></a></strong>
</td>
<td class="post-title page-title column title">
<strong><?php if ($quote2) : ?>
<?php if($quote2[0]->Accepted == 0) echo '<p style="background-color: red;">No</p>' ?>
<?php if($quote2[0]->Accepted == 1) echo '<p style="background-color: green;">Yes</p>' ?>
<?php else: ?>
<p style="background-color: gray;">Geen offerte</p>
<?php endif; ?> </strong>
</td>
</tr>
</tbody>
</table>
global $wpdb;
$result = $wpdb->get_results("SELECT * FROM Reparation ORDER BY Id DESC", OBJECT);
$result2 = $wpdb->get_results("SELECT * FROM ReparationQuotes ORDER BY ReparationId DESC", OBJECT); ?>
<table class="wp-list-table widefat fixed posts">
<thead>
<tr>
<th style="" class="manage-column column-title sortable desc" id="titleId" scope="col">
<a href="&orderby=Title&order=asc"><span>ID</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="titleopdracht" scope="col">
<a href="&orderby=Title&order=asc"><span>Titel</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="titleofferte" scope="col">
<a href="&orderby=Title&order=asc"><span>Aantal offerte</span><span class="sorting-indicator"></span></a>
</th>
<th style=""class="manage-column column-title sortable desc" id="titleofferte" scope="col">
<a href="orderby=title&order=ASC"><span>Postcode</span><span class="sorting-indicator"></span></a>
</th>
<th style=""class="manage-column column-title sortable desc" id="titleplaats" scope="col">
<a href="&orderby=Title&order=asc"><span>Plaats</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="title" scope="col">
<a href="&orderby=Name&order=asc"><span>Naam</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="title" scope="col">
<a href="&orderby=Email&order=asc"><span>Email</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="title" scope="col">
<a href="&orderby=Created&order=asc"><span>Aangemaakt</span><span class="sorting-indicator"></span></a>
</th>
<th style="" class="manage-column column-title sortable desc" id="titleaccept" scope="col">
<a href="&orderby=Created&order=asc"><span>Geaccepteerd?</span><span class="sorting-indicator"></span></a>
</th>
</tr>
</thead>
<tbody id="the-list">
<?php
if(count($result) > 0) {
foreach($result as $rep) {
$quote = $wpdb->get_results("SELECT COUNT(Id) as total FROM ReparationQuotes WHERE ReparationId = '" . esc_sql($rep->Id) . "'", OBJECT);
foreach ($result2 as $q2) {
$quote2 = $wpdb->get_results("SELECT Accepted FROM ReparationQuotes Where ReparationId = '" . esc_sql($rep->Id) ."'", OBJECT);
}
?>
<tr class="post-540 type-post status-publish format-standard has-post-thumbnail hentry category-blog category-reparaties alternate iedit author-self level-0"
id="post-540">
<td class="post-title page-title column-titleId">
<strong><a title="<?php echo $rep->Id; ?>" href="" class="row-title"><?php echo $rep->Id; ?></a></strong>
</td>
<td class="post-title page-title column-titleopdracht">
<strong><a title="<?php echo $rep->Title; ?>" href="" class="row-title"><?php echo $rep->Title; ?></a></strong>
</td>
<td class="post-title page-title column-title" id="titleofferte">
<strong><a title="<?php echo $quote[0]->total; ?>" href="" class="row-title"><?php echo $quote[0]->total; ?></a></strong>
</td>
<td class="post-title page-title column-titleofferte">
<strong><a title="<?php echo $rep->Zipcode; ?>" href="" class="row-title"><?php echo $rep->Zipcode; ?></a></strong>
</td>
<td class="post-title page-title column-titleplaats">
<strong><a title="<?php echo $rep->City; ?>" href="" class="row-title"><?php echo $rep->City; ?></a></strong>
</td>
<td class="post-title page-title column-title">
<strong><a title="<?php echo $rep->Name; ?>" href="" class="row-title"><?php echo $rep->Name; ?></a></strong>
</td>
<td class="post-title page-title column-title">
<strong><a title="<?php echo $rep->Email; ?>" href="" class="row-title"><?php echo $rep->Email; ?></a></strong>
</td>
<td class="post-title page-title column-title">
<strong><a title="<?php echo $rep->Created; ?>" href="" class="row-title"><?php echo $rep->Created; ?></a></strong>
</td>
<td class="post-title page-title column title">
<strong><?php if ($quote2) : ?>
<?php if($quote2[0]->Accepted == 0) echo '<p style="background-color: red;">No</p>' ?>
<?php if($quote2[0]->Accepted == 1) echo '<p style="background-color: green;">Yes</p>' ?>
<?php else: ?>
<p style="background-color: gray;">Geen offerte</p>
<?php endif; ?> </strong>
</td>
</tr>
</tbody>
</table>
Ik denk dat het zo wel duidelijk moet zijn.
Nogmaals bedankt allemaal voor het helpen.