waarom worden de gegevens bijgesneden nadat de waarde is doorgegeven aan het tekstvak uit de database?

Gebruik PHP, mysql. Wanneer ik een data uit de mysql-database ophaal naar een tekstvak om bij te werken, wordt slechts de helft van de gegevens verzonden, bijvoorbeeld als de naam van een student 'john doe' is, nadat ik de database heb opgevraagd en de waarde in PHP op een tekstvak heb ingesteld , alleen "John" verschijnt in het tekstvak.

Wat dit probleem zou veroorzaken, kan niet detecteren.

In de database wordt de naam volledig opgeslagen.

hier is php-script

BEWERK:

$srch = mysql_escape_string($_REQUEST['srch']);

$query = mysql_query("select * from X where htno='$srch' or studname like '%$srch%' ");
$row = mysql_fetch_array($query);
$data = "";

if($row){

$data .= '<table border="0" class="data_display">
<tr>
<th>HAll Ticket No:</th><th>Category</th><th>Centercode</th>
</tr>
<tr>
<td>'.$row['htno'].'<input type="hidden" id="htno" value="'.$row['htno'].'" /></td><td>'.$row['category'].'</td><td>'.$row['centercode'].'</td>
</tr>
<tr>
<th>Student Name</th><th>Center name</th><th>Student code</th><th>Score</th>
</tr>
<tr>
<td><input type="text" class="scoretxt" id="category" value='.$row['studname'].'/></td><td>'.$row['centername'].'</td><td>'.$row['studentcode'].'</td>
<td></tr>
</table>; }

Alle hulp wordt gewaardeerd. tnx

1
We moeten zien wat er aan de hand is, dus ja; we zullen je PHP-script moeten zien (of op zijn minst de relevante portie (s) ervan, die het ophalen en weergeven afhandelt).
toegevoegd de auteur David Thomas, de bron
Dat hangt helemaal af van het PHP-script dat je gebruikt; zou je dat aan de vraag kunnen toevoegen?
toegevoegd de auteur David Thomas, de bron
@sree: in plaats van <td> <input type = "text" class = "scoretxt" id = "category" value = '. $ row [' studname '].' /> </td> kun je <td> $ row ['studname'] </td> zetten en me laten weten wat je krijgt ?? Volledige tekst of halve tekst?
toegevoegd de auteur Fahim Parkar, de bron
@sree: voor welk veld krijgt u minder naam? $ row ['studname'] of $ row ['centername']. Ik ben er zeker van dat je naar de INCORRECT variabele kijkt, ie de volledige naam is daar in variabele $ row ['fullName'] en je kijkt misschien naar $ row ['firstName'] ... Ik hoop dat je hebt wat ik bedoelde te zeggen .. .
toegevoegd de auteur Fahim Parkar, de bron
Misschien heeft uw databaseveld een lengte van 4?
toegevoegd de auteur dmmd, de bron
Je code lijkt correct. Weet je zeker dat je de juiste tafel/waarde opzoekt? Wat is het htno-veldtype/-lengte? En wat is de verwachte waarde die u in de invoer wilt zien?
toegevoegd de auteur dmmd, de bron
Zoek op waar het probleem zit. Zijn de juiste gegevens in het script naar de database geschreven? Zijn de juiste gegevens in de database? Worden de juiste gegevens uit de database gelezen? U moet het probleem lokaliseren.
toegevoegd de auteur David Schwartz, de bron
ja, htno is varchar (20), motor is Myisam ...
toegevoegd de auteur sree, de bron
word vol. text.perhaps mis dubbele aanhalingstekens
toegevoegd de auteur sree, de bron
@FahimParkar yeh, ik heb je .. maar het is perfect ... misschien zal ik het bewerkte script opnieuw plaatsen ..
toegevoegd de auteur sree, de bron
@JackBrown Ja, ik krijg de volledige tekst nadat ik de vraag heb afgedrukt ...
toegevoegd de auteur sree, de bron
@DavidSchwartz tnx, het enige probleem is dat het alleen de eerste helft van de tekst terugkrijgt i, e de ene vóór de spatie .. dus krijg ik het niet ... :(
toegevoegd de auteur sree, de bron
@jlcd in de database is het juist opgeslagen type is varchar (255) ... ll update in kwestie wel
toegevoegd de auteur sree, de bron
bedoel je dat je het script @DavidThomas wilt?
toegevoegd de auteur sree, de bron
Kon u de uitvoer van `$ srch = mysql_escape_string ($ _ REQUEST ['srch']) afdrukken; $ query = mysql_query ("select * from X where htno = '$ srch' of studname zoals '% $ srch%'"); $ row = mysql_fetch_array ($ query); print_r ($ rij) '`op uw vraag?
toegevoegd de auteur Jack Brown, de bron

2 antwoord

Je mist de aanhalingstekens rond de naam van de student.

<input type="text" class="scoretxt" id="category" value='.$row['studname'].'/>

is generating <input type="text" class="scoretxt" id="category" value=John Doe />, which only shows up as "John".

Het zou moeten zijn

<input type="text" class="scoretxt" id="category" value="'.$row['studname'].'"/>

producing <input type="text" class="scoretxt" id="category" value="John Doe" />

HTML is erg vergevingsgezind, dus kleine dingen zoals deze zijn moeilijk te vangen.

2
toegevoegd
ja precies, ik ben er net achtergekomen .. :)
toegevoegd de auteur sree, de bron

Ik ben bang dat deze code geen problemen heeft met betrekking tot uw probleem (hoewel het SQL-injecties en XSS-kwetsbaarheden heeft). Wat u nodig hebt, wordt debugging genoemd. Controleer eerst of het probleem niet zit in de return van MySQL (met var_dump ($ rij)), als alles klopt, ga er dan van uit dat het probleem achteraf ligt, anders - voor. Gebruik var_dump() en controleer plaatsen die van invloed kunnen zijn op de naam van de student. Ik zie geen andere in deze code, dus ik denk dat dit stuk zal werken als $ rij in orde is.

0
toegevoegd
$ rij gooit alle gegevens ... dus verwart hun, wanneer ik de waarde toevoeg aan het tekstvak wordt alleen het eerste stukje info getoond .. dus moet je dat weten .. .. tnx
toegevoegd de auteur sree, de bron
Pardon, ik had het mis. Merkte geen verschil in prijs :)
toegevoegd de auteur Denis Chmel, de bron