Avatar billede fancy Mester
17. juli 2022 - 19:57 Der er 15 kommentarer

loop

Hej hvordan løber jeg nemmest og bedst men db igennem, for finde disse data.
I min db har jeg en kolonne der heder blok, og en der hedder meter, jeg skal finde hvor mange meter blok 1 indeholder, og hvor mange meter blok 2 indeholder, disse skal udskrives under hver blok?
Avatar billede expnet Seniormester
17. juli 2022 - 21:17 #1
Du må komme med noget mere kode og evt. Noget dat og evt. Hvordan du vil have det skal outputs se ud
Avatar billede bvirk Professor
18. juli 2022 - 09:28 #2
I en af to måder (msqli kontra pdo) i dette tilfældige valg blandt hundreder:
https://www.w3schools.com/PHP/php_mysql_select.asp

skal følgende linier tilpasses:
$sql = "SELECT meter from MyGuests where blok=1 ";
...
echo "meter: " . $row["meter"]

Idet din 'min db' er MyGuests
Avatar billede fancy Mester
18. juli 2022 - 12:17 #3
$check = mysql_query("SELECT * FROM xxxx WHERE arrid = '".$row['aid']."'");
    $count = mysql_num_rows($check);

    echo '<tr>
 
        <td>'.$Stadeplads.'</td>
        <td>'.$Blok.'</td>
        <td>'.$meter.'</td>
        <td>'.$grund.'</td>
        <td><a href="arr.php?aid='.$aid.'">Tilmeld</a></td>
        <td>'.$count.'</td>
        <td>'.$pladser.'</td>
    </tr>';

Når $Blok har fundet alle med 1 skal den finde alle med 2 i kolonnen Blok fra db osv.
Men den skal lave plads til $ meter, således jeg kan tælle $meter sammen, efter den har fundet hvor mange der $Blok der er.
Avatar billede fancy Mester
21. juli 2022 - 22:32 #4
Er det en forkert kategori jeg har ramt?
Avatar billede bvirk Professor
22. juli 2022 - 13:28 #5
Nej og 'loop' er også ganske rigtigt hvad du skal bruge for at opsumere meter.

$meterStykker = [1,2,3,4,5,6,7,8,9];
$metersum=0;
for ($i=0; $i< count($meterStykker); $i++) {
    $metersum += $meterStykker[$i];
}
echo $metersum;
Avatar billede fancy Mester
22. juli 2022 - 22:26 #6
Tak, det giver god mening, men jeg kan ikke finde ud af, at putte det ind i min kode, så når den ikke finder flere Blok 1 så regner den sammen, udskriver under (lidt lige som i excel ) forsætter derefter med finde Blok2 osv......
Avatar billede expnet Seniormester
23. juli 2022 - 01:22 #7
Kan du give et billede og evt. Lidt DB så vil jeg gerne prøve at kigge på det, så jeg ved nogle lunde hvad det er du vil ramme som output data
Avatar billede bvirk Professor
23. juli 2022 - 11:21 #8
#7 Klart at foretrække fremfor en krystalkugle

Uden at ville overtage fordybelser i deprecated funktioner:
https://www.php.net/manual/en/function.mysql-query.php

vil jeg afslutte med lidt af konseptet vha variabler - aner ikke om nogen bliver klogere af det

?><html><body><table border="1"><tr><th>plads</th><th>meter</th></tr><?php
$dbTable = [1 => ['plads A',6], 2 => ['plads B',7]];
$metersum=0;
foreach ([1,2] as $blok) {
    $selectBlok = $dbTable[$blok]
    ?><tr><td><?=$selectBlok[0]?></td><td><?=$selectBlok[1]?></td></tr><?php
    $metersum +=$selectBlok[1];
}
?></table><p>meter ialt: <?= $metersum ?></body></html><?php
Avatar billede fancy Mester
23. juli 2022 - 23:48 #9
<?php
session_start();
    if($_SESSION['admin'] != 1) {
        echo "<center><br><br><br><br><br><br><h1>Du er ikke logget ind!<br><br> <a href='logind.php'>klik her for login</a>";
    } else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Vagt oversigt</title>
<style type="text/css">
<!--
body {
    background-color: #0099CC;
}
-->
</style></head>
<center><img src="../logo/top.jpg" />
</head>
</head>

<body>
<br />
<a href="login.php">Hoved menu</a>
<center><h2>Stadeplads</h2>
<?php
include 'connect.php';

echo'<center><table width="800" border="0" cellpadding="0" cellspacing="0">
  <tr>
   
    <td width="75"><b>Stadeplads</b></td>
    <td width="75"><b>Blok</b></td>
    <td width="75"><b>Meter</b></td>
    <td width="75"><b>Hjørne grund</b></td>

    <td width="75"><b>Tilmelding</b></td>
    <td width="75"><b>Ledig</b></td>
    <td width="25">Optaget</td>
  </tr>';
  include_once('mysql2i.class.php');
include_once('mysql2i.func.php');
$result = mysql_query("SELECT * FROM xxxxxx WHERE atildelt = 'Stadeplads' ORDER BY Blok")
or die(mysql_error()); 
while($row = mysql_fetch_array( $result )) {
//$dato = $row['dato'];
$anavn = $row['anavn'];
//$adag = $row['adag'];
$meter = $row['meter'];
$grund = $row['grund'];
$aid = $row['aid'];
$pladser = $row['pladser'];
$tilmeldt = $row['tilmeldt'];
$Blok = $row['Blok'];
$Stadeplads = $row['Stadeplads'];
//$lpladser=$pladser-$tilmeldt;

$check = mysql_query("SELECT * FROM xxxxx WHERE arrid = '".$row['aid']."'");
$count = mysql_num_rows($check);

echo '<tr>
 
    <td>'.$Stadeplads.'</td>
    <td>'.$Blok.'</td>
      <td>'.$meter.'</td>
      <td>'.$grund.'</td>
     
     
    <td><a href="arr.php?aid='.$aid.'">Tilmeld</a></td>
   
      <td>'.$count.'</td>
          <td>'.$pladser.'</td>
  </tr>';
}
echo'</table>';
?>
</body>
</html>
<?php
}
?>

Her er hele min kode
Jeg vil gerne kunne se hvor mange meter der er ialt/Blok
Avatar billede expnet Seniormester
25. juli 2022 - 06:21 #10
Hvordan se din tabeller ud i DB i forhold data håndtering evt. Lidt data vil gerne meget nemmere at hjælpe
Avatar billede fancy Mester
26. juli 2022 - 17:48 #11
Den ene tabel
aid    int(10)       
=
anavn    varchar(100)    utf8_general_ci   
LIKE
Blok    varchar(100)    utf8_general_ci   
LIKE
Stadeplads    varchar(100)    utf8_general_ci   
LIKE
meter    varchar(10)    utf8_general_ci   
LIKE
grund    varchar(10000)    utf8_general_ci   
LIKE
tilmeldt    varchar(10)    utf8_general_ci   
LIKE
pladser    varchar(20)    utf8_general_ci   
LIKE
atildelt    text    utf8_general_ci   
LIKE
pris    int(100)       
=

og den anden

Kolonne    Datatype    Tegnsæt (sortering)    Operatør    Værdi
tid    int(4)       
=
tnavn    varchar(100)    utf8_swedish_ci   
LIKE
tadr    varchar(100)    utf8_swedish_ci   
LIKE
tpnr    varchar(100)    utf8_general_ci   
LIKE
tby    varchar(100)    utf8_swedish_ci   
LIKE
ttel    varchar(100)    utf8_general_ci   
LIKE
tmail    varchar(100)    utf8_general_ci   
LIKE
numv    varchar(100)    utf8_general_ci   
LIKE
arrid    int(4)       
=
Stadeplads    varchar(50)    utf8_danish_ci   
LIKE
meter    varchar(10)    utf8_danish_ci   
LIKE
tid_overf    int(10)       
=
Kommet    int(4)       
=
accept    int(4)       
=
mail_sent    int(4)       
=
sent_mail    int(4)       
=
bluse    int(4)       
=
overf    int(4)       
=
kommentar    text    utf8_danish_ci   
LIKE
cvr    varchar(200)    utf8_danish_ci   
LIKE
salg    varchar(200)    utf8_danish_ci   
LIKE
Blok    int(50)       
=
grund    int(50)       
=
Avatar billede expnet Seniormester
26. juli 2022 - 21:46 #12
Prøv lige det er her

$sCheck = mysql_query("SELECT SUM(meter) as TotalMeter FROM xxxxx WHERE arrid = '".$row['aid']."'");
$sRow = mysql_fetch_array($sCheck);
echo $sRow['TotalMeter'];
Avatar billede fancy Mester
27. juli 2022 - 22:56 #13
Fatal error: Uncaught TypeError: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, bool given in /customers/a/7/9/lbfkr.dk/httpd.www/Stadeplads/mysql2i.class.php:150 Stack trace: #0 /customers/a/7/9/lbfkr.dk/httpd.www/Stadeplads/mysql2i.class.php(150): mysqli_fetch_array(false, 3) #1 /customers/a/7/9/lbfkr.dk/httpd.www/Stadeplads/mysql2i.func.php(86): mysql2i::mysql_fetch_array(false, 3) #2 /customers/a/7/9/lbfkr.dk/httpd.www/Stadeplads/arr_list.php(63): mysql_fetch_array(false) #3 {main} thrown in /customers/a/7/9/lbfkr.dk/httpd.www/Stadeplads/mysql2i.class.php on line 150
Avatar billede expnet Seniormester
28. juli 2022 - 08:14 #14
Du må visse din kode fra arr_list.php
Avatar billede fancy Mester
05. august 2022 - 23:45 #15
<?php
session_start();
    if($_SESSION['admin'] != 1) {
        echo "<center><br><br><br><br><br><br><h1>Du er ikke logget ind!<br><br> <a href='logind.php'>klik her for login</a>";
    } else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Vagt oversigt</title>
<style type="text/css">
<!--
body {
    background-color: #0099CC;
}
-->
</style></head>
<center><img src="../logo/top.jpg" />
</head>
</head>

<body>
<br />
<a href="login.php">Hoved menu</a>
<center><h2>Stadeplads</h2>
<?php
include 'connect.php';

echo'<center><table width="800" border="0" cellpadding="0" cellspacing="0">
  <tr>
   
    <td width="75"><b>Stadeplads</b></td>
    <td width="75"><b>Blok</b></td>
    <td width="75"><b>Meter</b></td>
    <td width="75"><b>Hjørne grund</b></td>

    <td width="75"><b>Tilmelding</b></td>
    <td width="75"><b>Ledig</b></td>
    <td width="25">Optaget</td>
  </tr>';
  include_once('mysql2i.class.php');
include_once('mysql2i.func.php');
$result = mysql_query("SELECT * FROM vagt_arrdb WHERE atildelt = 'Stadeplads' ORDER BY Blok")
or die(mysql_error()); 
while($row = mysql_fetch_array( $result )) {
//$dato = $row['dato'];
$anavn = $row['anavn'];
//$adag = $row['adag'];
$meter = $row['meter'];
$grund = $row['grund'];
$aid = $row['aid'];
$pladser = $row['pladser'];
$tilmeldt = $row['tilmeldt'];
$Blok = $row['Blok'];
$Stadeplads = $row['Stadeplads'];
//$lpladser=$pladser-$tilmeldt;

$check = mysql_query("SELECT * FROM vagt_tilmdb WHERE arrid = '".$row['aid']."'");
$count = mysql_num_rows($check);

$sCheck = mysql_query("SELECT SUM(meter) as TotalMeter FROM vagt_tilmldb WHERE arrid = '".$row['aid']."'");
$sRow = mysql_fetch_array($sCheck);
echo $sRow['TotalMeter'];

echo '<tr>
 
    <td>'.$Stadeplads.'</td>
    <td>'.$Blok.'</td>
      <td>'.$meter.'</td>
      <td>'.$grund.'</td>
     
     
    <td><a href="arr.php?aid='.$aid.'">Tilmeld</a></td>
   
      <td>'.$count.'</td>
          <td>'.$pladser.'</td>
         
         
  </tr>';
}
echo'</table>';

}
?>
</body>
</html>
<?php

?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





CIO
Stort CIO-interview: Lemvigh-Müllers milliard-omsætning er blevet digital