Toon posts:

[php] Probleem met $'s uitlezen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik heb een inschrijf pagina die naar een database schrijft. Deze koppeling werkt uitstekend.
Nu moeten deze inschijf resultaten ook uitgelezen kunnen worden. Dus hetzelfde inschrijfformulier moet er komen maar dan ipv de input type velden gewoon $... als waarde.

Hoe kan ik dit realiseren zonder dat ik alle waarden van de veldnamen aan variabelen gelijk moet stellen?
Ik bedoel zonder dat ik dit rijtje moet maken:
PHP:
1
2
3
4
5
<?
$id = mysql_result($result,0,"id");
$datum = mysql_result($result,0,"datum");
etc....
?>

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
als er bijvoorbeeld $blaat1 en $blaat2 als variabelen instaan, vervangen met str_replace:
code:
1
2
$text = str_replace('$blaat1', $blaat1, $text);
$text = str_replace('$blaat2', $blaat2, $text);

Verwijderd

Wat ook kan, afhankelijk van wat je precies wilt, iets als:
PHP:
1
2
3
<?
eval("\$output = \"".addslashes($text)."\";");
?>

Dan worden $... in $text automatisch door de goede waarden vervangen en het resultaat in $output gestopt.

ook leuk voor in een template parser trouwens

Verwijderd

Topicstarter
Op zaterdag 24 november 2001 14:52 schreef marcusk het volgende:
als er bijvoorbeeld $blaat1 en $blaat2 als variabelen instaan, vervangen met str_replace:
code:
1
2
$text = str_replace('$blaat1', $blaat1, $text);
$text = str_replace('$blaat2', $blaat2, $text);
Dat bedoel ik niet :) bedoel zo:
naam : $naam
voorletters : $voorletters
etc...

zo'n soort overzicht

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
ow, ik begreep je idd verkeerd (de vraag is ook niet echt duidelijk gesteld). bedoel je zoiets: ?
code:
1
2
$result = mysql_query("SELECT id, blaat1, blaat2, blaat3 FROM blaattabel... etc...");
list($id, $blaat1, $blaat2, $blaat3) = mysql_fetch_row($result);

je kunt ook mysql_fetch_array, mysql_fetch_object, etc gebruiken, zie de docs

Verwijderd

Topicstarter
Op zaterdag 24 november 2001 15:02 schreef marcusk het volgende:
ow, ik begreep je idd verkeerd. bedoel je zoiets: ?
code:
1
2
$result = mysql_query("SELECT id, blaat1, blaat2, blaat3 FROM blaattabel... etc...");
list($id, $blaat1, $blaat2, $blaat3) = mysql_fetch_row($result);
Ja inderdaad ik zal je ff de code van posten doen
PHP:
1
2
3
4
5
6
7
8
9
<?
  include("login.php");


  if ($button=='Inschrijven') {

$qinfo = "INSERT INTO inschrijvingen(datum,naam,voorletters,adres,postcode,woonplaats,etc....
VALUES ('$field[datum]','$field[naam]','$field[voorletters]','$field[adres]','$field[postcode]','$field[woonplaats]',etc...
?>

En nu wil ik op een andere pagina deze values weer uitlezen d.m.v. <echo $variabele; ?>

Hoe kan dit het snelst het is namelijk ongeveer een rijtje van ongeveer 20 velden

Verwijderd

Nou dat doe je dus het snelst zoals marcus net zei. Misschien heb je over die regel met list() heen gelezen ?

  • tomato
  • Registratie: November 1999
  • Niet online
PHP:
1
2
3
4
5
<?
$row = mysql_fetch_array($result);
while (list($k, $v) = each($row)
   ${$k} = $v;
?>

Dat is het snelst, maar ook het lelijkst :)

Maar waarom niet:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$row = mysql_fetch_array($result);

/*   bla bla
*/

?>

HTML enzo
<? echo $row["key"] ?> enzo jaja <? echo $row["anderekey"] ?>

<?
?>

Verwijderd

Topicstarter
PHP:
1
2
3
4
<?
$result = mysql_query("SELECT id, blaat1, blaat2, blaat3 FROM blaattabel... etc...");
list($id, $blaat1, $blaat2, $blaat3) = mysql_fetch_row($result);
?>

Kan dat niet zo
PHP:
1
2
3
4
<?
$result = mysql_query("SELECT * FROM tabel");
list($id, $blaat1, $blaat2, $blaat3 enz...) = mysql_fetch_row($result);
?>

en daarna hoef ik dan alleen maar $list uit te lezen?

Verwijderd

Topicstarter
Maar waarom niet:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$row = mysql_fetch_array($result);
/*   
bla bla : Ik neem aan dat hier select statement komt?
*/

?>
<?
// kan het dan zo
Naam: <? echo $row["key"] ?> 
Adres : <? echo $row["key2"] ?>
enz...
?>

  • tomato
  • Registratie: November 1999
  • Niet online
Met het laatste bedoelde ik dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
$result = mysql_query("SELECT Naam, Adres FROM Tabel", $db);
$row = mysql_fetch_array($result);

/*
   Hieronder heb je neem ik aan je HTML staan
   Dat begrijp ik uit je verhaal
*/

?>

HTML enzo

Naam: <?php echo $row["Naam"] ?><br>
Adres: <?php echo $row["Adres"] ?><br>

<?

// Klaar
?>

Verwijderd

Topicstarter
Op zaterdag 24 november 2001 16:20 schreef tomato het volgende:
Met het laatste bedoelde ik dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
$result = mysql_query("SELECT Naam, Adres FROM Tabel", $db);
$row = mysql_fetch_array($result);

/*
   Hieronder heb je neem ik aan je HTML staan
   Dat begrijp ik uit je verhaal
*/

?>

HTML enzo

Naam: <?php echo $row["Naam"] ?><br>
Adres: <?php echo $row["Adres"] ?><br>

<?

// Klaar
?>
Bedankt is duidelijk ik ga er meteen mee aan de slag

dus gewoon SELECT alle velden bij naam noemen FROM Tabel ?

  • tomato
  • Registratie: November 1999
  • Niet online
Ketje: dus gewoon SELECT alle velden bij naam noemen FROM Tabel ?
Je hoeft ze niet allemaal bij naam te noemen, maar ik zou het toch doen. Het is veel duidelijker, beter voor de performance en sluit eventuele security leaks uit (denk aan een veld 'password' dat met * geselecteerd wordt en wat vervolgens dus in je script of 'template' (onbedoeld) te gebruiken is).

Verwijderd

Topicstarter
Thanx A lot

It's workin'

Verwijderd

Voorbeelden van dit soort dingen staat trouwens ook gewoon perfect in function reference op php.net
Pagina: 1