Avatar billede gqo Nybegynder
20. december 2010 - 11:16 Der er 10 kommentarer og
1 løsning

ret direkte i udskrift med php fra mysql

Hej.
Lidt hjælp??
Herunder ser du lidt af en kode der fungerer udmærket, men spørgsmålet er om jeg ikke kunne rette direkte i uddskrifterne?? der vises ,dvs. data kunne vises i de enkelte felter, og så kunne rettes der?? pft. Gert

require_once("debug.php");

$sql = "SELECT *" .

      "FROM medlemmer ORDER BY medlemsnummer ASC";

$resultat = mysql_query($sql);

if(!$resultat)

rapporter_fejl("opslag.php forsøgte: $sql " .

                "men fejlede: " . mysql_error());

echo "<table border='1'>

<tr>

<th>Nr.</th>

<th>Navn</th>

<th>Adresse</th>

<th>BY</th>

<th>Telefonnr</th>

<th>Mobilnr</th>

<th>Email</th>

</tr>";

while($post = mysql_fetch_array($resultat)){

  echo "<tr>";

  echo "<td>" . $post['medlemsnummer'] . "</td>";

  echo "<td>" . $post['navn'] . "</td>";
echo "<td>" . $post['vejnavn'] . "</td>";

  echo "<td>" . $post['byer'] . "</td>";

  echo "<td>" . $post['tlfnr'] . "</td>";

    echo "<td>" . $post['mobilnr'] . "</td>";

    echo "<td>" . $post['email'] . "</td>";

  echo "</tr>";

}

echo "</table>"

?>
<br>
<div style="position:absolute;left:25px;">

<strong>Indtast data for nyt navn. Obs..ID nr. efter den sidste post.</strong>

<form method='post' action='tilfoej.php'>

<table border="1">

<tr valign="top">

    <td>ID nr.</td>

    <td><input type='text' name='medlemsnummer' size='2' /></td>

    <td>Navn</td>

    <td><input type='text' name='navn' size='20' /></td>

    <td>Adresse</td>

    <td><input type='text' name='vejnavn' size='20' /></td>

    <td>By</td>

    <td><input type='text' name='byer' size='16' /></td>

</tr>

<tr>

    <td>Tlfnr.</td>

    <td><input type='text' name='tlfnr' size='8' /></td>

    <td>Mob.nr</td>

    <td><input type='text' name='mobilnr' size='8' /></td>

<td>Email</td>

<td><input type='text' name='email' size='20' /></td>

<td>Div</td>
<td><input tpe='text' name='div' size='10' /></td></tr> 

</table>
<input type='submit' value='Tilføj navn' />

  <input type="reset" value="Nulstil felter">

</form>

    <form action='menu.php'>

    <input type='submit' value='Annullere' />

    </form></div>

</body>



</html>
Avatar billede webweaver Praktikant
20. december 2010 - 14:22 #1
Hej Gert.

Du bliver simpelthen nødt til at forklare det bedre.
Jeg ved ikke hvad det er du vil...

Hvilke data skal rettes helt præcist? Og når du siger rettes, er det så en opdatering i databasen eller bare "udskrivningerne" som du snakker om?

Hvad skal det rettes til?
Avatar billede gqo Nybegynder
20. december 2010 - 16:12 #2
Hej Igen.
Ja spørgsmålet var lidt "dårlig" men det jeg mener er selvfølgelig en opdatering i basen, men direkte i de poster der vises, dvs, skal kunne gå direkte ind i de enkelte felter og skrive en evt. rettelse..
pft. for det hurtige svar..Gert
Avatar billede webweaver Praktikant
20. december 2010 - 16:50 #3
Okay så skal du have en form. Du har en i forvejen i dit kodeværk deroppe (ved ikke om det er den som du vil bruge).

Du henter dine data ud af databasen og kører en while løkke som du gør nu. Så har du dine data, de skal ned i formen at stå.

Du giver dine input fields en value. Fx,

<td><input type="text" name="medlemsnummer" size="2" value="<?php echo $post['medlemsnummer']; ?>" /></td>


og så videre med de andre felter .. Så skulle du gerne have de rigtige data stående i felterne. Der kan selvfølgelig kun stå "1 række" af gangen i formen, så du skal nok have noget WHERE id = id i dit udtræk fra databasen. Altså hvilken en række som skal hentes/opdateres.

Så er det ellers bare at finde ud af om du vil lave opdateringen på samme side eller have en side specielt til det, og udfylde det i action (form), og så noget ala dette i PHP'en;

if (isset($_POST['update'])) { // Et skjult felt i din form som hedder update.

mysql_query("UPDATE tabel SET medlemsnummer = '$_POST[medlemsnummer]', navn = '$_POST[navn]', ..... WHERE id = $id") or die (mysql_error());

echo "Profilen blev opdateret";

}


Gav det mening for dig? :)
Avatar billede gqo Nybegynder
20. december 2010 - 17:18 #4
Tak, ja det gav mening, og virker, opdateringen skal være på samme side, problemet med uddkriften at alt efter eks. Jens Sørensen, komme kun Jens ned  i formen?? dvs. alt efter et mellemrum kommer ikke med?? hvordan?? tak endnu engang. Gert
Avatar billede webweaver Praktikant
20. december 2010 - 17:35 #5
Hmm det var mystisk.

$post['navn'] indeholder hele navnet? Altså Jens Sørensen? Det er ikke delt op i 2 felter i databasen? Den bør vise hele strengen.

Hvis du bare udskriver den på skærmen med echo $post['navn']; viser den så hele navnet?
Avatar billede gqo Nybegynder
20. december 2010 - 17:39 #6
Hej
Ja under normal udskrivning ingen problem på skærm, alt kommer med, men ikke ned i formen??
Det er mystisk??
Gert
Avatar billede webweaver Praktikant
20. december 2010 - 18:42 #7
Det forstår jeg ikke så meget af. Hmm, så prøv sådan her;

$_POST['navn'] = $post['navn'];

<input type=" ...."  value="<?php echo $_POST['navn']; ?>">

Og så kan det være at du bør give din while et andet navn end $post. Det kan være at den er brugt i PHP i forvejen. Fx $_POST, men ved det ikke med sikkerhed.
Avatar billede gqo Nybegynder
20. december 2010 - 20:33 #8
Hej (Igen)
1    Kasper Kruse    Hellestien 1a               
2    Winner Burger    Hosterupsgade 35 1   

nr.1    Kasper          Hellestien
nr.2    Winner          Hosterupsgade

Øverst resultatet af de to metoder mystisk??

while($_POST = mysql_fetch_array($resultat)){
// echo "<form method='post' action='$PHP_SELF'>";

echo "<input type='text' size='5' name='medlemsnummer' value=nr.$_POST[medlemsnummer] />";
echo "<input type='text' name='navn' value=$_POST[navn] />";
echo "<input type='text' name='vejnavn' value=$_POST[vejnavn] /><br>";

  echo "<tr>";

  echo "<td>" . $_POST['medlemsnummer'] . "</td>";

  echo "<td>" . $_POST['navn'] . "</td>";
echo "<td>" . $_POST['vejnavn'] . "</td>";

  echo "<td>" . $_POST['byer'] . "</td>";

  echo "<td>" . $_POST['tlfnr'] . "</td>";

    echo "<td>" . $_POST['mobilnr'] . "</td>";

    echo "<td>" . $_POST['email'] . "</td>";

  echo "</tr>";

}

echo "</table>"

?>

Mystisk Ikke?? jeg har prøvet lidt af "hvert"
Avatar billede webweaver Praktikant
20. december 2010 - 22:03 #9
Prøv at gemme det i en variabel først så.

while ($data = mysql_fetch_array($resultat)) {

$navn = $data['navn'];
....

}

<form ...>

echo "<input type='text' name='navn' value='" . $navn . "' />";
Avatar billede gqo Nybegynder
21. december 2010 - 16:16 #10
Hej BINGO!! nu virker det!! Det er næsten helt umulig at gennemskue hvordan alle disse tegn skal placeres, ret bøvlet  eks. '".$navn."' man har ikke gjort det let for ikke helt rutinerede??  endnu engang tak for hjælpen.

hvordan afsluttes indlæggene?
Gert
Avatar billede webweaver Praktikant
21. december 2010 - 16:34 #11
For folk der ikke er inde i systemet, kan det virke lidt bøvlet. Men det er nu logisk nok, når man kender til det :)

Du kan afslutte tråden nu, hvor jeg smider et svar.
Så er det bare at acceptere det :)

Fortsat god dag :)
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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