[PHP] Met Fetch_array waarde in link plaatsen.

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
include("login.php");

$db = mysql_select_db ("mijn_database")
     or die("Kan geen database selecteren");

$query = "SELECT story FROM news";
$result = mysql_query($query)
     or die("Fout bij uitvoeren query");
     
// Printen resultaten in HTML
 print "<table>\n";
 while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
     print "\t<tr>\n";
     foreach ($line as $col_value) {
         print "\t\t<td><a href=\"news.php?id=>$col_value</a></td>\n";
     }
     print "\t</tr>\n";
 }
 print "</table>\n";

 // Resultaat-set vrij maken
 mysql_free_result($result);

 // Verbinding afsluiten
 mysql_close($link);


Ik wil dus een link maken iets als dit news.php?id=34 waar <a href=\"news.php?id=(hier dus de id die hij uit de mysql database moet halen). Ik haal de gegevens er dus al uit met de mysql_fetch_array functie. Dan drukt hij die hele query af, maar ik wil dus 1 waarde hebben nog erbij de ID:

De STORY variable drukt hij dus nu af. Daar op staat een link met "news?id="
achter die "=" is moet hij dus voor elke story de id zetten. Kan iemand me helpen hier mee.

PHP:
1
print "\t\t<td><a href=\"news.php?id=>$col_value</a></td>\n";

Het gaat dus om de regel. Waar achter "id=" iets van news.id of zo moet komen.


Edit: Jammer dat mijn vorige topic zo snel werd gelocked, waar er nog niet klaar mee 8)7 . MOD zat er wel erg snel op.

[ Voor 41% gewijzigd door Verwijderd op 09-09-2004 15:14 ]


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17:49

ripexx

bibs

Die foreach loop is helemaal niet nodig ;)

PHP:
1
2
3
4
5
6
7
8
$sql = "SELECT sotory, link_id FROM news;";
$query = mysql_query($sql);

while($row = mysql_fetch_array($query,  MYSQL_ASSOC))
{
   $link_id = $row['link_id'];
   $story = $row['story'];
};


Rest mag je zelf uitzoeken ;)

[ Voor 8% gewijzigd door ripexx op 09-09-2004 15:16 ]

buit is binnen sukkel


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

offtopic:
Als je niet wilt dat je topic op slot gaat terwijl je nog nog niet klaar bent moet je het bericht nog niet plaatsen.


code:
1
print "\t\t<td><a href=\"news.php?id=".$line['id'].">$col_value</a></td>\n";
?

Sole survivor of the Chicxulub asteroid impact.


Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
print "<table>\n";
while($row = mysql_fetch_array($result,  MYSQL_ASSOC)) { 
   print "\t<tr>\n";
   $id = $row['link_id']; 
   $story = $row['story']; 
   print "\t\t<td><a href=\"news.php?id=$id\">$story</a></td>\n";
   print "\t</tr>\n";
};
print "</table>\n";


Dit heb ik ervan gemaakt. De Storys worden weer mooi afgedrukt. Alleen de id niet. Daar komt niets te staan. Is dit omdat de ID een integer is en ik hem in een string plaats of hoe kan dat?

Verwijderd

Topicstarter
Ow sorry!

Zie het al |:(

moet $row['id'];
en niet $row['link_id'];

Hartelijk dank jongens :o

[ Voor 33% gewijzigd door Verwijderd op 09-09-2004 15:30 ]


Verwijderd

Topicstarter
Nou heb ik nog een vraagje.
Als ik het script aanroep en op een link klik krijg id een waarde, dus word het script zonder fout uitgevoerd. Maar als je de pagina laadt heeft de header nog geen id in de link. Dus geeft het script een foutmelding. Ik wil dus een standaard waarde hebben. Het beste is dan het laatste ID in de database. Hoe kan ik dat realiseren?

Mijn vorige script toon alle id's van laagste naar hoogste. Hoe kan ik dat nog omdraaien.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

PHP:
1
2
3
4
5
6
7
8
9
if (!isset($_GET['id']) or !is_numeric($_GET['id'])) {
  $query = mysql_query("SELECT story FROM news ORDER BY id DESC LIMIT 1");
  if ($story = mysql_fetch_object($query) != 0) {
    // waardes weergeven
  }
  else {
    // geen nieuws in de DB, error genereren
  }
}

Vrij eenvoudig verder.

[ Voor 14% gewijzigd door NMe op 09-09-2004 19:24 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
NMe84 schreef op 09 september 2004 @ 19:23:
PHP:
1
2
3
4
5
6
7
8
9
if (!isset($_GET['id']) or !is_numeric($_GET['id'])) {
  $query = mysql_query("SELECT story FROM news ORDER BY id DESC LIMIT 1");
  if ($story = mysql_fetch_object($query) != 0) {
    // waardes weergeven
  }
  else {
    // geen nieuws in de DB, error genereren
  }
}

Vrij eenvoudig verder.
En daarna op je bek gaan met ?id=10e3

Die eerste regel moet natuurlijk zijn:
PHP:
1
if (!isset($_GET['id']) || empty($_GET['id']) || !ctype_digit($_GET['id'])) {

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
En daarna op je bek gaan met ?id=10e3
Leg ff uit dan?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
include("login.php");

$db = mysql_select_db ("mijn_db")
     or die("Kan geen database selecteren");


$id = $_GET[id];
$query = "SELECT id,story,date,headline,image,time FROM news WHERE id=$id";
$result = mysql_query($query)
     or die("Fout bij uitvoeren query");
     
// Printen resultaten in HTML 

print "<table>\n";
while($row = mysql_fetch_array($result,  MYSQL_ASSOC)) { 
   print "\t<tr>\n";
   $headline = $row['headline']; 
   $story = $row['story']; 
   $date = $row['date'];
   $image = $row['image'];
   $time = $row['time']; 
   print "\t\t<td><b>$headline</b></td></tr>\n";
   print "\t\t<tr><td>[img]'images/$image'></td><td[/img]$story</td></tr>";
   print "\t\t<tr><td><i>$date $time</i></td>\n";
   print "\t</tr>\n";
};
print "</table>\n";


 
 // Resultaat-set vrij maken
 mysql_free_result($result);

 // Verbinding afsluiten
 mysql_close($link);


Ik krijg jullie niet in mijn huidige scipt geimplementeert.
En ik snap niet waar het fout gaat. Hij drukt dan gewoon niets af.

[ Voor 20% gewijzigd door Verwijderd op 10-09-2004 21:14 ]


Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
10e3 == 10*103
En wordt dus geaccepteerd door is_numeric. (En niet door ctype_digit)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
10e3 == 10*103
En wordt dus geaccepteerd door is_numeric. (En niet door ctype_digit)
Ok dat is me nu duidelijk thx.
Maar krijg het nog altijd niet voorelkaar om als ik de pagina laadt een waarde in de id hebben te staan zodat er meteen iets word getoon op de pagina (de laatste id in database moet dat zijn). Ik snap de sql query wel. Maar ik krijg de gegeven oplossing niet in mijn script aan de praat. Er zonder werkt het perfect, dus dat heet als ik op de links klik komen de berichten mooi op de pagina.

Verwijderd

Topicstarter
Niemand die me kan helpen?

*schopje

  • raps
  • Registratie: April 2003
  • Laatst online: 06-09 19:51
Verwijderd schreef op 11 september 2004 @ 22:09:
Niemand die me kan helpen?

*schopje
(Late reactie:)
Je sluit je while-loop af met een ; en das nie de bedoeling:
while () {

};

die ; moet weg

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
include("login.php");

$db = mysql_select_db ("mijn_db")
     or die("Kan geen database selecteren");


// begin aanpassing
if (!isset($_GET['id']) || empty($_GET['id']) || !ctype_digit($_GET['id']))
  $query = mysql_query("SELECT story FROM news ORDER BY id DESC LIMIT 1");
else
  $query = "SELECT id,story,date,headline,image,time FROM news WHERE id=$id";
// eind

$result = mysql_query($query)
     or die("Fout bij uitvoeren query");
     
// Printen resultaten in HTML 

print "<table>\n";
while($row = mysql_fetch_array($result,  MYSQL_ASSOC)) { 
   print "\t<tr>\n";
   $headline = $row['headline']; 
   $story = $row['story']; 
   $date = $row['date'];
   $image = $row['image'];
   $time = $row['time']; 
   print "\t\t<td><b>$headline</b></td></tr>\n";
   print "\t\t<tr><td>[img]'images/$image'></td><td[/img]$story</td></tr>";
   print "\t\t<tr><td><i>$date $time</i></td>\n";
   print "\t</tr>\n";
}
print "</table>\n";


 
 // Resultaat-set vrij maken
 mysql_free_result($result);

 // Verbinding afsluiten
 mysql_close($link);
Verwijderd schreef op 10 september 2004 @ 21:12:
Ik krijg jullie niet in mijn huidige scipt geimplementeert.
En ik snap niet waar het fout gaat. Hij drukt dan gewoon niets af.
Als je zoiets van een toch al vrij eenvoudig niveau niet begrijpt, of een stukje code waarvan je weet wat het doet niet kan invoegen in je eigen source, dan kun je waarschijnlijk nog beter wat meer tijd op PHP.net en tutorial sites doorbrengen, tot je klaar bent om wat intensiever te programmeren. :)

[ Voor 31% gewijzigd door NMe op 11-09-2004 22:16 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Als je zoiets van een toch al vrij eenvoudig niveau niet begrijpt, of een stukje code waarvan je weet wat het doet niet kan invoegen in je eigen source, dan kun je waarschijnlijk nog beter wat meer tijd op PHP.net en tutorial sites doorbrengen, tot je klaar bent om wat intensiever te programmeren.
Als het dan toch zo eenvoudig is help me dan even verder. Ik vraag echt niemand een heel script te schrijven. En verder is dit maar een gedeelte van mijn gehele project (site met CMS, wel mijn eerste). Kijk de elementaire zaken van programeren zijn me wel bekend, het is een feit dat ik de php syntax niet van buiten kan (maar die zoek ik op in een help file). Maar het door mij gegeven probleem is specifieker, en kan ik de oplossing niet 123 vinden.
Pagina: 1