Autor Zpráva
ROLAND
Profil *
Ahoj,

jsem naprostý začátečník v PHP. Momentátně řeším problém, že mám záznam (řádek), který tahám z MySQL a u něj tlačítko editace. Přes id přenáším hodnoty do formuláře. Ovšem u seznamů se mi v prohlížeči nezobrazí správná položka. Vždycky porovnávám ID_GARANT z jedné tabulky s hodnotou ID_GARANT z druhé tabulky z databáze (resp. dotazu). Ve zdrojáku potom u správné položky selected="selected" mám, ale nezobrazí se to správně. Prosím o jakoukoliv radu.

Zde je problémová část kódu:

<?php

 include ("spojeni.php");
 $menu = $_GET['menu'];
 $sql = "SELECT id_data, nazevdat, meritko, nahled, ukazkaodkaz, popis, popis2, poskytovani, prispevatel, format, id_garant, historie, souradsystem, id_typ, id_licence, znalost
    FROM data
    WHERE id_data='$menu'";
 $result = mysqli_query($conn, $sql);

echo "<form action='update_data.php?$url&amp;menu=$menu' method='post'>
echo "<label for='id_garant'>Vyber garanta dat:</label><br />
    <select name='id_garant' id='id_garant'>";

$sql3 = "SELECT id_garant, nazev FROM garant GROUP BY nazev";
$result3 = mysqli_query($conn, $sql3);
while($row3 = mysqli_fetch_assoc($result3)) {
      echo '<option value="'.$row3["id_garant"].'"';
        if($row3["id_garant"] == $row["id_garant"]){
            echo ' selected="selected"';}
        else{                                    
            echo ' selected=""';}
      echo '>';
      echo $row3["nazev"];
      echo '</option>';
    }
     
echo "</form>";

mysqli_close($conn);
?>    



Při kopírování mi tam utekl jeden středník. Ale vím o tom. Problém bude nějkde jinde.
Taps
Profil
ROLAND:
zápis jsem ti poupravil
include ("spojeni.php");
 $menu = $_GET['menu'];
 $sql = "SELECT id_data, nazevdat, meritko, nahled, ukazkaodkaz, popis, popis2, poskytovani, prispevatel, format, id_garant, historie, souradsystem, id_typ, id_licence, znalost
    FROM data
    WHERE id_data='$menu'";
 $result = mysqli_query($conn, $sql);
 $row = mysql_fetch_assoc($result);
 
echo "<form action='update_data.php?$url&amp;menu=$menu' method='post'>
<label for='id_garant'>Vyber garanta dat:</label><br />
    <select name='id_garant' id='id_garant'>";
 
$sql3 = "SELECT id_garant, nazev FROM garant GROUP BY nazev";
$result3 = mysqli_query($conn, $sql3);
while($row3 = mysqli_fetch_assoc($result3)) {
      echo '<option value="'.$row3["id_garant"].'"';
        if($row3["id_garant"] == $row["id_garant"]){
            echo ' selected="selected"';}
        else{                                    
            echo ' selected=""';}
      echo '>';
      echo $row3["nazev"];
      echo '</option>';
    }
     
echo "</form>";
 
mysqli_close($conn);
?>    
mimochodec
Profil
  echo '<option value="'.$row3["id_garant"].'"';
  if($row3["id_garant"] == $row["id_garant"]) {
    echo ' selected="selected"';
  }

  echo '>'.$row3["nazev"].'</option>';

Ten else a selected="" je zbytečný, vyhoď ho. Jestli to nepomůže, dej vygenerovaný kód na http://kod.djpw.cz a ukaž.
ROLAND
Profil *
Pomohlo to. Díky moc.
ROLAND
Profil *
Mám velmi podobný problém. Tentokrát se jedná o checkbox a ne o option. Potřebuju aby se mi zatrhly ty checkboxy, jejichž id jsou napsáno v atributu format z prvního dotazu ($sql) ve formátu například: 1, 2, 5

$menu = $_GET['menu'];
 $sql = "SELECT id_data, nazevdat, meritko, nahled, ukazkaodkaz, popis, popis2, poskytovani, prispevatel, format, id_garant, historie, souradsystem, id_typ, id_licence, znalost
    FROM data
    WHERE id_data='$menu'";
 $result = mysqli_query($conn, $sql);
 $row = mysql_fetch_assoc($result);
 
$sql2 = "SELECT id_format, nazev FROM format";
$result2 = mysqli_query($conn, $sql2);
$pole=explode(", ",$row["format"]);

if (mysqli_num_rows($result2) > 0) {
    foreach ($pole as $hodnota){    
      while($row2 = mysqli_fetch_assoc($result2)) {
          echo '<input type="checkbox" value="'.$row2["id_format"].'" name="checkbox_formaty[]" id="case'.$row2["id_format"].'"'; 
          if ($hodnota == $row2["id_format"]){
              echo " checked='true'";
          }
          echo " />";
      echo "<label for='case".$row2['id_format']."'>".$row2['nazev']."</label>";
    }}}



v toto hvíli se mi zatrhne pouze první položka
Keeehi
Profil
while($row2 = mysqli_fetch_assoc($result2)) {
    echo "<input type=\"checkbox\" value=\"$row2[id_format]\" name=\"checkbox_formaty[]\" id=\"case$row2[id_format]\"".(in_array($row2["id_format"], $pole) ? ' checked="true"' : '')." /><label for=\"case$row2[id_format]\">$row2[nazev]</label>";
}

ROLAND:
id jsou napsáno v atributu format z prvního dotazu ($sql) ve formátu například: 1, 2, 5
Jde o špatný náverh databáze. Viz Některé časteji řešené dotazy pro MySQL - FAQ » Více hodnot ve sloupci

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0