Script selecteert steeds laatste rij

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Chris Bosmans

chris Bosmans

02/08/2016 20:44:25
Quote Anchor link
kan iemand eens meekijken naar het volgende
met onderstaande creeer ik een lijst met gegevens deze kan ik selecteren / lijn aangegeven door de sql database
nu stel ik heb 5 rijen in mijn tabel dan toont hij zonder pardon alle gegevens keurig.
ik heb een foto als submit button (als laatste kolom).
de bedoeling is dat ik wanneer ik een rij selecteer hij de onderhoud_id toont van de desbetreffende lijn
hier wringt het, het maakt niet uit welke lijn maar hij selecteert altijd de laatste rij (laatste id)
ik heb al vanalles geprobeerd maar ik vind de fout niet?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<form action="xxx/cms/updaten/adjust_onderhoud.php" method="post" enctype="multipart/form-data">
<table width="1200" border="0" cellspacing="0" cellpadding="0" >
<td colspan='5'><h1>Onderhoudsbeurten overzicht</h1></td>
<input name="klant" type="hidden" value="<?php echo $_SESSION['klant'];?>" />
<tr>
      <td width="144" height="34" class='styleborder' align="left">Datum</td>
      <td colspan='2' class='styleborder'>Soort onderhoud</td>
      <td width="423" class='styleborder'>notitie</td>
      <td width="251" class='styleborder' >&nbsp;</td>
      <td width="180" class='styleborder' >&nbsp;</td>
</tr>
  <?php
$onderhoud_sql
= mysqli_query($link,"SELECT *,DATE_FORMAT(Datum_onderhoud, '%d.%m.%Y') AS Datum_onderhoud_NL FROM onderhoud WHERE Klant_ID='$klant_ID' ORDER BY Datum_onderhoud DESC");

  while($toon_onderhoud_sql = mysqli_fetch_array($onderhoud_sql))
{

$onderhoud_id=$toon_onderhoud_sql['Onderhoud_ID'];
$Datum=$toon_onderhoud_sql['Datum_onderhoud_NL'];
$typeonderhoud=$toon_onderhoud_sql['typeonderhoud'];
$notities=$toon_onderhoud_sql['notities'];
//tabel laten tonen
 echo"<tr>";
   echo"<td colspan='1'  class='styleborder2' valign='top'>".$Datum."</td>";
   echo"<td colspan='2' valign='top' class='styleborder2'>".$typeonderhoud."</td>";
   echo"<td width='500' valign='top' class='styleborder2'>".$notities."</td>";
   echo"<td align='center'valign='top' class='styleborder2'>";
//fotos tonen
$mini = "../gema/onderhoudpic/";
$sql_foto = ("SELECT foto_naam, onderhoud_id FROM klantfotoonderhoud WHERE onderhoud_id='$onderhoud_id'");
$result_foto=mysqli_query($link,$sql_foto);
while($row1 = mysqli_fetch_array($result_foto))
{

$foto=  htmlspecialchars($row1['foto_naam']);
$groep=  htmlspecialchars($row1['onderhoud_id']);
echo "<a href=".$mini.$foto." class='lytebox' data-lyte-options='group:".$groep." titleTop:true navTop:true' data-description=''><img src=".$mini.$foto." width='80'/></a>";
}

   echo "</td>";
//hidden id field
   echo"<input name='onderhoud_id' type='hidden' value='".$onderhoud_id."'/>";

   echo"<td align='center'valign='top' class='styleborder2'><input type='image' name='submit' src='menu-admin/edit.png' width='40' height='40' border='0' alt='Edit onderhoud' /> </td>";
 echo"</tr>";
}
?>

 </table></form>
<p>


Toevoeging op 02/08/2016 21:14:09:

ok topic gesloten

form tag juist voor mijn submit button gezet en nu doet hij het wel.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
   echo"<form action='gema/cms/updaten/adjust_onderhoud.php' method='post' enctype='multipart/form-data'><input name='klant' type='hidden' value='".$_SESSION['klant']."'/>

<td align='center'valign='top' class='styleborder2'><input name='onderhoud_id'  value='".$onderhoud_id."'/><input type='image' name='submit' src='menu-admin/edit.png' width='40' height='40' border='0' alt='Edit onderhoud' /> </form></td>";
 echo"</tr>";
Gewijzigd op 03/08/2016 09:20:12 door - Ariën -
 
PHP hulp

PHP hulp

05/11/2024 13:32:06
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/08/2016 22:17:27
Quote Anchor link
Beste Chris,

zover ik weet sluiten ze hier geen topics en vandaar dat ik toch nog graag even een reactie wil achterlaten.
Je schrijft dat je zelf de fout niet kunt vinden. Dit komt mijn inziens omdat bovenstaande code nogal ongestructureerd is. Je begint met de output van de HTML en zelfs van de HTML tabel al voor dat je weet of je query wel het gewenste resultaat oplevert. Stel nou dat er helemaal geen records (of rows) in de tabel gevonden worden? Je hebt dan de kop van je tabel al 'uitgespuugd'. Beetje jammer want een divje met de tekst 'geen informatie gevonden' zou wel zo verhelderend geweest zijn.

Daarom:
- Begin zoveel mogelijk met PHP. Je hoeft namelijk echt niet direct je variabelen te echoën. dat kan aan het einde ook. Sterker nog: je moet helemaal niets echoën in het logica gedeelte.
- Eindig met enkel HTML met daar tussen door een stukje PHP waarin je enkel je variabelen echo't.


Toevoeging op 02/08/2016 22:24:57:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

// begin altijd met PHP en niet met HTML


// declaratie van de variabelen

$tekst = 'geen blabla gevonden.';

// logica
if($blabla === true)
    $tekst = 'wat een blabla :-)';

// hieronder beginnen we met de output
?>

<doctype!>
<html>
    <head>
        <title>hallo</title>
    </head>
    <body>
        <p><?php echo $tekst; ?></p>
    </body>
</html>
Gewijzigd op 02/08/2016 22:19:09 door Frank Nietbelangrijk
 
- Ariën  -
Beheerder

- Ariën -

03/08/2016 09:22:14
Quote Anchor link
Dag Chris,

Fijn om te horen dat het opgelost is. Maar zou je in het vervolg een duidelijke topictitel aan je topic willen meegeven. Iets in de trant van: 'script werkt niet' is behoorlijk nietszeggend voor mensen die de titel lezen.

Verder sluiten we niet zomaar topics hier, tenzij ze niet voldoen aan de huisregels van de site. Topics zinken anders vanzelf wel naar beneden in de topicslijst.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.