login  Naam:   Wachtwoord: 
Registreer je!
 Forum

probleem met $ID door te geven aan andere pagina (Opgelost)

Offline dondelle - 13/08/2008 23:36 (laatste wijziging 14/08/2008 02:24)
Avatar van dondelleNieuw lid Ik krijg steeds volgende error:

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

De index.php bevat nieuwsberichten die slechts gedeeltelijk worden getoond met een link "meer" naar de volledige tekst (nieuws.php). Hiermee wordt dan automatisch die tekst geselecteerd dmv de unieke ID die aan het bericht vasthangt.

volgende scripts:
-----------------------------------------------------------------------------
Index.php

  1. <?php
  2.  
  3. $db = mysql_connect("...") or die ("verbinding mislukt");
  4. mysql_select_db("...",$db);
  5. $nieuws_SQL="SELECT * FROM nieuws ORDER BY datum DESC";
  6. $nieuws_result=mysql_query($nieuws_SQL);
  7.  
  8. while($nieuws=mysql_fetch_array($nieuws_result)){
  9. if(strlen($nieuws['inhoud'])>220){
  10. $nieuws['inhoud']=substr($nieuws['inhoud'],0,180) . " ... <a href=nieuws/nieuws.php?ID=" . $nieuws['ID'] . ">meer</a>";
  11. }
  12. ?>
  13.  
  14. <table width="400" border="0" cellspacing"0"
  15. cellpadding="0" align="center">
  16. <tr>
  17. <td>
  18. <span class="kleiner">
  19.  
  20. <?php echo
  21. $nieuws['datum'] ?>
  22. </span><br><b>
  23. <?php
  24. echo $nieuws['titel'] ?>
  25. </b>
  26. </td>
  27. </tr>
  28. <tr>
  29. <td>
  30. <span class="kleiner">
  31. <?php echo
  32. $nieuws['inhoud'] ?>
  33. </span>
  34. </td>
  35. </tr>
  36. <tr>
  37. <td>
  38. <hr width="400" size="1" noshade>
  39. </td>
  40. </tr>
  41. </table>
  42. <?php
  43. }
  44. ?>



-------------------------------------------------------------------------------------
nieuws.php

  1. <?php
  2.  
  3. $db = mysql_connect("...") or die ("verbinding mislukt");
  4. mysql_select_db("...",$db);
  5. $nieuws_SQL="SELECT * FROM nieuws WHERE ID =$ID";
  6. $nieuws_result=mysql_query($nieuws_SQL) or die (mysql_error());
  7. $nieuws=mysql_fetch_array($nieuws_result);
  8.  
  9. ?>


-----------------------------------------------------
sql tabel:

  1. CREATE TABLE nieuws (ID NOT NULL AUTO_INCREMENT, titel VARCHAR(120) NOT NULL, inhoud TEXT NOT NULL, datum DATETIME NOT NULL, PRIMARY KEY (ID), INDEX (ID), UNIQUE (ID))


------------------------------------------------------------------------------------

Ik kan maar niet vinden waar de fout zit, elke hulp zou welkom zijn!

(lijn 15 v nieuws.php=
$nieuws=mysql_fetch_array($nieuws_result);)

Alvast bedankt !

titjes schreef:
CODETAGS!!!

13 antwoorden

Gesponsorde links
Offline lemoinet - 14/08/2008 00:11
Avatar van lemoinet PHP gevorderde verander eens $ID als in $_GET['ID'] in $nieuws_SQL="SELECT * FROM nieuws WHERE ID =$ID";
Offline dondelle - 14/08/2008 00:30 (laatste wijziging 14/08/2008 02:25)
Avatar van dondelle Nieuw lid als ik deze regel vervang door:
  1. $nieuws_SQL="SELECT * FROM nieuws WHERE ID ="$_GET['ID'];

geeft de error
"Parse error: syntax error, unexpected T_VARIABLE in /customers/innon.be/innon.be/httpd.www/testje2/leden/nieuws/nieuws.php on line 13"

(ps is er iets mis met de " " ?)
  1. $nieuws_SQL="SELECT * FROM nieuws WHERE ID =" . $_GET['ID'];

(met . ertussen) geeft een lege pagina als resultaat, geen foutmelding)
alvast bedankt voor je feedback!
Offline jeroen_01 - 14/08/2008 00:47 (laatste wijziging 14/08/2008 02:31)
Avatar van jeroen_01 Nieuw lid
  1. $nieuws_SQL="SELECT * FROM nieuws WHERE ID ='$_GET[ID]'";

titjes schreef:
Ook hier: CODETAGS!
Offline Abbas - 14/08/2008 02:26 (laatste wijziging 14/08/2008 11:13)
Avatar van Abbas Gouden medaille

Crew .NET
@jeroen_01: je quotes staan niet juist, en bij de $_GET[] moeten er binnen de haakjes nog single quotes! Dit moet de query zijn:
  1. $nieuws_SQL = "SELECT * FROM nieuws WHERE ID ='".$_GET['ID']."'";
Als er dan nog iets misloopt is het de $_GET[] die geen waarde krijgt of anders ligt de fout nog ergens anders.
Offline dondelle - 14/08/2008 09:30 (laatste wijziging 14/08/2008 11:18)
Avatar van dondelle Nieuw lid Als ik de code verander krijg ik:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /customers/innon.be/innon.be/httpd.www/testje2/leden/nieuws/nieuws.php on line 13

dit is dan

  1. $nieuws_SQL = "SELECT * FROM nieuws WHERE ID ='".$_GET['ID']"'";
  2. $nieuws_result = mysql_query($nieuws_SQL) or die (mysql_error());
  3. $nieuws = mysql_fetch_array($nieuws_result);


(met de bovenste zijnde regel 13)

Kan iemand dit werkende krijgen?

titjes schreef:
CODETAGS!
Offline Abbas - 14/08/2008 11:14 (laatste wijziging 14/08/2008 11:18)
Avatar van Abbas Gouden medaille

Crew .NET
Natuurlijk, als je goed hebt gekeken naar de oplossing die ik je al gaf, zie je dat er nog een punt na die $_GET[] moet.
Offline dondelle - 14/08/2008 12:07 (laatste wijziging 14/08/2008 12:39)
Avatar van dondelle Nieuw lid sorry, idd punt vergeten
het geeft met code

  1. $nieuws_SQL = "SELECT * FROM nieuws WHERE ID ='".$_GET['ID']."'";
  2. $nieuws_result = mysql_query($nieuws_SQL) or die (mysql_error());
  3. $nieuws = mysql_fetch_array($nieuws_result);mysql_close();


een lege pagina als resultaat.
Denk je dat mijn probleem dan in index.php zit of..?

Ik ben redelijk nieuw in deze materie (zul je mss al wel gemerkt hebben) maar het voorbeeld komt uit een boek.
alvast bedankt voor de feedback
Offline AcIdBuRn - 14/08/2008 12:14
Avatar van AcIdBuRn HTML beginner je moet eerst al zien dat de ID een waarde heeft. Je zet deze code in de index.php-pagina. Deze $_GET['ID'] heeft dan een waarde wanneer er in je adresbalk iets staat in de aard van http://localhost/map/index.php?ID=1

Vervolgens moet deze ID bestaan. Indien deze niet bestaat in de tabel worden er geen gegevens uitgelezen.

Dan ga je de query uitvoeren, en krijg je een hele hoop waarden terug. Door middel van mysql_fetch_array ga je deze waarden in een array steken, in dit geval de array $nieuws. Je hebt dus nu een array met waarden, maar nergens wordt deze array uitgeprint. Om dit te doen doe je het volgende:

  1. while( $nieuws = mysql_fetch_array($nieuws_result) ) {
  2. print( $nieuws['ID'] );
  3. }
Offline Joost - 14/08/2008 12:16
Avatar van Joost PHP expert * Even tussendoor, PHP code moet tussen [ code=php] en [ /code], zonder die spatie *

Staat er wel wat in die tabel dan?
Als daar niks in staat, geeft hij natuurlijk ook niks weer..
Offline dondelle - 14/08/2008 12:39
Avatar van dondelle Nieuw lid Acidburn,

hoe geef ik deze dan waarde in index.php?
wordt dit dan ID=$_GET['ID'] of..?

moet deze ook onder de lus staan of..?

als je me even kan helpen met de volledige code want begin er scheel van te zien..

Het veld ID in de tabel nieuws bestaat, deze heb ik aangemaakt dmv de sql create table query.

Waar moet ik de code zetten om de querry uit te printen?

@ Medieval
zal ik volgende keer doen (code tekst tags), ben nog nieuw op dit forum, bedankt voor de mededeling.
Inhoud staat er al een geluk wel in de tabel 

bedankt voor de feedback !
Offline Abbas - 14/08/2008 12:40
Avatar van Abbas Gouden medaille

Crew .NET
Citaat:
@ Medieval
zal ik volgende keer doen (code tekst tags), ben nog nieuw op dit forum, bedankt voor de mededeling.
Ik heb je dan al een PM gestuurd hiervoor en in dit topic ook al verscheidene keren gemeld dat je de regels moet lezen en de tags gebruiken!
Offline dondelle - 14/08/2008 14:01 (laatste wijziging 14/08/2008 15:50)
Avatar van dondelle Nieuw lid mijn excuses, dit was absoluut niet de bedoeling.
Ik heb de forumregels nogmaals doorgenomen en zal mij hier in de toekomst aan houden. Wat de PM's betreft, die had ik eerlijk gezegd niet eens zien staan..

zal er in de toekomst meer aandacht aan besteden!

ondertussen heb ik het gevonden,
nieuws.php ziet er nu zo uit:

  1. $nieuws_SQL = "SELECT * FROM nieuws WHERE ID ='".addslashes($_GET['ID'])."'";
  2. $nieuws_result = mysql_query($nieuws_SQL) or die (mysql_error());
  3. $nieuws = mysql_fetch_array($nieuws_result);
  4. echo ($nieuws['datum'] ) . "<br />";
  5. echo ($nieuws['titel'] ) . "<br />";
  6. echo ($nieuws['inhoud'] ) . "<br />";
  7. ?>


om vervolgens een css stylesheet toe te passen voor de opmaak van de weergegeven ID wordt dit:

  1. $nieuws_SQL = "SELECT * FROM nieuws WHERE ID ='".addslashes($_GET['ID'])."'";
  2. $nieuws_result = mysql_query($nieuws_SQL) or die (mysql_error());
  3. $nieuws = mysql_fetch_array($nieuws_result);
  4.  
  5. ?>
  6. <span class="css-naam1"><?php echo
  7. $nieuws['datum'] ?></span><br />
  8.  
  9. <span class="css-naam2"><?php echo
  10. $nieuws['titel'] ?></span><br />
  11.  
  12. <span class="css-naam3"><?php echo
  13. $nieuws['inhoud'] ?></span><br />
  14.  
  15. <?php
  16. ?>


(idem in de index.php)
een leuk scriptje nu het werkt !  
Offline Abbas - 14/08/2008 15:02
Avatar van Abbas Gouden medaille

Crew .NET
Doe anders eens eerst:
  1. echo $_GET['ID'];

En kijk of er een waarde in zit.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.283s