Jaka powinna być ułożenie stylu css żeby dane się porawnie tabelarycznie wyświetlały

0

Mam takie pytanie jaka powinna być wartość stylów ccs (czyli jak to zrobić żeby za pomocą stylów css zapisać takie coś) ?
kolumna kolumna2
wiersz1 wiersz1
wiersz2 wiersz2

Czyli co powinno być dla kolumny a co dla wiersza ?

0

Skoro to są dane tabelaryczne, to dlaczego po prostu nie użyjesz tabeli?

0

Próbowałem, ale mam dwie pętle więc dane się niepoprawnie wyświetlają.

0

To, że są dwie pętle nie powinno wpływać na wyświetlanie się tabeli. Sprawdź czy tagi otwierające i zamykające komórek oraz wierszy są w dobrych miejscach. Sprawdź też, czy w każdym wierszy generowana jest taka sama ilość komórek - może w tym jest problem.

0

Standardowo: problem jest między krzesłem a monitorem.
Wrzuć kod - póki co nie ma nawet z czego gdybać.

0
$baza = new mysqli("localhost","root","","praca");


$zapytanie = $baza->query("SHOW COLUMNS FROM pracownicy");



print ("<table border=1 width=600><tr>");
while ($row = mysqli_fetch_array($zapytanie) ) {
    print ("<td><a href=zmien.php?kolumna=$row[0]>$row[0]</a></td>");
    $array = pobierz_wartosci_pole($row[0]);
    $i = 0;
    //print ("<tr>");
    while ($i < count ($array)) {
        //print ("<tr>");
        print "<td>" . $array[$i] . "</td>";
          //  print ("</tr>");
        $i++;
    }

    print ("</tr>");
}
print ("</table>");


function pobierz_wartosci_pole($pole) {
    global $baza;
    $zapytanie = $baza->query("select $pole from pracownicy");
    $array = array();
    $i = 0;
    while ($zapytanie2 = mysqli_fetch_array($zapytanie) ) {
        $array[$i] = $zapytanie2[0];
        //print $array[$i];
        $i++;
    }
    
    return $array;
}
0

Generujesz jedno <tr> zamiast jednego dla każdego wiersza.

0

Dla każdego tez próbowałem.

0

Trochę źle do tego podszedłeś. Według kodu, który przedstawiłeś, próbujesz generować tabelę kolumna za kolumną, natomiast należy to zrobić, wiersz za wierszem. Zatem najpierw generujesz komórki za nagłówkami, jako jedna pętla. Później pobierasz dane pracowników i za pomocą dwóch pętli wyświetlasz kolejne wiersze i komórki.

0

No bo ja muszę odczytać listę kolumn dlatego z perspektywy php lepiej się robi kolumna za kolumną

0

Ok, jeśli zrobisz to w taki sposób jak Ci opisałem powyżej to uzyskasz tabelę taką jak opisałeś w pierwszym poście.

0

Zmodufikowałem i teraz działa dobrze mój kod wygląda tak

<?php







$baza = new mysqli("localhost","root","","praca");


$zapytanie = $baza->query("describe pracownicy");
$kolumny = "";
$i = 0;
$kolumny2 = array();
while ($row = mysqli_fetch_array($zapytanie) ) {
    //$count = count($row);
    //$count = $count / 2;
    //print $count  ."<br>";
    $kolumny .= $row[0];
    $kolumny .= ",";
    $kolumny2[$i] = $row[0];
    $i++;
}
$kolumny = substr($kolumny,0,strlen($kolumny)-1);
print $kolumny . "<br><Br>";

$zapytanie2 = $baza->query("select $kolumny from pracownicy");

print ("<table border=1 width=600><tr>");
//var_dump($kolumny2);
$z = 0;
while ($z < count ($kolumny2)) {

    print ("<td>$kolumny2[$z]</a></td>");
    $z++;
}
print ("</tr>");
while ($row = mysqli_fetch_array($zapytanie2) ) {
    $j = 0;
//w tej zmiennej $row
    while ($j < count($row) ) {
        if ($j == 0) {
            print ("<td><a href=zmien.php?kolumna=$row[$j]>$row[$j]</a></td>");
        }
        else {
            print ("<td>$row[$j]</a></td>");
        }
        $j++;
    }
    $array = pobierz_wartosci_pole($row[0]);
    $i = 0;
    //print ("<tr>");
    while ($i < count ($array)) {
        //print ("<tr>");
        print "<td>" . $array[$i] . "</td>";
          //  print ("</tr>");
        $i++;
    }

    print ("</tr>");
}
print ("</table>");

Mam teraz pytanie jak zrobić żeby uzyskać rzeczywistą ilość elementów tablicy w zmiennej $row

0

Ta ostatnia pętla, w której używasz zmiennej $array nie jest potrzebna. Wartości poszczególnych pól znajdują się w tablicy $row, więc i funkcja pobierz_wartosci_pole, też jest zbędna. Brakuje też otwierającego tagu <tr> na początku drugiej pętli.
Co ma na celu dodanie odnośnika do pliku zmien.php? Chcesz sortować wiersze według kolumny, czy to ma być edycja danych pracownika?

0

Ta pętla wiem, że jest zbędna, ale nie odpowieidziałeś na moje pytanie.

0

Chcesz sortować wiersze według kolumny, czy to ma być edycja danych pracownika?

Chcę edytować.

1

Zamiast w pętli używać funkcji mysqli_fetch_array użyj przed pętlą mysqli_fetch_all i zapisz wynik np. do zmiennej $rows. W tedy będziesz wiedział ile rekordów zwróciła baza danych. W pętli natomiast odwołujesz się już do zmiennej $rows.

0

Dzięki teraz działa.

0

Ten program na razie tak wygląda nie wiem czy dobrze.
Główny plik

<htmL>
<head>
<script language="javascript">
function usun_wpis(zmienna) {
  var wynik = confirm("Czy na pewno usunąć");
   //var opis = '#opis' + i;
   if (wynik == true) {
    window.location.href = zmienna;
    //$(opis).load(zmienna); 
   }
  //$(opis).toggle();
  
}


</script>
</head>

<body>





<?php




include ("./funkcje.php");


$baza = new mysqli("localhost","root","","praca");


$kolumny = czytaj_kolumn(true);
//print $kolumny . "<br><Br>";
//print $kolumny;
$zapytanie2 = $baza->query("select $kolumny from pracownicy");

print ("<table border=1 width=600><tr>");
//var_dump($kolumny);

$pojedyncza_kolumna = explode(",",$kolumny);
$i = 0;
while ($i < count($pojedyncza_kolumna) ) {
    print ("<td><a href=zmien.php?kolumna=$pojedyncza_kolumna[$i]>$pojedyncza_kolumna[$i]</td>");
    $i++;
}
$z = 0;
print ("</tr><tr>");
while ($z < count ($kolumny2)) {

    print ("<td><a href=zmien2.php?kolumna=$kolumny2[$z]>$kolumny2[$z]</a></td>");
    $z++;
}
print ("</tr>");
$rows = mysqli_fetch_all($zapytanie2);
 ///var_dump($rows);
 $i = 0;
 while ($i < count($rows) ) {
    $z = 0;
    print ("<tr>");
    while ($z < count ($rows[$i]) ) {
        if ($z == 0) {
            $wiersz = $rows[$i][$z];
            print "<td><a href=zmien.php?wiersz=$wiersz>" . $rows[$i][$z] . "</a></td>";
        }
        else {
            print "<td>" . $rows[$i][$z] . "</td>";
        }
        $z++;
    }
    print "<td><a onclick=usun_wpis('./usun.php?id=$wiersz')>usuń

plik dodaj.php

<?php
$baza = new mysqli("localhost","root","","praca");
include ("./funkcje.php");

$kolumny = czytaj_kolumn(false);

//print $kolumny;
$kolumny2 = explode (",",$kolumny);
//print $kolumny2[0];

print ("<form action=dodaj2.php method=post>");
$i = 0;
while ($i < count($kolumny2) ) {
    
    print ("$kolumny2[$i] <input type=text name=$kolumny2[$i]> <br> ");
    
    $i++;
}



print ("<input type=submit value=dodaj></form>");

?>

plik dodaj2.php

<?php
$baza = new mysqli("localhost","root","","praca");

include ("funkcje.php");
 $kolumny = addslashes($kolumny);
 $kolumny = htmlspecialchars($kolumny);
$kolumny = czytaj_kolumn(false);
$wiersze = utworz_wiersz($_POST);
print $kolumny . $wiersze;
$baza->query("insert into pracownicy ($kolumny) values ($wiersze)");
?>

plik funkcje.php

<?php


//parametr status jest wykorzystywany do tego aby określić czy funkxja ma drukowac kolumny bez id_pracownika czy z nim
function czytaj_kolumn($status) {
    global $baza;
    $zapytanie = $baza->query("describe pracownicy");
    $kolumny = "";
    print  $i;
    $i = 0;
    $kolumny2 = array();
    while ($row = mysqli_fetch_array($zapytanie) ) {
        //$count = count($row);
        //$count = $count / 2;
        //print $count  ."<br>";
        if ($status == true) {
            $kolumny .= $row[0];
            $kolumny .= ",";
            $kolumny2[$i] = $row[0];
        }
        else {
            $status = true;
        }
        $i++;
    }
    $kolumny = substr($kolumny,0,strlen($kolumny)-1);
    
    return $kolumny;
}

function utworz_wiersz($tablica) {
$i = 0;
$post =  array_values (  $tablica );
//var_dump($_post);
$wartosc = "";
while ($i < count ($post) ) {
//    print $post[$i];
    $wartosc .= "'" . $post[$i] . "',";
    //print "ff<br>";
    $i++;

}
$wartosc = substr($wartosc,0,strlen($wartosc)-1);
return $wartosc;
}


?>

plik usun.php

<?php


$baza = new mysqli("localhost","root","","praca");
 $string2 = addslashes($_GET["id"]);
 $string2 = htmlspecialchars($string2);

$true_fasle = $baza->query("delete from pracownicy where id_pracownika = '$string2' ");
if ($true_fasle == true) {
    print "Pomyslnie usunąłeś wiersz";

}


?>

plik zmien.php

<form action=zmien2.php method=post>

<?php

//$nowa_tablica = array_values($_POST["kolumna"]);
//var_dump($nowa_tablica);
$tablica = $_GET["kolumna"];
var_dump($_GET["kolumna"]);
print ("<input type=text name=wartosc value=$tablica>");








print "dpnewn";


?>


</form>

1 użytkowników online, w tym zalogowanych: 0, gości: 1